gtsam  3.2.1
gtsam
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gtsam::SymmetricBlockMatrix Class Reference

Public Member Functions

 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.
 
Block operator() (DenseIndex i_block, DenseIndex j_block)
 Access the block with vertical block index i_block and horizontal block index j_block. More...
 
constBlock operator() (DenseIndex i_block, DenseIndex j_block) const
 Access the block with vertical block index i_block and horizontal block index j_block. More...
 
Block range (DenseIndex i_startBlock, DenseIndex i_endBlock, DenseIndex j_startBlock, DenseIndex j_endBlock)
 Access the range of blocks starting with vertical block index i_startBlock, ending with vertical block index i_endBlock, starting with horizontal block index j_startBlock, and ending with horizontal block index j_endBlock. More...
 
constBlock range (DenseIndex i_startBlock, DenseIndex i_endBlock, DenseIndex j_startBlock, DenseIndex j_endBlock) const
 Access the range of blocks starting with vertical block index i_startBlock, ending with vertical block index i_endBlock, starting with horizontal block index j_startBlock, and ending with horizontal block index j_endBlock. More...
 
Block full ()
 Return the full matrix, not including any portions excluded by firstBlock(). More...
 
constBlock full () const
 Return the full matrix, not including any portions excluded by firstBlock(). More...
 
Eigen::SelfAdjointView< const
Matrix, Eigen::Upper > 
matrix () const
 Access to full matrix, including any portions excluded by firstBlock() to other operations. More...
 
Eigen::SelfAdjointView< Matrix,
Eigen::Upper > 
matrix ()
 Access to full matrix, including any portions excluded by firstBlock() to other operations. More...
 
DenseIndex offset (DenseIndex block) const
 Return the absolute offset in the underlying matrix of the start of the specified block.
 
DenseIndexblockStart ()
 Retrieve or modify the first logical block, i.e. More...
 
DenseIndex blockStart () const
 Retrieve the first logical block, i.e. More...
 
VerticalBlockMatrix choleskyPartial (DenseIndex nFrontals)
 Do partial Cholesky in-place and return the eliminated block matrix, leaving the remaining symmetric matrix in place. More...
 

Static Public Member Functions

static SymmetricBlockMatrix LikeActiveViewOf (const SymmetricBlockMatrix &other)
 Copy the block structure, but do not copy the matrix data. More...
 
static SymmetricBlockMatrix LikeActiveViewOf (const VerticalBlockMatrix &other)
 Copy the block structure, but do not copy the matrix data. More...
 

Public Types

typedef SymmetricBlockMatrix This
 
typedef
SymmetricBlockMatrixBlockExpr
< This
Block
 
typedef
SymmetricBlockMatrixBlockExpr
< const This
constBlock
 

Protected Member Functions

void assertInvariants () const
 
void checkBlock (DenseIndex block) const
 
DenseIndex offsetUnchecked (DenseIndex block) const
 
template<typename ITERATOR >
void fillOffsets (ITERATOR firstBlockDim, ITERATOR lastBlockDim, bool appendOneDimension)
 

Protected Attributes

Matrix matrix_
 The full matrix.
 
FastVector< DenseIndexvariableColOffsets_
 the starting columns of each block (0-based)
 
DenseIndex blockStart_
 Changes apparent matrix view, see main class comment.
 

Friends

class VerticalBlockMatrix
 
template<typename SymmetricBlockMatrixType >
class SymmetricBlockMatrixBlockExpr
 
class boost::serialization::access
 Serialization function.
 

Member Function Documentation

DenseIndex& gtsam::SymmetricBlockMatrix::blockStart ( )
inline

Retrieve or modify the first logical block, i.e.

the block referenced by block index 0. Blocks before it will be inaccessible, except by accessing the underlying matrix using matrix().

DenseIndex gtsam::SymmetricBlockMatrix::blockStart ( ) const
inline

Retrieve the first logical block, i.e.

the block referenced by block index 0. Blocks before it will be inaccessible, except by accessing the underlying matrix using matrix().

VerticalBlockMatrix gtsam::SymmetricBlockMatrix::choleskyPartial ( DenseIndex  nFrontals)

Do partial Cholesky in-place and return the eliminated block matrix, leaving the remaining symmetric matrix in place.

Block gtsam::SymmetricBlockMatrix::full ( )
inline

Return the full matrix, not including any portions excluded by firstBlock().

constBlock gtsam::SymmetricBlockMatrix::full ( ) const
inline

Return the full matrix, not including any portions excluded by firstBlock().

SymmetricBlockMatrix gtsam::SymmetricBlockMatrix::LikeActiveViewOf ( const SymmetricBlockMatrix other)
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 SymmetricBlockMatrix, blockStart() will be 0.

SymmetricBlockMatrix gtsam::SymmetricBlockMatrix::LikeActiveViewOf ( const VerticalBlockMatrix other)
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 SymmetricBlockMatrix, blockStart() will be 0.

Eigen::SelfAdjointView<const Matrix, Eigen::Upper> gtsam::SymmetricBlockMatrix::matrix ( ) const
inline

Access to full matrix, including any portions excluded by firstBlock() to other operations.

Eigen::SelfAdjointView<Matrix, Eigen::Upper> gtsam::SymmetricBlockMatrix::matrix ( )
inline

Access to full matrix, including any portions excluded by firstBlock() to other operations.

Block gtsam::SymmetricBlockMatrix::operator() ( DenseIndex  i_block,
DenseIndex  j_block 
)
inline

Access the block with vertical block index i_block and horizontal block index j_block.

Note that the actual block accessed in the underlying matrix is relative to blockStart().

constBlock gtsam::SymmetricBlockMatrix::operator() ( DenseIndex  i_block,
DenseIndex  j_block 
) const
inline

Access the block with vertical block index i_block and horizontal block index j_block.

Note that the actual block accessed in the underlying matrix is relative to blockStart().

Block gtsam::SymmetricBlockMatrix::range ( DenseIndex  i_startBlock,
DenseIndex  i_endBlock,
DenseIndex  j_startBlock,
DenseIndex  j_endBlock 
)
inline

Access the range of blocks starting with vertical block index i_startBlock, ending with vertical block index i_endBlock, starting with horizontal block index j_startBlock, and ending with horizontal block index j_endBlock.

End block indices are exclusive. Note that the actual blocks accessed in the underlying matrix are relative to blockStart().

constBlock gtsam::SymmetricBlockMatrix::range ( DenseIndex  i_startBlock,
DenseIndex  i_endBlock,
DenseIndex  j_startBlock,
DenseIndex  j_endBlock 
) const
inline

Access the range of blocks starting with vertical block index i_startBlock, ending with vertical block index i_endBlock, starting with horizontal block index j_startBlock, and ending with horizontal block index j_endBlock.

End block indices are exclusive. Note that the actual blocks accessed in the underlying matrix are relative to blockStart().


The documentation for this class was generated from the following files: