Chemical Data Processing Library C++ API - Version 1.1.1
|
Fletcher's implementation of the BFGS method. More...
#include <BFGSMinimizer.hpp>
Public Types | |
enum | Status { SUCCESS = 0, NO_PROGRESS = 1, ITER_LIMIT_REACHED = 2, GNORM_REACHED = 4, DELTAF_REACHED = 8 } |
typedef VA | VariableArrayType |
typedef VT | ValueType |
typedef FVT | FunctionValueType |
typedef std::function< FVT(const VA &, VA &)> | GradientFunction |
typedef std::function< FVT(const VA &)> | ObjectiveFunction |
Public Member Functions | |
BFGSMinimizer (const ObjectiveFunction &func, const GradientFunction &grad_func) | |
ValueType | getGradientNorm () const |
ValueType | getFunctionDelta () const |
ValueType | getFunctionValue () const |
std::size_t | getNumIterations () const |
Status | getStatus () const |
Status | minimize (VariableArrayType &x, VariableArrayType &g, std::size_t max_iter, const ValueType &g_norm, const ValueType &delta_f, bool do_setup=true) |
ValueType | setup (const VariableArrayType &x, VariableArrayType &g, const ValueType &step_size=0.001, const ValueType &tol=0.15) |
Status | iterate (ValueType &f, VariableArrayType &x, VariableArrayType &g) |
Fletcher's implementation of the BFGS method.
The implementation has been taken from the GNU Scientific Library.
typedef VA CDPL::Math::BFGSMinimizer< VA, VT, FVT >::VariableArrayType |
typedef VT CDPL::Math::BFGSMinimizer< VA, VT, FVT >::ValueType |
typedef FVT CDPL::Math::BFGSMinimizer< VA, VT, FVT >::FunctionValueType |
typedef std::function<FVT(const VA&, VA&)> CDPL::Math::BFGSMinimizer< VA, VT, FVT >::GradientFunction |
typedef std::function<FVT(const VA&)> CDPL::Math::BFGSMinimizer< VA, VT, FVT >::ObjectiveFunction |
enum CDPL::Math::BFGSMinimizer::Status |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |