Isis Developer Reference
|
#include <SparseBlockMatrix.h>
Public Member Functions | |
SparseBlockRowMatrix () | |
~SparseBlockRowMatrix () | |
Destructor. | |
SparseBlockRowMatrix (const SparseBlockRowMatrix &src) | |
Copy constructor. | |
SparseBlockRowMatrix & | operator= (const SparseBlockRowMatrix &src) |
"Equals" operator. | |
void | wipe () |
Deletes all pointer elements and removes them from the map. | |
void | copy (const SparseBlockRowMatrix &src) |
Copy method. | |
void | zeroBlocks () |
Sets all elements of all matrix blocks to zero. | |
bool | insertMatrixBlock (int nRowBlock, int nRows, int nCols) |
Inserts a "newed" LinearAlgebra::Matrix pointer of size (nRows, nCols) into the map with the block row number as key. | |
void | copyToBoost (boost::numeric::ublas::compressed_matrix< double > &B) |
Copies a SparseBlockRowMatrix to a Boost compressed_matrix. | |
int | getLeadingColumnsForBlock (int nblockColumn) |
Sums and returns the number of columns in each matrix block prior to nblockColumn. | |
int | numberOfElements () |
Returns total number of matrix elements in map (NOTE: NOT the number of matrix blocks). | |
void | print (std::ostream &outstream) |
Prints matrix blocks to std output stream out for debugging. | |
void | printClean (std::ostream &outstream) |
Prints matrix blocks to std output stream out for debugging. | |
A SparseBlockRowMatrix is a QMap of square matrix blocks and represents a row of square matrix blocks in the reduced normal equations matrix. The key into each row map is the block’s column 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.
Note that this class is not apparently different than the SparseBlockColumnMatrix. It was implemented for convenience in the BundleAdjustment class for those times when we need to access rows of matrix blocks as opposed to columns of matrix blocks.
TO BE RESOLVED: Do we really need this as a separate class? Can we do everything we need with the SparseBlockColumnMatrix?
|
inline |
Isis::SparseBlockRowMatrix::~SparseBlockRowMatrix | ( | ) |
Isis::SparseBlockRowMatrix::SparseBlockRowMatrix | ( | const SparseBlockRowMatrix & | src | ) |
Copy constructor.
Calls copy method immediately below.
src | SparseBlockRowMatrix to copy |
References copy().
void Isis::SparseBlockRowMatrix::copy | ( | const SparseBlockRowMatrix & | src | ) |
Copy method.
src | SparseBlockRowMatrix to copy |
References wipe().
Referenced by operator=(), and SparseBlockRowMatrix().
void Isis::SparseBlockRowMatrix::copyToBoost | ( | boost::numeric::ublas::compressed_matrix< double > & | B | ) |
Copies a SparseBlockRowMatrix to a Boost compressed_matrix.
This may be a temporary implementation
B | Boost matrix to copy this SparseBlockRowMatrix to |
int Isis::SparseBlockRowMatrix::getLeadingColumnsForBlock | ( | int | nblockColumn | ) |
Sums and returns the number of columns in each matrix block prior to nblockColumn.
nblockColumn |
bool Isis::SparseBlockRowMatrix::insertMatrixBlock | ( | int | nRowBlock, |
int | nRows, | ||
int | nCols ) |
Inserts a "newed" LinearAlgebra::Matrix pointer of size (nRows, nCols) into the map with the block row number as key.
The matrix::clear call initializes the matrix elements to zero. If an entry exists at the key nRowBlock, no insertion is made.
nRowBlock | block row 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 |
int Isis::SparseBlockRowMatrix::numberOfElements | ( | ) |
Returns total number of matrix elements in map (NOTE: NOT the number of matrix blocks).
The sum of all the elements of all the matrix blocks.
SparseBlockRowMatrix & Isis::SparseBlockRowMatrix::operator= | ( | const SparseBlockRowMatrix & | src | ) |
void Isis::SparseBlockRowMatrix::print | ( | std::ostream & | outstream | ) |
Prints matrix blocks to std output stream out for debugging.
outstream | output stream |
void Isis::SparseBlockRowMatrix::printClean | ( | std::ostream & | outstream | ) |
Prints matrix blocks to std output stream out for debugging.
outstream | output stream |
void Isis::SparseBlockRowMatrix::wipe | ( | ) |
Deletes all pointer elements and removes them from the map.
Effectively, a destructor, and in fact, called by the ~SparseBlockColumnMatrix above.
Referenced by copy(), and ~SparseBlockRowMatrix().
void Isis::SparseBlockRowMatrix::zeroBlocks | ( | ) |
Sets all elements of all matrix blocks to zero.