#include <lbfgs.h>
Public Member Functions | |
LBFGS (std::shared_ptr< pele::BasePotential > potential, const pele::Array< double > x0, double tol=1e-4, int M=4) | |
virtual | ~LBFGS () |
void | one_iteration () |
void | set_H0 (double H0) |
void | set_max_f_rise (double max_f_rise) |
void | set_use_relative_f (int use_relative_f) |
double | get_H0 () const |
virtual void | reset (pele::Array< double > &x0) |
An implementation of the LBFGS optimization algorithm in c++. This Implementation uses a backtracking linesearch.
pele::LBFGS::LBFGS | ( | std::shared_ptr< pele::BasePotential > | potential, |
const pele::Array< double > | x0, | ||
double | tol = 1e-4 , |
||
int | M = 4 |
||
) |
virtual pele::LBFGS::~LBFGS | ( | ) | [inline, virtual] |
double pele::LBFGS::get_H0 | ( | ) | const [inline] |
void pele::LBFGS::one_iteration | ( | ) | [virtual] |
Do one iteration iteration of the optimization algorithm
Implements pele::GradientOptimizer.
void pele::LBFGS::reset | ( | pele::Array< double > & | x0 | ) | [virtual] |
reset the lbfgs optimizer to start a new minimization from x0
H0 is not reset because the current value of H0 is probably better than the input value. You can use set_H0() to change H0.
Reimplemented from pele::GradientOptimizer.
void pele::LBFGS::set_H0 | ( | double | H0 | ) | [inline] |
void pele::LBFGS::set_max_f_rise | ( | double | max_f_rise | ) | [inline] |
void pele::LBFGS::set_use_relative_f | ( | int | use_relative_f | ) | [inline] |