36struct GTSAM_EXPORT PCGSolverParameters:
public ConjugateGradientParameters {
38 typedef ConjugateGradientParameters Base;
39 typedef boost::shared_ptr<PCGSolverParameters> shared_ptr;
41 PCGSolverParameters() {
44 void print(std::ostream &os)
const override;
48 return *preconditioner_;
52 void print(
const std::string &s)
const;
54 boost::shared_ptr<PreconditionerParameters> preconditioner_;
56 void setPreconditionerParams(
const boost::shared_ptr<PreconditionerParameters> preconditioner);
62class GTSAM_EXPORT PCGSolver:
public IterativeSolver {
64 typedef IterativeSolver Base;
65 typedef boost::shared_ptr<PCGSolver> shared_ptr;
70 boost::shared_ptr<Preconditioner> preconditioner_;
75 ~PCGSolver()
override {
78 using IterativeSolver::optimize;
81 const KeyInfo &keyInfo,
const std::map<Key, Vector> &lambda,
89class GTSAM_EXPORT GaussianFactorGraphSystem {
94 const std::map<Key, Vector> &lambda);
99 const std::map<Key, Vector> &lambda_;
101 void residual(
const Vector &x, Vector &r)
const;
102 void multiply(
const Vector &x, Vector& y)
const;
103 void leftPrecondition(
const Vector &x, Vector &y)
const;
104 void rightPrecondition(
const Vector &x, Vector &y)
const;
105 void scal(
const double alpha, Vector &x)
const;
106 double dot(
const Vector &x,
const Vector &y)
const;
107 void axpy(
const double alpha,
const Vector &x, Vector &y)
const;
109 void getb(Vector &b)
const;
117 const std::map<Key, size_t> & dimensions);
Implementation of Conjugate Gradient solver for a linear system.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
VectorValues buildVectorValues(const Vector &v, const Ordering &ordering, const map< Key, size_t > &dimensions)
Create VectorValues from a Vector.
Definition PCGSolver.cpp:151
A Linear Factor Graph is a factor graph where all factors are Gaussian, i.e.
Definition GaussianFactorGraph.h:75
Handy data structure for iterative solvers.
Definition IterativeSolver.h:126
Parameters for PCG.
Definition PCGSolver.h:36
Definition Preconditioner.h:24
Definition Preconditioner.h:64
VectorValues represents a collection of vector-valued variables associated each with a unique integer...
Definition VectorValues.h:74