g2o
|
linear solver which uses CSparse More...
#include <linear_solver_csparse.h>
Public Member Functions | |
LinearSolverCSparse () | |
virtual | ~LinearSolverCSparse () |
virtual bool | init () |
bool | solve (const SparseBlockMatrix< MatrixType > &A, double *x, double *b) |
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) |
bool | blockOrdering () const |
do the AMD ordering on the blocks or on the scalar matrix More... | |
void | setBlockOrdering (bool blockOrdering) |
virtual bool | writeDebug () const |
write a debug dump of the system matrix if it is not SPD in solve More... | |
virtual void | setWriteDebug (bool b) |
Public Member Functions inherited from g2o::LinearSolverCCS< MatrixType > | |
LinearSolverCCS () | |
~LinearSolverCCS () | |
Public Member Functions inherited from g2o::LinearSolver< MatrixType > | |
LinearSolver () | |
virtual | ~LinearSolver () |
Protected Member Functions | |
void | computeSymbolicDecomposition (const SparseBlockMatrix< MatrixType > &A) |
void | fillCSparse (const SparseBlockMatrix< MatrixType > &A, bool onlyValues) |
Protected Member Functions inherited from g2o::LinearSolverCCS< MatrixType > | |
void | initMatrixStructure (const SparseBlockMatrix< MatrixType > &A) |
Protected Attributes | |
css * | _symbolicDecomposition |
int | _csWorkspaceSize |
double * | _csWorkspace |
int * | _csIntWorkspace |
CSparseExt * | _ccsA |
bool | _blockOrdering |
MatrixStructure | _matrixStructure |
VectorXI | _scalarPermutation |
bool | _writeDebug |
Protected Attributes inherited from g2o::LinearSolverCCS< MatrixType > | |
SparseBlockMatrixCCS< MatrixType > * | _ccsMatrix |
linear solver which uses CSparse
Definition at line 71 of file linear_solver_csparse.h.
|
inline |
Definition at line 74 of file linear_solver_csparse.h.
|
inlinevirtual |
Definition at line 86 of file linear_solver_csparse.h.
|
inline |
do the AMD ordering on the blocks or on the scalar matrix
Definition at line 228 of file linear_solver_csparse.h.
|
inlineprotected |
Definition at line 246 of file linear_solver_csparse.h.
References g2o::MatrixStructure::Aii, g2o::MatrixStructure::Ap, g2o::SparseBlockMatrix< MatrixType >::colBaseOfBlock(), g2o::SparseBlockMatrix< MatrixType >::colsOfBlock(), g2o::SparseBlockMatrix< MatrixType >::fillBlockStructure(), g2o::get_monotonic_time(), g2o::G2OBatchStatistics::globalStats(), g2o::MatrixStructure::n, g2o::MatrixStructure::nzMax(), and g2o::G2OBatchStatistics::timeSymbolicDecomposition.
|
inlineprotected |
Definition at line 310 of file linear_solver_csparse.h.
References g2o::SparseBlockMatrix< MatrixType >::cols(), g2o::CSparseExt::columnsAllocated, g2o::SparseBlockMatrix< MatrixType >::nonZeros(), and g2o::SparseBlockMatrix< MatrixType >::rows().
|
inlinevirtual |
init for operating on matrices with a different non-zero pattern like before
Implements g2o::LinearSolver< MatrixType >.
Definition at line 97 of file linear_solver_csparse.h.
Referenced by g2o::SolverSLAM2DLinear::solveOrientation().
|
inline |
Definition at line 229 of file linear_solver_csparse.h.
|
inlinevirtual |
Reimplemented from g2o::LinearSolver< MatrixType >.
Definition at line 233 of file linear_solver_csparse.h.
|
inlinevirtual |
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!!
Implements g2o::LinearSolver< MatrixType >.
Definition at line 106 of file linear_solver_csparse.h.
References g2o::G2OBatchStatistics::choleskyNNZ, g2o::csparse_extension::cs_cholsolsymb(), g2o::get_monotonic_time(), g2o::G2OBatchStatistics::globalStats(), g2o::G2OBatchStatistics::timeNumericDecomposition, and g2o::csparse_extension::writeCs2Octave().
|
inlinevirtual |
Inverts the diagonal blocks of A
Reimplemented from g2o::LinearSolver< MatrixType >.
Definition at line 144 of file linear_solver_csparse.h.
References g2o::G2OBatchStatistics::choleskyNNZ, g2o::SparseBlockMatrix< MatrixType >::colsOfBlock(), g2o::MarginalCovarianceCholesky::computeCovariance(), g2o::csparse_extension::cs_chol_workspace(), g2o::G2OBatchStatistics::globalStats(), g2o::SparseBlockMatrix< MatrixType >::rowBlockIndices(), g2o::SparseBlockMatrix< MatrixType >::rows(), g2o::SparseBlockMatrix< MatrixType >::rowsOfBlock(), and g2o::MarginalCovarianceCholesky::setCholeskyFactor().
|
inlinevirtual |
Inverts the a block pattern of A in spinv
Reimplemented from g2o::LinearSolver< MatrixType >.
Definition at line 190 of file linear_solver_csparse.h.
References g2o::G2OBatchStatistics::choleskyNNZ, g2o::MarginalCovarianceCholesky::computeCovariance(), g2o::csparse_extension::cs_chol_workspace(), g2o::G2OBatchStatistics::globalStats(), g2o::SparseBlockMatrix< MatrixType >::rowBlockIndices(), and g2o::MarginalCovarianceCholesky::setCholeskyFactor().
|
inlinevirtual |
write a debug dump of the system matrix if it is not SPD in solve
Reimplemented from g2o::LinearSolver< MatrixType >.
Definition at line 232 of file linear_solver_csparse.h.
|
protected |
Definition at line 241 of file linear_solver_csparse.h.
|
protected |
Definition at line 240 of file linear_solver_csparse.h.
|
protected |
Definition at line 239 of file linear_solver_csparse.h.
|
protected |
Definition at line 238 of file linear_solver_csparse.h.
|
protected |
Definition at line 237 of file linear_solver_csparse.h.
|
protected |
Definition at line 242 of file linear_solver_csparse.h.
|
protected |
Definition at line 243 of file linear_solver_csparse.h.
|
protected |
Definition at line 236 of file linear_solver_csparse.h.
|
protected |
Definition at line 244 of file linear_solver_csparse.h.