|
| SymmetricBlockMatrix () |
| Construct from an empty matrix (asserts that the matrix is empty)
|
|
template<typename CONTAINER > |
| SymmetricBlockMatrix (const CONTAINER &dimensions, bool appendOneDimension=false) |
| Construct from a container of the sizes of each block.
|
|
template<typename ITERATOR > |
| SymmetricBlockMatrix (ITERATOR firstBlockDim, ITERATOR lastBlockDim, bool appendOneDimension=false) |
| Construct from iterator over the sizes of each vertical block.
|
|
template<typename CONTAINER > |
| SymmetricBlockMatrix (const CONTAINER &dimensions, const Matrix &matrix, bool appendOneDimension=false) |
| Construct from a container of the sizes of each vertical block and a pre-prepared matrix.
|
|
DenseIndex | rows () const |
| Row size.
|
|
DenseIndex | cols () const |
| Column size.
|
|
DenseIndex | nBlocks () const |
| Block count.
|
|
DenseIndex | getDim (DenseIndex block) const |
| Number of dimensions for variable on this diagonal block.
|
|
DenseIndex & | blockStart () |
|
DenseIndex | blockStart () const |
|
void | choleskyPartial (DenseIndex nFrontals) |
|
VerticalBlockMatrix | split (DenseIndex nFrontals) |
|
|
Matrix | block (DenseIndex I, DenseIndex J) const |
|
Eigen::SelfAdjointView< Block, Eigen::Upper > | diagonalBlock (DenseIndex J) |
| Return the J'th diagonal block as a self adjoint view.
|
|
Eigen::SelfAdjointView< constBlock, Eigen::Upper > | diagonalBlock (DenseIndex J) const |
| Return the J'th diagonal block as a self adjoint view.
|
|
Vector | diagonal (DenseIndex J) const |
| Get the diagonal of the J'th diagonal block.
|
|
constBlock | aboveDiagonalBlock (DenseIndex I, DenseIndex J) const |
| Get block above the diagonal (I, J).
|
|
Eigen::SelfAdjointView< constBlock, Eigen::Upper > | selfadjointView (DenseIndex I, DenseIndex J) const |
| Return the square sub-matrix that contains blocks(i:j, i:j).
|
|
Eigen::TriangularView< constBlock, Eigen::Upper > | triangularView (DenseIndex I, DenseIndex J) const |
| Return the square sub-matrix that contains blocks(i:j, i:j) as a triangular view.
|
|
constBlock | aboveDiagonalRange (DenseIndex i_startBlock, DenseIndex i_endBlock, DenseIndex j_startBlock, DenseIndex j_endBlock) const |
| Get a range [i,j) from the matrix. Indices are in block units.
|
|
Block | aboveDiagonalRange (DenseIndex i_startBlock, DenseIndex i_endBlock, DenseIndex j_startBlock, DenseIndex j_endBlock) |
| Get a range [i,j) from the matrix. Indices are in block units.
|
|
|
template<typename XprType > |
void | setDiagonalBlock (DenseIndex I, const XprType &xpr) |
| Set a diagonal block. Only the upper triangular portion of xpr is evaluated.
|
|
template<typename XprType > |
void | setOffDiagonalBlock (DenseIndex I, DenseIndex J, const XprType &xpr) |
| Set an off-diagonal block. Only the upper triangular portion of xpr is evaluated.
|
|
template<typename XprType > |
void | updateDiagonalBlock (DenseIndex I, const XprType &xpr) |
| Increment the diagonal block by the values in xpr . Only reads the upper triangular part of xpr .
|
|
template<typename XprType > |
void | updateOffDiagonalBlock (DenseIndex I, DenseIndex J, const XprType &xpr) |
|
|
Eigen::SelfAdjointView< Block, Eigen::Upper > | selfadjointView () |
| Get self adjoint view.
|
|
Eigen::SelfAdjointView< constBlock, Eigen::Upper > | selfadjointView () const |
| Get self adjoint view.
|
|
template<typename XprType > |
void | setFullMatrix (const XprType &xpr) |
| Set the entire active matrix. Only reads the upper triangular part of xpr .
|
|
void | setZero () |
| Set the entire active matrix zero.
|
|
void | negate () |
| Negate the entire active matrix.
|
|
void | invertInPlace () |
| Invert the entire active matrix in place.
|
|
|
DenseIndex | nOffsets () const |
| Number of offsets in the full matrix.
|
|
DenseIndex | nActualBlocks () const |
| Number of actual blocks in the full matrix.
|
|
DenseIndex | offset (DenseIndex block) const |
| Get an offset for a block index (in the active view).
|
|
constBlock | block_ (DenseIndex iBlock, DenseIndex jBlock, DenseIndex blockRows=1, DenseIndex blockCols=1) const |
| Get an arbitrary block from the matrix. Indices are in block units.
|
|
Block | block_ (DenseIndex iBlock, DenseIndex jBlock, DenseIndex blockRows=1, DenseIndex blockCols=1) |
| Get an arbitrary block from the matrix. Indices are in block units.
|
|
constBlock | full () const |
| Get the full matrix as a block.
|
|
Block | full () |
| Get the full matrix as a block.
|
|
std::array< DenseIndex, 4 > | calcIndices (DenseIndex iBlock, DenseIndex jBlock, DenseIndex blockRows, DenseIndex blockCols) const |
| Compute the indices into the underlying matrix for a given block.
|
|
void | assertInvariants () const |
|
template<typename ITERATOR > |
void | fillOffsets (ITERATOR firstBlockDim, ITERATOR lastBlockDim, bool appendOneDimension) |
|
This class stores a dense matrix and allows it to be accessed as a collection of blocks. When constructed, the caller must provide the dimensions of the blocks.
The block structure is symmetric, but the underlying matrix does not necessarily need to be.
This class also has a parameter that can be changed after construction to change the apparent matrix view. firstBlock() determines the block that appears to have index 0 for all operations (except re-setting firstBlock()).