|
g2o
|
linear solver which allows to update the cholesky factor More...
#include <linear_solver_cholmod_online.h>


Public Member Functions | |
| LinearSolverCholmodOnline () | |
| virtual | ~LinearSolverCholmodOnline () |
| virtual bool | init () |
| bool | solve (const SparseBlockMatrix< MatrixType > &A, double *x, double *b) |
| bool | blockOrdering () const |
| cholmod_factor * | L () const |
| size_t | nonZerosInL () const |
| int | choleskyUpdate (cholmod_sparse *update) |
| bool | solve (double *x, double *b) |
| void | computeSymbolicDecomposition (const SparseBlockMatrix< MatrixType > &A) |
| void | fillCholmodExt (const SparseBlockMatrix< MatrixType > &A, bool onlyValues) |
Public Member Functions inherited from g2o::LinearSolver< MatrixType > | |
| LinearSolver () | |
| virtual | ~LinearSolver () |
| 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 | writeDebug () const |
| write a debug dump of the system matrix if it is not PSD in solve | |
| void | setWriteDebug (bool b) |
Public Member Functions inherited from g2o::LinearSolverCholmodOnlineInterface | |
| LinearSolverCholmodOnlineInterface () | |
Protected Attributes | |
| cholmod_common | _cholmodCommon |
| cholmod::CholmodExt * | _cholmodSparse |
| cholmod_factor * | _cholmodFactor |
| bool | _blockOrdering |
| MatrixStructure | _matrixStructure |
| Eigen::VectorXi | _scalarPermutation |
| Eigen::VectorXi | _blockPermutation |
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) |
Public Attributes inherited from g2o::LinearSolverCholmodOnlineInterface | |
| Eigen::VectorXi * | cmember |
| int | batchEveryN |
linear solver which allows to update the cholesky factor
Definition at line 51 of file linear_solver_cholmod_online.h.
|
inline |
Definition at line 54 of file linear_solver_cholmod_online.h.
References g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodCommon, g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodFactor, g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodSparse, and g2o::LinearSolverCholmodOnlineInterface::batchEveryN.
|
inlinevirtual |
Definition at line 69 of file linear_solver_cholmod_online.h.
References g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodCommon, g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodFactor, and g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodSparse.
|
inline |
Definition at line 124 of file linear_solver_cholmod_online.h.
|
inlinevirtual |
Implements g2o::LinearSolverCholmodOnlineInterface.
Definition at line 139 of file linear_solver_cholmod_online.h.
References g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodCommon, g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodFactor, g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodSparse, and g2o::writeCCSMatrix().
|
inline |
Definition at line 181 of file linear_solver_cholmod_online.h.
References g2o::LinearSolverCholmodOnline< MatrixType >::_blockPermutation, g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodCommon, g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodFactor, g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodSparse, g2o::LinearSolverCholmodOnline< MatrixType >::_matrixStructure, g2o::LinearSolverCholmodOnline< MatrixType >::_scalarPermutation, g2o::MatrixStructure::Aii, g2o::MatrixStructure::Ap, g2o::LinearSolverCholmodOnlineInterface::cmember, g2o::SparseBlockMatrix< MatrixType >::colBaseOfBlock(), g2o::SparseBlockMatrix< MatrixType >::colsOfBlock(), g2o::SparseBlockMatrix< MatrixType >::fillBlockStructure(), g2o::get_monotonic_time(), g2o::G2OBatchStatistics::globalStats(), g2o::MatrixStructure::n, and g2o::G2OBatchStatistics::timeSymbolicDecomposition.
Referenced by g2o::LinearSolverCholmodOnline< MatrixType >::solve().
|
inline |
Definition at line 228 of file linear_solver_cholmod_online.h.
References g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodSparse, g2o::LinearSolverCholmodOnlineInterface::batchEveryN, g2o::SparseBlockMatrix< MatrixType >::cols(), g2o::cholmod::CholmodExt::columnsAllocated, g2o::SparseBlockMatrix< MatrixType >::fillCCS(), g2o::SparseBlockMatrix< MatrixType >::nonZeros(), and g2o::SparseBlockMatrix< MatrixType >::rows().
Referenced by g2o::LinearSolverCholmodOnline< MatrixType >::solve().
|
inlinevirtual |
init for operating on matrices with a different non-zero pattern like before
Implements g2o::LinearSolver< MatrixType >.
Definition at line 78 of file linear_solver_cholmod_online.h.
|
inlinevirtual |
Implements g2o::LinearSolverCholmodOnlineInterface.
Definition at line 126 of file linear_solver_cholmod_online.h.
References g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodFactor.
|
inlinevirtual |
return the number of non-zeros in the current factorization
Implements g2o::LinearSolverCholmodOnlineInterface.
Definition at line 131 of file linear_solver_cholmod_online.h.
References g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodFactor.
|
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 80 of file linear_solver_cholmod_online.h.
References g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodCommon, g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodFactor, g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodSparse, g2o::G2OBatchStatistics::choleskyNNZ, g2o::LinearSolverCholmodOnline< MatrixType >::computeSymbolicDecomposition(), g2o::LinearSolverCholmodOnline< MatrixType >::fillCholmodExt(), g2o::get_monotonic_time(), g2o::G2OBatchStatistics::globalStats(), g2o::G2OBatchStatistics::timeNumericDecomposition, and g2o::writeCCSMatrix().
|
inlinevirtual |
Implements g2o::LinearSolverCholmodOnlineInterface.
Definition at line 154 of file linear_solver_cholmod_online.h.
References g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodCommon, g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodFactor, and g2o::LinearSolverCholmodOnline< MatrixType >::_cholmodSparse.
|
protected |
Definition at line 176 of file linear_solver_cholmod_online.h.
|
protected |
Definition at line 178 of file linear_solver_cholmod_online.h.
Referenced by g2o::LinearSolverCholmodOnline< MatrixType >::computeSymbolicDecomposition().
|
protected |
Definition at line 173 of file linear_solver_cholmod_online.h.
Referenced by g2o::LinearSolverCholmodOnline< MatrixType >::choleskyUpdate(), g2o::LinearSolverCholmodOnline< MatrixType >::computeSymbolicDecomposition(), g2o::LinearSolverCholmodOnline< MatrixType >::LinearSolverCholmodOnline(), g2o::LinearSolverCholmodOnline< MatrixType >::solve(), g2o::LinearSolverCholmodOnline< MatrixType >::solve(), and g2o::LinearSolverCholmodOnline< MatrixType >::~LinearSolverCholmodOnline().
|
protected |
Definition at line 175 of file linear_solver_cholmod_online.h.
Referenced by g2o::LinearSolverCholmodOnline< MatrixType >::choleskyUpdate(), g2o::LinearSolverCholmodOnline< MatrixType >::computeSymbolicDecomposition(), g2o::LinearSolverCholmodOnline< MatrixType >::L(), g2o::LinearSolverCholmodOnline< MatrixType >::LinearSolverCholmodOnline(), g2o::LinearSolverCholmodOnline< MatrixType >::nonZerosInL(), g2o::LinearSolverCholmodOnline< MatrixType >::solve(), g2o::LinearSolverCholmodOnline< MatrixType >::solve(), and g2o::LinearSolverCholmodOnline< MatrixType >::~LinearSolverCholmodOnline().
|
protected |
Definition at line 174 of file linear_solver_cholmod_online.h.
Referenced by g2o::LinearSolverCholmodOnline< MatrixType >::choleskyUpdate(), g2o::LinearSolverCholmodOnline< MatrixType >::computeSymbolicDecomposition(), g2o::LinearSolverCholmodOnline< MatrixType >::fillCholmodExt(), g2o::LinearSolverCholmodOnline< MatrixType >::LinearSolverCholmodOnline(), g2o::LinearSolverCholmodOnline< MatrixType >::solve(), g2o::LinearSolverCholmodOnline< MatrixType >::solve(), and g2o::LinearSolverCholmodOnline< MatrixType >::~LinearSolverCholmodOnline().
|
protected |
Definition at line 177 of file linear_solver_cholmod_online.h.
Referenced by g2o::LinearSolverCholmodOnline< MatrixType >::computeSymbolicDecomposition().
|
protected |
Definition at line 178 of file linear_solver_cholmod_online.h.
Referenced by g2o::LinearSolverCholmodOnline< MatrixType >::computeSymbolicDecomposition().