|
g2o
|
basic solver for Ax = b which has to reimplemented for different linear algebra libraries More...
#include <linear_solver_cholmod.h>


Public Member Functions | |
| LinearSolverCholmod () | |
| LinearSolverCholmod (LinearSolverCholmod< MatrixType > const &)=delete | |
| LinearSolverCholmod & | operator= (LinearSolverCholmod< MatrixType > const &)=delete |
| virtual | ~LinearSolverCholmod () |
| virtual bool | init () |
| bool | solve (const SparseBlockMatrix< MatrixType > &A, double *x, double *b) |
| virtual bool | saveMatrix (const std::string &fileName) |
Public Member Functions inherited from g2o::LinearSolverCCS< MatrixType > | |
| 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 () |
| 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 | computeSymbolicDecomposition (const SparseBlockMatrix< MatrixType > &A) |
| void | fillCholmodExt (const SparseBlockMatrix< MatrixType > &A, bool onlyValues) |
| bool | computeCholmodFactor (const SparseBlockMatrix< MatrixType > &A, double &t) |
| compute the cholmodFactor for the given matrix A | |
| bool | solveBlocks_impl (const SparseBlockMatrix< MatrixType > &A, std::function< void(MarginalCovarianceCholesky &)> compute) |
| void | freeCholdmodFactor () |
Protected Member Functions inherited from g2o::LinearSolverCCS< MatrixType > | |
| void | initMatrixStructure (const SparseBlockMatrix< MatrixType > &A) |
Protected Attributes | |
| cholmod::Cholmod | _cholmod |
| MatrixStructure | _matrixStructure |
| VectorXI | _scalarPermutation |
| VectorXI | _blockPermutation |
Protected Attributes inherited from g2o::LinearSolverCCS< MatrixType > | |
| 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) |
basic solver for Ax = b which has to reimplemented for different linear algebra libraries
Definition at line 47 of file linear_solver_cholmod.h.
|
inline |
Definition at line 49 of file linear_solver_cholmod.h.
|
delete |
|
inlinevirtual |
Definition at line 55 of file linear_solver_cholmod.h.
References g2o::LinearSolverCholmod< MatrixType >::freeCholdmodFactor().
|
inlineprotected |
compute the cholmodFactor for the given matrix A
Definition at line 164 of file linear_solver_cholmod.h.
References g2o::LinearSolverCholmod< MatrixType >::_cholmod, g2o::LinearSolverCholmod< MatrixType >::computeSymbolicDecomposition(), g2o::cholmod::Cholmod::factorize(), g2o::LinearSolverCholmod< MatrixType >::fillCholmodExt(), G2O_DEBUG, G2O_ERROR, g2o::get_monotonic_time(), g2o::cholmod::Cholmod::hasFactor(), g2o::LinearSolverCholmod< MatrixType >::saveMatrix(), and g2o::LinearSolver< MatrixType >::writeDebug().
Referenced by g2o::LinearSolverCholmod< MatrixType >::solve(), and g2o::LinearSolverCholmod< MatrixType >::solveBlocks_impl().
|
inlineprotected |
Definition at line 91 of file linear_solver_cholmod.h.
References g2o::LinearSolverCholmod< MatrixType >::_blockPermutation, g2o::LinearSolverCholmod< MatrixType >::_cholmod, g2o::LinearSolverCholmod< MatrixType >::_matrixStructure, g2o::LinearSolverCholmod< MatrixType >::_scalarPermutation, g2o::MatrixStructure::Aii, g2o::cholmod::Cholmod::amd(), g2o::cholmod::Cholmod::analyze(), g2o::cholmod::Cholmod::analyze_p(), g2o::MatrixStructure::Ap, g2o::LinearSolverCCS< MatrixType >::blockOrdering(), g2o::LinearSolver< MatrixType >::blockToScalarPermutation(), g2o::SparseBlockMatrix< MatrixType >::fillBlockStructure(), g2o::get_monotonic_time(), g2o::G2OBatchStatistics::globalStats(), g2o::MatrixStructure::n, g2o::MatrixStructure::nzMax(), and g2o::G2OBatchStatistics::timeSymbolicDecomposition.
Referenced by g2o::LinearSolverCholmod< MatrixType >::computeCholmodFactor().
|
inlineprotected |
Definition at line 127 of file linear_solver_cholmod.h.
References g2o::LinearSolverCCS< MatrixType >::_ccsMatrix, g2o::LinearSolverCholmod< MatrixType >::_cholmod, g2o::SparseBlockMatrix< MatrixType >::cols(), g2o::cholmod::Cholmod::SparseView::columnsAllocated, g2o::cholmod::Cholmod::SparseView::i, g2o::LinearSolverCCS< MatrixType >::initMatrixStructure(), g2o::cholmod::Cholmod::SparseView::ncol, g2o::SparseBlockMatrix< MatrixType >::nonZeros(), g2o::cholmod::Cholmod::SparseView::nrow, g2o::cholmod::Cholmod::SparseView::nzmax, g2o::cholmod::Cholmod::SparseView::p, g2o::SparseBlockMatrix< MatrixType >::rows(), g2o::cholmod::Cholmod::sparseView(), and g2o::cholmod::Cholmod::SparseView::x.
Referenced by g2o::LinearSolverCholmod< MatrixType >::computeCholmodFactor().
|
inlineprotected |
Definition at line 222 of file linear_solver_cholmod.h.
References g2o::LinearSolverCholmod< MatrixType >::_cholmod, and g2o::cholmod::Cholmod::freeFactor().
Referenced by g2o::LinearSolverCholmod< MatrixType >::init(), and g2o::LinearSolverCholmod< MatrixType >::~LinearSolverCholmod().
|
inlinevirtual |
init for operating on matrices with a different non-zero pattern like before
Implements g2o::LinearSolver< MatrixType >.
Definition at line 57 of file linear_solver_cholmod.h.
References g2o::LinearSolverCholmod< MatrixType >::freeCholdmodFactor().
|
delete |
|
inlinevirtual |
Definition at line 78 of file linear_solver_cholmod.h.
References g2o::LinearSolverCholmod< MatrixType >::_cholmod, g2o::cholmod::Cholmod::SparseView::i, g2o::cholmod::Cholmod::SparseView::ncol, g2o::cholmod::Cholmod::SparseView::nrow, g2o::cholmod::Cholmod::SparseView::p, g2o::cholmod::Cholmod::sparseView(), g2o::writeCCSMatrix(), and g2o::cholmod::Cholmod::SparseView::x.
Referenced by g2o::LinearSolverCholmod< MatrixType >::computeCholmodFactor().
|
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 62 of file linear_solver_cholmod.h.
References g2o::LinearSolverCholmod< MatrixType >::_cholmod, g2o::G2OBatchStatistics::choleskyNNZ, g2o::cholmod::Cholmod::choleskyNz(), g2o::LinearSolverCholmod< MatrixType >::computeCholmodFactor(), g2o::get_monotonic_time(), g2o::G2OBatchStatistics::globalStats(), g2o::cholmod::Cholmod::solve(), and g2o::G2OBatchStatistics::timeNumericDecomposition.
|
inlineprotectedvirtual |
Implements g2o::LinearSolverCCS< MatrixType >.
Definition at line 190 of file linear_solver_cholmod.h.
References g2o::LinearSolverCholmod< MatrixType >::_cholmod, g2o::G2OBatchStatistics::choleskyNNZ, g2o::cholmod::Cholmod::choleskyNz(), g2o::LinearSolverCholmod< MatrixType >::computeCholmodFactor(), g2o::cholmod::Cholmod::factor(), g2o::G2OBatchStatistics::globalStats(), g2o::cholmod::Cholmod::FactorView::i, g2o::cholmod::Cholmod::SparseView::ncol, g2o::cholmod::Cholmod::FactorView::p, g2o::cholmod::Cholmod::FactorView::perm, g2o::MarginalCovarianceCholesky::setCholeskyFactor(), g2o::cholmod::Cholmod::simplifyFactor(), g2o::cholmod::Cholmod::sparseView(), and g2o::cholmod::Cholmod::FactorView::x.
|
protected |
Definition at line 89 of file linear_solver_cholmod.h.
Referenced by g2o::LinearSolverCholmod< MatrixType >::computeSymbolicDecomposition().
|
protected |
Definition at line 87 of file linear_solver_cholmod.h.
Referenced by g2o::LinearSolverCholmod< MatrixType >::computeCholmodFactor(), g2o::LinearSolverCholmod< MatrixType >::computeSymbolicDecomposition(), g2o::LinearSolverCholmod< MatrixType >::fillCholmodExt(), g2o::LinearSolverCholmod< MatrixType >::freeCholdmodFactor(), g2o::LinearSolverCholmod< MatrixType >::saveMatrix(), g2o::LinearSolverCholmod< MatrixType >::solve(), and g2o::LinearSolverCholmod< MatrixType >::solveBlocks_impl().
|
protected |
Definition at line 88 of file linear_solver_cholmod.h.
Referenced by g2o::LinearSolverCholmod< MatrixType >::computeSymbolicDecomposition().
|
protected |
Definition at line 89 of file linear_solver_cholmod.h.
Referenced by g2o::LinearSolverCholmod< MatrixType >::computeSymbolicDecomposition().