30struct NonlinearOptimizerState;
85 std::shared_ptr<const NonlinearFactorGraph>
88 std::unique_ptr<internal::NonlinearOptimizerState>
state_;
91 mutable std::unique_ptr<NonlinearMultifrontalSolver>
99 struct IndexedJunctionTreeCache;
100 mutable std::unique_ptr<IndexedJunctionTreeCache> indexedJunctionTreeCache_;
104 using shared_ptr = std::shared_ptr<const NonlinearOptimizer>;
129 const Values& optimizeSafely();
132 double error()
const;
135 size_t iterations()
const;
138 const Values& values()
const;
189 std::unique_ptr<internal::NonlinearOptimizerState> state);
198 double relativeErrorThreshold,
double absoluteErrorThreshold,
199 double errorThreshold,
double currentError,
double newError,
201 NonlinearOptimizerParams::SILENT);
204 double currentError,
double newError);
Parameters for nonlinear optimization.
Factor Graph consisting of non-linear factors.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
bool checkConvergence(double relativeErrorThreshold, double absoluteErrorThreshold, double errorThreshold, double currentError, double newError, NonlinearOptimizerParams::Verbosity verbosity)
Check whether the relative error decrease is less than relativeErrorThreshold, the absolute error dec...
Definition NonlinearOptimizer.cpp:236
A Linear Factor Graph is a factor graph where all factors are Gaussian, i.e.
Definition GaussianFactorGraph.h:77
std::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition GaussianFactorGraph.h:83
VectorValues represents a collection of vector-valued variables associated each with a unique integer...
Definition VectorValues.h:73
Definition NonlinearFactorGraph.h:57
Multifrontal solver for nonlinear factor graphs.
Definition NonlinearMultifrontalSolver.h:37
This is the abstract interface for classes that can optimize for the maximum-likelihood estimate of a...
Definition NonlinearOptimizer.h:83
std::unique_ptr< internal::CholmodSolver > cholmodSolver_
Optional reusable CHOLMOD numerical and symbolic session.
Definition NonlinearOptimizer.h:95
const NonlinearFactorGraph & graph() const
return the graph with nonlinear factors
Definition NonlinearOptimizer.h:141
std::shared_ptr< const NonlinearFactorGraph > graph_
The graph with nonlinear factors.
Definition NonlinearOptimizer.h:86
virtual const Values & optimize()
Optimize for the maximum-likelihood estimate, returning a the optimized variable assignments.
Definition NonlinearOptimizer.h:118
std::unique_ptr< NonlinearMultifrontalSolver > nonlinearMultifrontalSolver_
Solver for multifrontal Cholesky, lazily created.
Definition NonlinearOptimizer.h:92
std::unique_ptr< internal::NonlinearOptimizerState > state_
PIMPL'd state.
Definition NonlinearOptimizer.h:88
std::shared_ptr< const NonlinearOptimizer > shared_ptr
A shared pointer to this class.
Definition NonlinearOptimizer.h:104
virtual GaussianFactorGraph::shared_ptr iterate()=0
Perform a single iteration, returning GaussianFactorGraph corresponding to the linearized factor grap...
NonlinearOptimizer(const NonlinearFactorGraph &graph, std::unique_ptr< internal::NonlinearOptimizerState > state)
Constructor for initial construction of base classes.
Definition NonlinearOptimizer.cpp:79
const Values & values() const
return values in current optimizer state
Definition NonlinearOptimizer.cpp:95
void defaultOptimize()
A default implementation of the optimization loop, which calls iterate() until checkConvergence retur...
Definition NonlinearOptimizer.cpp:100
virtual bool ensureMultifrontalSolver(const NonlinearOptimizerParams ¶ms, const Values &values) const
Ensure that the nonlinearMultifrontalSolver_ is populated if (and only if) the params request the mul...
Definition NonlinearOptimizer.cpp:295
The common parameters for Nonlinear optimizers.
Definition NonlinearOptimizerParams.h:37
Verbosity
See NonlinearOptimizerParams::verbosity.
Definition NonlinearOptimizerParams.h:40
A non-templated config holding any types of Manifold-group elements.
Definition Values.h:65