GTSAM
4.0.2
C++ library for smoothing and mapping (SAM)
|
#include <VerticalBlockMatrix.h>
Public Types | |
typedef VerticalBlockMatrix | This |
typedef Eigen::Block< Matrix > | Block |
typedef Eigen::Block< const Matrix > | constBlock |
Public Member Functions | |
VerticalBlockMatrix () | |
template<typename CONTAINER > | |
VerticalBlockMatrix (const CONTAINER &dimensions, DenseIndex height, bool appendOneDimension=false) | |
template<typename CONTAINER , typename DERIVED > | |
VerticalBlockMatrix (const CONTAINER &dimensions, const Eigen::MatrixBase< DERIVED > &matrix, bool appendOneDimension=false) | |
template<typename ITERATOR > | |
VerticalBlockMatrix (ITERATOR firstBlockDim, ITERATOR lastBlockDim, DenseIndex height, bool appendOneDimension=false) | |
DenseIndex | rows () const |
Row size. | |
DenseIndex | cols () const |
Column size. | |
DenseIndex | nBlocks () const |
Block count. | |
Block | operator() (DenseIndex block) |
const constBlock | operator() (DenseIndex block) const |
Block | range (DenseIndex startBlock, DenseIndex endBlock) |
const constBlock | range (DenseIndex startBlock, DenseIndex endBlock) const |
Block | full () |
const constBlock | full () const |
DenseIndex | offset (DenseIndex block) const |
const DenseIndex & | rowStart () const |
DenseIndex & | rowStart () |
const DenseIndex & | rowEnd () const |
DenseIndex & | rowEnd () |
const DenseIndex & | firstBlock () const |
DenseIndex & | firstBlock () |
const Matrix & | matrix () const |
Matrix & | matrix () |
Static Public Member Functions | |
static VerticalBlockMatrix | LikeActiveViewOf (const VerticalBlockMatrix &rhs) |
static VerticalBlockMatrix | LikeActiveViewOf (const SymmetricBlockMatrix &rhs, DenseIndex height) |
Protected Member Functions | |
void | assertInvariants () const |
void | checkBlock (DenseIndex block) const |
template<typename ITERATOR > | |
void | fillOffsets (ITERATOR firstBlockDim, ITERATOR lastBlockDim, bool appendOneDimension) |
Protected Attributes | |
Matrix | matrix_ |
The full matrix. | |
FastVector< DenseIndex > | variableColOffsets_ |
the starting columns of each block (0-based) | |
DenseIndex | rowStart_ |
Changes apparent matrix view, see main class comment. | |
DenseIndex | rowEnd_ |
Changes apparent matrix view, see main class comment. | |
DenseIndex | blockStart_ |
Changes apparent matrix view, see main class comment. | |
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).
|
inline |
Construct an empty VerticalBlockMatrix
|
inline |
Construct from a container of the sizes of each vertical block.
|
inline |
Construct from a container of the sizes of each vertical block and a pre-prepared matrix.
|
inline |
Construct from iterator over the sizes of each vertical block.
|
inline |
Get the apparent first block for all operations
|
inline |
Get or set the apparent first block for all operations
|
inline |
Return the full matrix, not including any portions excluded by rowStart(), rowEnd(), and firstBlock()
|
inline |
Return the full matrix, not including any portions excluded by rowStart(), rowEnd(), and firstBlock()
|
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.
|
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.
|
inline |
Access to full matrix (including any portions excluded by rowStart(), rowEnd(), and firstBlock())
|
inline |
Non-const access to full matrix (including any portions excluded by rowStart(), rowEnd(), and firstBlock())
|
inline |
Access a single block in the underlying matrix with read/write access
|
inline |
Access a const block view
|
inline |
access ranges of blocks at a time
|
inline |
Get the apparent last row (exclusive, i.e. rows() == rowEnd() - rowStart()) of the underlying matrix for all operations
|
inline |
Get or set the apparent last row (exclusive, i.e. rows() == rowEnd() - rowStart()) of the underlying matrix for all operations
|
inline |
Get the apparent first row of the underlying matrix for all operations
|
inline |
Get or set the apparent first row of the underlying matrix for all operations