Public Member Functions | List of all members
g2o::LinearSolver< MatrixType > Class Template Referenceabstract

basic solver for Ax = b More...

#include <linear_solver.h>

Inheritance diagram for g2o::LinearSolver< MatrixType >:
Inheritance graph
[legend]

Public Member Functions

virtual bool init ()=0
 
 LinearSolver ()
 
virtual void setWriteDebug (bool)
 
virtual bool solve (const SparseBlockMatrix< MatrixType > &A, double *x, double *b)=0
 
virtual bool solveBlocks (double **&blocks, const SparseBlockMatrix< MatrixType > &A)
 
virtual bool solvePattern (SparseBlockMatrix< MatrixXd > &spinv, const std::vector< std::pair< int, int > > &blockIndices, const SparseBlockMatrix< MatrixType > &A)
 
virtual bool writeDebug () const
 write a debug dump of the system matrix if it is not PSD in solve More...
 
virtual ~LinearSolver ()
 

Detailed Description

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

basic solver for Ax = b

basic solver for Ax = b which has to reimplemented for different linear algebra libraries. A is assumed to be symmetric (only upper triangular block is stored) and positive-semi-definit.

Definition at line 41 of file linear_solver.h.

Constructor & Destructor Documentation

template<typename MatrixType>
g2o::LinearSolver< MatrixType >::LinearSolver ( )
inline

Definition at line 44 of file linear_solver.h.

template<typename MatrixType>
virtual g2o::LinearSolver< MatrixType >::~LinearSolver ( )
inlinevirtual

Definition at line 45 of file linear_solver.h.

Member Function Documentation

template<typename MatrixType>
virtual bool g2o::LinearSolver< MatrixType >::init ( )
pure virtual

init for operating on matrices with a different non-zero pattern like before

Implemented in g2o::LinearSolverEigen< MatrixType >, and g2o::LinearSolverDense< MatrixType >.

template<typename MatrixType>
virtual void g2o::LinearSolver< MatrixType >::setWriteDebug ( bool  )
inlinevirtual

Reimplemented in g2o::LinearSolverEigen< MatrixType >.

Definition at line 80 of file linear_solver.h.

template<typename MatrixType>
virtual bool g2o::LinearSolver< MatrixType >::solve ( const SparseBlockMatrix< MatrixType > &  A,
double *  x,
double *  b 
)
pure virtual

Assumes that A is the same matrix for several calls. Among other assumptions, the non-zero pattern does not change! If the matrix changes call init() before. solve system Ax = b, x and b have to allocated beforehand!!

Implemented in g2o::LinearSolverEigen< MatrixType >, and g2o::LinearSolverDense< MatrixType >.

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

Inverts the diagonal blocks of A

Returns
false if not defined.

Definition at line 64 of file linear_solver.h.

template<typename MatrixType>
virtual bool g2o::LinearSolver< MatrixType >::solvePattern ( SparseBlockMatrix< MatrixXd > &  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.

Definition at line 71 of file linear_solver.h.

template<typename MatrixType>
virtual bool g2o::LinearSolver< MatrixType >::writeDebug ( ) const
inlinevirtual

write a debug dump of the system matrix if it is not PSD in solve

Reimplemented in g2o::LinearSolverEigen< MatrixType >.

Definition at line 79 of file linear_solver.h.


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


orb_slam2_ros
Author(s):
autogenerated on Wed Apr 21 2021 02:53:06