basic solver for Ax = b More...
#include <linear_solver.h>
Public Member Functions | |
virtual bool | init ()=0 |
LinearSolver () | |
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 | ~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 31 of file linear_solver.h.
g2o::LinearSolver< MatrixType >::LinearSolver | ( | ) | [inline] |
Definition at line 34 of file linear_solver.h.
virtual g2o::LinearSolver< MatrixType >::~LinearSolver | ( | ) | [inline, virtual] |
Definition at line 35 of file linear_solver.h.
virtual bool g2o::LinearSolver< MatrixType >::init | ( | ) | [pure virtual] |
init for operating on matrices with a different non-zero pattern like before
Implemented in g2o::LinearSolverCholmod< MatrixType >, g2o::LinearSolverCSparse< MatrixType >, g2o::LinearSolverCholmodOnline< MatrixType >, g2o::LinearSolverPCG< MatrixType >, and g2o::LinearSolverDense< MatrixType >.
virtual bool g2o::LinearSolver< MatrixType >::solve | ( | const SparseBlockMatrix< MatrixType > & | A, |
double * | x, | ||
double * | b | ||
) | [pure virtual] |
Assumes that A has the same non-zero pattern over several calls. If the pattern changes call init() before. solve system Ax = b, x and b have to allocated beforehand!!
Implemented in g2o::LinearSolverCholmod< MatrixType >, g2o::LinearSolverCSparse< MatrixType >, g2o::LinearSolverCholmodOnline< MatrixType >, g2o::LinearSolverPCG< MatrixType >, and g2o::LinearSolverDense< MatrixType >.
virtual bool g2o::LinearSolver< MatrixType >::solveBlocks | ( | double **& | blocks, |
const SparseBlockMatrix< MatrixType > & | A | ||
) | [inline, virtual] |
Inverts the diagonal blocks of A
Reimplemented in g2o::LinearSolverCholmod< MatrixType >, and g2o::LinearSolverCSparse< MatrixType >.
Definition at line 56 of file linear_solver.h.
virtual bool g2o::LinearSolver< MatrixType >::solvePattern | ( | SparseBlockMatrix< MatrixXd > & | spinv, |
const std::vector< std::pair< int, int > > & | blockIndices, | ||
const SparseBlockMatrix< MatrixType > & | A | ||
) | [inline, virtual] |
Inverts the a block pattern of A in spinv
Reimplemented in g2o::LinearSolverCholmod< MatrixType >, and g2o::LinearSolverCSparse< MatrixType >.
Definition at line 69 of file linear_solver.h.