#include <VerticalBlockMatrix.h>
Public Types | |
typedef Eigen::Block< Matrix > | Block |
typedef Eigen::Block< const Matrix > | constBlock |
typedef VerticalBlockMatrix | This |
Public Member Functions | |
DenseIndex | cols () const |
Column size. More... | |
DenseIndex & | firstBlock () |
const DenseIndex & | firstBlock () const |
Block | full () |
const constBlock | full () const |
Matrix & | matrix () |
const Matrix & | matrix () const |
DenseIndex | nBlocks () const |
Block count. More... | |
DenseIndex | offset (DenseIndex block) const |
Block | operator() (DenseIndex block) |
const constBlock | operator() (DenseIndex block) const |
Block | range (DenseIndex startBlock, DenseIndex endBlock) |
const constBlock | range (DenseIndex startBlock, DenseIndex endBlock) const |
DenseIndex & | rowEnd () |
const DenseIndex & | rowEnd () const |
DenseIndex | rows () const |
Row size. More... | |
DenseIndex & | rowStart () |
const DenseIndex & | rowStart () const |
VerticalBlockMatrix () | |
template<typename CONTAINER , typename DERIVED > | |
VerticalBlockMatrix (const CONTAINER &dimensions, const Eigen::MatrixBase< DERIVED > &matrix, bool appendOneDimension=false) | |
template<typename CONTAINER > | |
VerticalBlockMatrix (const CONTAINER &dimensions, DenseIndex height, bool appendOneDimension=false) | |
template<typename ITERATOR > | |
VerticalBlockMatrix (ITERATOR firstBlockDim, ITERATOR lastBlockDim, DenseIndex height, bool appendOneDimension=false) | |
Static Public Member Functions | |
static VerticalBlockMatrix | LikeActiveViewOf (const SymmetricBlockMatrix &rhs, DenseIndex height) |
static VerticalBlockMatrix | LikeActiveViewOf (const VerticalBlockMatrix &rhs) |
Protected Member Functions | |
void | assertInvariants () const |
void | checkBlock (DenseIndex block) const |
template<typename ITERATOR > | |
void | fillOffsets (ITERATOR firstBlockDim, ITERATOR lastBlockDim, bool appendOneDimension) |
Protected Attributes | |
DenseIndex | blockStart_ |
Changes apparent matrix view, see main class comment. More... | |
Matrix | matrix_ |
The full matrix. More... | |
DenseIndex | rowEnd_ |
Changes apparent matrix view, see main class comment. More... | |
DenseIndex | rowStart_ |
Changes apparent matrix view, see main class comment. More... | |
FastVector< DenseIndex > | variableColOffsets_ |
the starting columns of each block (0-based) More... | |
Friends | |
class | SymmetricBlockMatrix |
This class stores a dense matrix and allows it to be accessed as a collection of vertical blocks. The dimensions of the blocks are provided when constructing this class.
This class also has three parameters that can be changed after construction that change the apparent view of the matrix without any reallocation or data copying. firstBlock() determines the block that has index 0 for all operations (except for re-setting firstBlock()). rowStart() determines the apparent first row of the matrix for all operations (except for setting rowStart() and rowEnd()). rowEnd() determines the apparent exclusive (one-past-the-last) last row for all operations. To include all rows, rowEnd() should be set to the number of rows in the matrix (i.e. one after the last true row index).
Definition at line 44 of file VerticalBlockMatrix.h.
Definition at line 48 of file VerticalBlockMatrix.h.
typedef Eigen::Block<const Matrix> gtsam::VerticalBlockMatrix::constBlock |
Definition at line 49 of file VerticalBlockMatrix.h.
Definition at line 47 of file VerticalBlockMatrix.h.
|
inline |
Construct an empty VerticalBlockMatrix
Definition at line 62 of file VerticalBlockMatrix.h.
|
inline |
Construct from a container of the sizes of each vertical block.
Definition at line 71 of file VerticalBlockMatrix.h.
|
inline |
Construct from a container of the sizes of each vertical block and a pre-prepared matrix.
Definition at line 82 of file VerticalBlockMatrix.h.
|
inline |
Construct from iterator over the sizes of each vertical block.
Definition at line 95 of file VerticalBlockMatrix.h.
|
inlineprotected |
Definition at line 196 of file VerticalBlockMatrix.h.
|
inlineprotected |
Definition at line 204 of file VerticalBlockMatrix.h.
|
inline |
Column size.
Definition at line 120 of file VerticalBlockMatrix.h.
|
inlineprotected |
Definition at line 212 of file VerticalBlockMatrix.h.
|
inline |
Get or set the apparent first block for all operations
Definition at line 187 of file VerticalBlockMatrix.h.
|
inline |
Get the apparent first block for all operations
Definition at line 184 of file VerticalBlockMatrix.h.
|
inline |
Return the full matrix, not including any portions excluded by rowStart(), rowEnd(), and firstBlock()
Definition at line 159 of file VerticalBlockMatrix.h.
|
inline |
Return the full matrix, not including any portions excluded by rowStart(), rowEnd(), and firstBlock()
Definition at line 162 of file VerticalBlockMatrix.h.
|
static |
Copy the block structure, but do not copy the matrix data. If blockStart() has been modified, this copies the structure of the corresponding matrix view. In the destination VerticalBlockMatrix, blockStart() will be 0.
Definition at line 39 of file VerticalBlockMatrix.cpp.
|
static |
Copy the block structure and resize the underlying matrix, but do not copy the matrix data. If blockStart(), rowStart(), and/or rowEnd() have been modified, this copies the structure of the corresponding matrix view. In the destination VerticalBlockView, blockStart() and rowStart() will thus be 0, rowEnd() will be cols() of the source VerticalBlockView, and the underlying matrix will be the size of the view of the source matrix.
Definition at line 25 of file VerticalBlockMatrix.cpp.
|
inline |
Non-const access to full matrix (including any portions excluded by rowStart(), rowEnd(), and firstBlock())
Definition at line 193 of file VerticalBlockMatrix.h.
|
inline |
Access to full matrix (including any portions excluded by rowStart(), rowEnd(), and firstBlock())
Definition at line 190 of file VerticalBlockMatrix.h.
|
inline |
Block count.
Definition at line 123 of file VerticalBlockMatrix.h.
|
inline |
Definition at line 164 of file VerticalBlockMatrix.h.
|
inline |
Access a single block in the underlying matrix with read/write access
Definition at line 126 of file VerticalBlockMatrix.h.
|
inline |
Access a const block view
Definition at line 129 of file VerticalBlockMatrix.h.
|
inline |
access ranges of blocks at a time
Definition at line 132 of file VerticalBlockMatrix.h.
|
inline |
Definition at line 145 of file VerticalBlockMatrix.h.
|
inline |
Get or set the apparent last row (exclusive, i.e. rows() == rowEnd() - rowStart()) of the underlying matrix for all operations
Definition at line 181 of file VerticalBlockMatrix.h.
|
inline |
Get the apparent last row (exclusive, i.e. rows() == rowEnd() - rowStart()) of the underlying matrix for all operations
Definition at line 178 of file VerticalBlockMatrix.h.
|
inline |
Row size.
Definition at line 117 of file VerticalBlockMatrix.h.
|
inline |
Get or set the apparent first row of the underlying matrix for all operations
Definition at line 175 of file VerticalBlockMatrix.h.
|
inline |
Get the apparent first row of the underlying matrix for all operations
Definition at line 172 of file VerticalBlockMatrix.h.
|
friend |
Definition at line 221 of file VerticalBlockMatrix.h.
|
protected |
Changes apparent matrix view, see main class comment.
Definition at line 57 of file VerticalBlockMatrix.h.
|
protected |
The full matrix.
Definition at line 52 of file VerticalBlockMatrix.h.
|
protected |
Changes apparent matrix view, see main class comment.
Definition at line 56 of file VerticalBlockMatrix.h.
|
protected |
Changes apparent matrix view, see main class comment.
Definition at line 55 of file VerticalBlockMatrix.h.
|
protected |
the starting columns of each block (0-based)
Definition at line 53 of file VerticalBlockMatrix.h.