Isis 3 Programmer Reference
|
SparseBlockColumnMatrix. More...
#include <SparseBlockMatrix.h>
Public Member Functions | |
SparseBlockColumnMatrix () | |
Default constructor. More... | |
~SparseBlockColumnMatrix () | |
Destructor. More... | |
SparseBlockColumnMatrix (const SparseBlockColumnMatrix &src) | |
Copy constructor. More... | |
SparseBlockColumnMatrix & | operator= (const SparseBlockColumnMatrix &src) |
"Equals" operator. More... | |
void | wipe () |
Deletes all pointer elements and removes them from the map. More... | |
void | copy (const SparseBlockColumnMatrix &src) |
Copy method. More... | |
void | zeroBlocks () |
Sets all elements of all matrix blocks to zero. More... | |
bool | insertMatrixBlock (int nColumnBlock, int nRows, int nCols) |
Inserts a "newed" LinearAlgebra::Matrix pointer of size (nRows, nCols) into the map with the block column number as key. More... | |
void | setStartColumn (int nStartColumn) |
Sets starting column for block in full matrix. More... | |
int | startColumn () const |
Sets starting column for block in full matrix. More... | |
int | numberOfElements () |
Returns total number of matrix elements in map (NOTE: NOT the number of matrix blocks). More... | |
int | numberOfRows () |
Returns total number of rows in map (this needs to be clarified and maybe rewritten). More... | |
int | numberOfColumns () |
Returns total number of columns in map (NOTE: NOT the number of matrix blocks). More... | |
void | print (std::ostream &outstream) |
Prints matrix blocks to std output stream out for debugging. More... | |
void | printClean (std::ostream &outstream) |
Prints matrix blocks to std output stream out for debugging. More... | |
Protected Attributes | |
int | m_startColumn |
starting column for this Block Column in full matrix e.g. More... | |
The SparseBlockMatrix class is a QList of SparseBlockColumnMatrix objects. Each SparseBlockColumnMatrix is a QMap of square matrix blocks and represents a column of square matrix blocks in the reduced normal equations matrix. The key into each column map is the block's row index. The value at each key is a square dense matrix (Boost matrix) with a dimension equivalent to the number of exterior orientation parameters used for the image. Zero blocks are not stored.
2011-07-29 Ken Edmundson - Original Version
2014-02-25 Ken Edmundson - operators to read/write matrices to binary disk file and to write matrices to QDebug stream.
2014-07-23 Jeannie Backer - Modified QDataStream >> and << operators to use qint32, as recommended by Qt documentation.
2015-12-18 Ken Edmundson - 1) added more detailed documentation; 2) brought up to ISIS coding standards.
2016-08-10 Jeannie Backer - Replaced boost matrix with Isis::LinearAlgebra::Matrix. References #4163.
2017-05-09 Ken Edmundson - Added m_startColumn member and mutator/accessor methods to SparseBlockColumnMatrix. Done to eliminate lengthy computation of leading colums and rows. References #4664.
Definition at line 69 of file SparseBlockMatrix.h.
Isis::SparseBlockColumnMatrix::SparseBlockColumnMatrix | ( | ) |
Default constructor.
Definition at line 29 of file SparseBlockMatrix.cpp.
Isis::SparseBlockColumnMatrix::~SparseBlockColumnMatrix | ( | ) |
Destructor.
See description of wipe method below.
Definition at line 37 of file SparseBlockMatrix.cpp.
Isis::SparseBlockColumnMatrix::SparseBlockColumnMatrix | ( | const SparseBlockColumnMatrix & | src | ) |
Copy constructor.
Calls copy method immediately below.
src | SparseBlockColumnMatrix to copy |
Definition at line 57 of file SparseBlockMatrix.cpp.
void Isis::SparseBlockColumnMatrix::copy | ( | const SparseBlockColumnMatrix & | src | ) |
Copy method.
src | SparseBlockColumnMatrix to copy |
Definition at line 67 of file SparseBlockMatrix.cpp.
References startColumn().
bool Isis::SparseBlockColumnMatrix::insertMatrixBlock | ( | int | nColumnBlock, |
int | nRows, | ||
int | nCols | ||
) |
Inserts a "newed" LinearAlgebra::Matrix pointer of size (nRows, nCols) into the map with the block column number as key.
The clear call initializes the matrix elements to zero. If an entry exists at the key nColumnBlock, no insertion is made.
nColumnBlock | block column number of inserted matrix (key into map) |
nRows | number of rows in matrix to be inserted |
nCols | number of columns in matrix to be inserted |
Definition at line 115 of file SparseBlockMatrix.cpp.
Referenced by Isis::BundleAdjust::formMeasureNormals(), and Isis::operator>>().
int Isis::SparseBlockColumnMatrix::numberOfColumns | ( | ) |
Returns total number of columns in map (NOTE: NOT the number of matrix blocks).
Definition at line 184 of file SparseBlockMatrix.cpp.
Referenced by Isis::BundleAdjust::errorPropagation().
int Isis::SparseBlockColumnMatrix::numberOfElements | ( | ) |
Returns total number of matrix elements in map (NOTE: NOT the number of matrix blocks).
The sum of all the elements in all of the matrix blocks.
Definition at line 162 of file SparseBlockMatrix.cpp.
int Isis::SparseBlockColumnMatrix::numberOfRows | ( | ) |
Returns total number of rows in map (this needs to be clarified and maybe rewritten).
It's the number of rows in the block on the diagonal (the last one in the column).
Definition at line 209 of file SparseBlockMatrix.cpp.
Referenced by Isis::BundleAdjust::errorPropagation().
SparseBlockColumnMatrix & Isis::SparseBlockColumnMatrix::operator= | ( | const SparseBlockColumnMatrix & | src | ) |
"Equals" operator.
src | SparseBlockColumnMatrix to check against |
Definition at line 93 of file SparseBlockMatrix.cpp.
void Isis::SparseBlockColumnMatrix::print | ( | std::ostream & | outstream | ) |
Prints matrix blocks to std output stream out for debugging.
This version makes use of the Boost matrix library output of matrices as opposed to the printClean method below which explicitly prints the matrix elements for more control over the format.
outstream | output stream |
Definition at line 233 of file SparseBlockMatrix.cpp.
Referenced by Isis::SparseBlockMatrix::print().
void Isis::SparseBlockColumnMatrix::printClean | ( | std::ostream & | outstream | ) |
Prints matrix blocks to std output stream out for debugging.
Explicitly prints the matrix elements for more control over the format as opposed to the print method above.
outstream | output stream |
Definition at line 260 of file SparseBlockMatrix.cpp.
Referenced by Isis::SparseBlockMatrix::printClean().
void Isis::SparseBlockColumnMatrix::setStartColumn | ( | int | nStartColumn | ) |
Sets starting column for block in full matrix.
nStartColumn | value for starting column in full matrix for this block columns |
Definition at line 141 of file SparseBlockMatrix.cpp.
int Isis::SparseBlockColumnMatrix::startColumn | ( | ) | const |
Sets starting column for block in full matrix.
Definition at line 151 of file SparseBlockMatrix.cpp.
Referenced by copy(), and Isis::BundleAdjust::loadCholmodTriplet().
void Isis::SparseBlockColumnMatrix::wipe | ( | ) |
Deletes all pointer elements and removes them from the map.
Effectively, a destructor, and in fact, called by the ~SparseBlockColumnMatrix above.
Definition at line 46 of file SparseBlockMatrix.cpp.
Referenced by Isis::BundleAdjust::formNormalEquations().
void Isis::SparseBlockColumnMatrix::zeroBlocks | ( | ) |
Sets all elements of all matrix blocks to zero.
Definition at line 293 of file SparseBlockMatrix.cpp.
|
protected |
starting column for this Block Column in full matrix e.g.
for Block Column 4, if the preceding Block Columns each have 6 columns, then the starting column for Block Column 4 is 24
Definition at line 96 of file SparseBlockMatrix.h.