Simple non-linear optimizer that solves using non-preconditioned CG. More...
#include <gtsam/base/Manifold.h>
#include <gtsam/nonlinear/NonlinearOptimizer.h>
#include <stdexcept>
Go to the source code of this file.
Classes | |
class | gtsam::NonlinearConjugateGradientOptimizer |
class | gtsam::NonlinearConjugateGradientOptimizer::System |
Namespaces | |
gtsam | |
traits | |
Enumerations | |
enum | gtsam::DirectionMethod { gtsam::DirectionMethod::FletcherReeves, gtsam::DirectionMethod::PolakRibiere, gtsam::DirectionMethod::HestenesStiefel, gtsam::DirectionMethod::DaiYuan } |
Functions | |
template<typename Gradient > | |
double | gtsam::DaiYuan (const Gradient ¤tGradient, const Gradient &prevGradient, const Gradient &direction) |
The Dai-Yuan formula for computing β, the direction of steepest descent. More... | |
template<typename Gradient > | |
double | gtsam::FletcherReeves (const Gradient ¤tGradient, const Gradient &prevGradient) |
Fletcher-Reeves formula for computing β, the direction of steepest descent. More... | |
template<typename Gradient > | |
double | gtsam::HestenesStiefel (const Gradient ¤tGradient, const Gradient &prevGradient, const Gradient &direction) |
template<class S , class V , class W > | |
double | gtsam::lineSearch (const S &system, const V currentValues, const W &gradient) |
template<class S , class V > | |
std::tuple< V, int > | gtsam::nonlinearConjugateGradient (const S &system, const V &initial, const NonlinearOptimizerParams ¶ms, const bool singleIteration, const DirectionMethod &directionMethod=DirectionMethod::PolakRibiere, const bool gradientDescent=false) |
template<typename Gradient > | |
double | gtsam::PolakRibiere (const Gradient ¤tGradient, const Gradient &prevGradient) |
Polak-Ribiere formula for computing β, the direction of steepest descent. More... | |
Simple non-linear optimizer that solves using non-preconditioned CG.
Definition in file NonlinearConjugateGradientOptimizer.h.