77 const auto identity = Matrix::Identity(
rows(),
rows());
84 gttic(VerticalBlockMatrix_choleskyPartial);
93 gttic(VerticalBlockMatrix_split);
DenseIndex cols() const
Column size.
constBlock full() const
Get the full matrix as a block.
Access to matrices via blocks of pre-defined sizes. Used in GaussianFactor and GaussianConditional.
FastVector< DenseIndex > variableColOffsets_
the starting columns of each block (0-based)
DenseIndex nBlocks() const
Block count.
A matrix with column blocks of pre-defined sizes. Used in JacobianFactor and GaussianConditional.
Matrix matrix_
The full matrix.
DenseIndex blockStart_
Changes apparent matrix view, see main class comment.
static SymmetricBlockMatrix LikeActiveViewOf(const SymmetricBlockMatrix &other)
ptrdiff_t DenseIndex
The index type for Eigen objects.
void invertInPlace()
Invert the entire active matrix in place.
DenseIndex nBlocks() const
Block count.
DenseIndex rows() const
Row size.
DenseIndex cols() const
Column size.
void negate()
Negate the entire active matrix.
JacobiRotation< float > J
Eigen::SelfAdjointView< Block, Eigen::Upper > selfadjointView()
Get self adjoint view.
VerticalBlockMatrix split(DenseIndex nFrontals)
static VerticalBlockMatrix LikeActiveViewOf(const VerticalBlockMatrix &rhs)
bool choleskyPartial(Matrix &ABC, size_t nFrontal, size_t topleft)
DenseIndex offset(DenseIndex block) const
Get an offset for a block index (in the active view).
void choleskyPartial(DenseIndex nFrontals)
void setZero()
Set the entire active matrix zero.
FastVector< DenseIndex > variableColOffsets_
the starting columns of each block (0-based)
SymmetricBlockMatrix()
Construct from an empty matrix (asserts that the matrix is empty)
DenseIndex blockStart_
Changes apparent matrix view, see main class comment.
DenseIndex & blockStart()
Indicate Cholesky factorization failure.
Eigen::SelfAdjointView< Block, Eigen::Upper > diagonalBlock(DenseIndex J)
Return the J'th diagonal block as a self adjoint view.
void assertInvariants() const
constBlock aboveDiagonalBlock(DenseIndex I, DenseIndex J) const
Get block above the diagonal (I, J).
Matrix block(DenseIndex I, DenseIndex J) const
Efficient incomplete Cholesky on rank-deficient matrices, todo: constrained Cholesky.