basic solver for Ax = b More...
#include <linear_solver.h>
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 () |
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.
|
inline |
Definition at line 44 of file linear_solver.h.
|
inlinevirtual |
Definition at line 45 of file linear_solver.h.
|
pure virtual |
init for operating on matrices with a different non-zero pattern like before
Implemented in g2o::LinearSolverEigen< MatrixType >, and g2o::LinearSolverDense< MatrixType >.
|
inlinevirtual |
Reimplemented in g2o::LinearSolverEigen< MatrixType >.
Definition at line 80 of file linear_solver.h.
|
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 >.
|
inlinevirtual |
Inverts the diagonal blocks of A
Definition at line 64 of file linear_solver.h.
|
inlinevirtual |
Inverts the a block pattern of A in spinv
Definition at line 71 of file linear_solver.h.
|
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.