27 #ifndef G2O_LINEAR_SOLVER_PCG_H 28 #define G2O_LINEAR_SOLVER_PCG_H 39 #include<Eigen/StdVector> 46 template <
typename MatrixType>
88 typedef std::vector< MatrixType, Eigen::aligned_allocator<MatrixType> >
MatrixVector;
double tolerance() const
return the tolerance for terminating PCG before convergence
void setMaxIterations(int maxIter)
void multDiag(const std::vector< int > &colBlockIndices, MatrixVector &A, const VectorXD &src, VectorXD &dest)
std::vector< MatrixType, Eigen::aligned_allocator< MatrixType > > MatrixVector
void mult(const std::vector< int > &colBlockIndices, const VectorXD &src, VectorXD &dest)
bool absoluteTolerance() const
void setTolerance(double tolerance)
std::vector< const MatrixType * > MatrixPtrVector
linear solver using PCG, pre-conditioner is block Jacobi
void setAbsoluteTolerance(bool absoluteTolerance)
std::vector< std::pair< int, int > > _indices
void setVerbose(bool verbose)
Eigen::Matrix< double, Eigen::Dynamic, 1, Eigen::ColMajor > VectorXD
bool solve(const SparseBlockMatrix< MatrixType > &A, double *x, double *b)
MatrixPtrVector _sparseMat
int maxIterations() const
virtual ~LinearSolverPCG()
Sparse matrix which uses blocks.