gtsam 4.1.1
gtsam
gtsam::NonlinearOptimizerParams Class Reference

Detailed Description

The common parameters for Nonlinear optimizers.

Most optimizers deriving from NonlinearOptimizer also subclass the parameters.

+ Inheritance diagram for gtsam::NonlinearOptimizerParams:

Public Member Functions

size_t getMaxIterations () const
 
double getRelativeErrorTol () const
 
double getAbsoluteErrorTol () const
 
double getErrorTol () const
 
std::string getVerbosity () const
 
void setMaxIterations (int value)
 
void setRelativeErrorTol (double value)
 
void setAbsoluteErrorTol (double value)
 
void setErrorTol (double value)
 
void setVerbosity (const std::string &src)
 
virtual void print (const std::string &str="") const
 
bool equals (const NonlinearOptimizerParams &other, double tol=1e-9) const
 
bool isMultifrontal () const
 
bool isSequential () const
 
bool isCholmod () const
 
bool isIterative () const
 
GaussianFactorGraph::Eliminate getEliminationFunction () const
 
std::string getLinearSolverType () const
 
void setLinearSolverType (const std::string &solver)
 
void setIterativeParams (const boost::shared_ptr< IterativeOptimizationParameters > params)
 
void setOrdering (const Ordering &ordering)
 
std::string getOrderingType () const
 
void setOrderingType (const std::string &ordering)
 

Static Public Member Functions

static Verbosity verbosityTranslator (const std::string &s)
 
static std::string verbosityTranslator (Verbosity value)
 

Public Attributes

size_t maxIterations = 100
 The maximum iterations to stop iterating (default 100)
 
double relativeErrorTol = 1e-5
 The maximum relative error decrease to stop iterating (default 1e-5)
 
double absoluteErrorTol = 1e-5
 The maximum absolute error decrease to stop iterating (default 1e-5)
 
double errorTol = 0.0
 The maximum total error to stop iterating (default 0.0)
 
Verbosity verbosity = SILENT
 The printing verbosity during optimization (default SILENT)
 
Ordering::OrderingType orderingType = Ordering::COLAMD
 The method of ordering use during variable elimination (default COLAMD)
 
IterationHook iterationHook
 Optional user-provided iteration hook to be called after each optimization iteration (Default: none). More...
 
LinearSolverType linearSolverType = MULTIFRONTAL_CHOLESKY
 The type of linear solver to use in the nonlinear optimizer.
 
boost::optional< Orderingordering
 The optional variable elimination ordering, or empty to use COLAMD (default: empty)
 
IterativeOptimizationParameters::shared_ptr iterativeParams
 The container for iterativeOptimization parameters. used in CG Solvers.
 

Public Types

enum  Verbosity {
  SILENT , TERMINATION , ERROR , VALUES ,
  DELTA , LINEAR
}
 See NonlinearOptimizerParams::verbosity.
 
enum  LinearSolverType {
  MULTIFRONTAL_CHOLESKY , MULTIFRONTAL_QR , SEQUENTIAL_CHOLESKY , SEQUENTIAL_QR ,
  Iterative , CHOLMOD
}
 See NonlinearOptimizerParams::linearSolverType.
 
using IterationHook = std::function< void(size_t, double, double)>
 Type for an optional user-provided hook to be called after each internal optimizer iteration. More...
 

Member Typedef Documentation

◆ IterationHook

using gtsam::NonlinearOptimizerParams::IterationHook = std::function< void(size_t , double, double)>

Type for an optional user-provided hook to be called after each internal optimizer iteration.

See iterationHook below.

Member Data Documentation

◆ iterationHook

IterationHook gtsam::NonlinearOptimizerParams::iterationHook

Optional user-provided iteration hook to be called after each optimization iteration (Default: none).

Note that IterationHook is defined as a std::function<> with this signature:

void(size_t iteration, double errorBefore, double errorAfter)

which allows binding by means of a reference to a regular function:

void foo(size_t iteration, double errorBefore, double errorAfter);
// ...
lmOpts.iterationHook = &foo;

or to a C++11 lambda (preferred if you need to capture additional context variables, such that the optimizer object itself, the factor graph, etc.):

lmOpts.iterationHook = [&](size_t iter, double oldError, double newError)
{
// ...
};

or to the result of a properly-formed std::bind call.


The documentation for this class was generated from the following files: