g2o
Loading...
Searching...
No Matches
g2o::LinearSolverCCS< MatrixType > Class Template Referenceabstract

Solver with faster iterating structure for the linear matrix. More...

#include <linear_solver.h>

Inheritance diagram for g2o::LinearSolverCCS< MatrixType >:
Collaboration diagram for g2o::LinearSolverCCS< MatrixType >:

Public Member Functions

 LinearSolverCCS ()
 ~LinearSolverCCS ()
virtual bool solveBlocks (double **&blocks, const SparseBlockMatrix< MatrixType > &A)
virtual bool solvePattern (SparseBlockMatrix< MatrixX > &spinv, const std::vector< std::pair< int, int > > &blockIndices, const SparseBlockMatrix< MatrixType > &A)
bool blockOrdering () const
 do the AMD ordering on the blocks or on the scalar matrix
void setBlockOrdering (bool blockOrdering)
Public Member Functions inherited from g2o::LinearSolver< MatrixType >
 LinearSolver ()
virtual ~LinearSolver ()
virtual bool init ()=0
virtual bool solve (const SparseBlockMatrix< MatrixType > &A, double *x, double *b)=0
bool writeDebug () const
 write a debug dump of the system matrix if it is not PSD in solve
void setWriteDebug (bool b)

Protected Member Functions

void initMatrixStructure (const SparseBlockMatrix< MatrixType > &A)
virtual bool solveBlocks_impl (const SparseBlockMatrix< MatrixType > &A, std::function< void(MarginalCovarianceCholesky &)> compute)=0

Protected Attributes

SparseBlockMatrixCCS< MatrixType > * _ccsMatrix
bool _blockOrdering
Protected Attributes inherited from g2o::LinearSolver< MatrixType >
bool _writeDebug

Additional Inherited Members

Static Public Member Functions inherited from g2o::LinearSolver< MatrixType >
static void allocateBlocks (const SparseBlockMatrix< MatrixType > &A, double **&blocks)
 allocate block memory structure
static void deallocateBlocks (const SparseBlockMatrix< MatrixType > &A, double **&blocks)
 de-allocate the block structure
template<typename BlockDerived, typename ScalarDerived>
static void blockToScalarPermutation (const SparseBlockMatrix< MatrixType > &A, const Eigen::MatrixBase< BlockDerived > &p, const Eigen::MatrixBase< ScalarDerived > &scalar)

Detailed Description

template<typename MatrixType>
class g2o::LinearSolverCCS< MatrixType >

Solver with faster iterating structure for the linear matrix.

Definition at line 150 of file linear_solver.h.

Constructor & Destructor Documentation

◆ LinearSolverCCS()

◆ ~LinearSolverCCS()

template<typename MatrixType>
g2o::LinearSolverCCS< MatrixType >::~LinearSolverCCS ( )
inline

Definition at line 154 of file linear_solver.h.

References _ccsMatrix.

Member Function Documentation

◆ blockOrdering()

template<typename MatrixType>
bool g2o::LinearSolverCCS< MatrixType >::blockOrdering ( ) const
inline

◆ initMatrixStructure()

◆ setBlockOrdering()

template<typename MatrixType>
void g2o::LinearSolverCCS< MatrixType >::setBlockOrdering ( bool blockOrdering)
inline

Definition at line 177 of file linear_solver.h.

References _blockOrdering, and blockOrdering().

◆ solveBlocks()

template<typename MatrixType>
virtual bool g2o::LinearSolverCCS< MatrixType >::solveBlocks ( double **& blocks,
const SparseBlockMatrix< MatrixType > & A )
inlinevirtual

Inverts the diagonal blocks of A

Returns
false if not defined.

Reimplemented from g2o::LinearSolver< MatrixType >.

Definition at line 156 of file linear_solver.h.

References g2o::LinearSolver< MatrixType >::allocateBlocks(), g2o::SparseBlockMatrix< MatrixType >::rowBlockIndices(), and solveBlocks_impl().

◆ solveBlocks_impl()

template<typename MatrixType>
virtual bool g2o::LinearSolverCCS< MatrixType >::solveBlocks_impl ( const SparseBlockMatrix< MatrixType > & A,
std::function< void(MarginalCovarianceCholesky &)> compute )
protectedpure virtual

◆ solvePattern()

template<typename MatrixType>
virtual bool g2o::LinearSolverCCS< MatrixType >::solvePattern ( SparseBlockMatrix< MatrixX > & spinv,
const std::vector< std::pair< int, int > > & blockIndices,
const SparseBlockMatrix< MatrixType > & A )
inlinevirtual

Inverts the a block pattern of A in spinv

Returns
false if not defined.

Reimplemented from g2o::LinearSolver< MatrixType >.

Definition at line 165 of file linear_solver.h.

References g2o::SparseBlockMatrix< MatrixType >::rowBlockIndices(), and solveBlocks_impl().

Member Data Documentation

◆ _blockOrdering

template<typename MatrixType>
bool g2o::LinearSolverCCS< MatrixType >::_blockOrdering
protected

Definition at line 181 of file linear_solver.h.

Referenced by blockOrdering(), LinearSolverCCS(), and setBlockOrdering().

◆ _ccsMatrix


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