yat  0.21pre
Public Member Functions | List of all members
theplu::yat::utility::BFGS2 Class Reference

#include <yat/utility/BFGS2.h>

Inheritance diagram for theplu::yat::utility::BFGS2:
theplu::yat::utility::MultiMinimizerDerivative

Public Member Functions

 BFGS2 (size_t size)
 
unsigned int epochs (void) const
 Number of epochs (iterations) used in last minimisation.
 
double step_size (void) const
 
void step_size (double ss)
 
double tolerance (void) const
 
void tolerance (double tol)
 
template<class FUNC >
void operator() (yat::utility::VectorMutable &, FUNC &func, MultiMinimizerDerivative::Stopper &&stopper)
 
template<class FUNC >
void operator() (yat::utility::VectorMutable &, FUNC &func, MultiMinimizerDerivative::Stopper &&stopper, unsigned int max_epochs)
 

Detailed Description

Wrapper around GSL gsl_multimin_fdfminimizer_vector_bfgs2

Since
New in yat 0.20

Constructor & Destructor Documentation

◆ BFGS2()

theplu::yat::utility::BFGS2::BFGS2 ( size_t  size)
Parameters
sizedimension of space we are minimizing in.

Member Function Documentation

◆ operator()() [1/2]

template<class FUNC >
void theplu::yat::utility::MultiMinimizerDerivative::operator() ( yat::utility::VectorMutable x,
FUNC &  func,
MultiMinimizerDerivative::Stopper &&  stopper 
)
inherited

Function finds an x that minimizes the function defined by func. It calls gsl_multimin_fdfminimizer_iterate until either GSL_ENOPROG is returned or the norm of the gradient is smaller than epsabs, as tested by gsl_multimin_test_gradient.

Type Requirements:

  • FUNC must have an operator defining the function double operator()(const VectorBase& x)
  • FUNC must have an operator defining the gradient void operator()(const VectorBase& x, VectorMutable&)

◆ operator()() [2/2]

template<class FUNC >
void theplu::yat::utility::MultiMinimizerDerivative::operator() ( yat::utility::VectorMutable x,
FUNC &  func,
MultiMinimizerDerivative::Stopper &&  stopper,
unsigned int  max_epochs 
)
inherited

Same as operator()(yat::utility::VectorMutable&, FUNC& func, double epsabs) but iterate at maximum max_epochs iterations.

◆ step_size() [1/2]

double theplu::yat::utility::MultiMinimizerDerivative::step_size ( void  ) const
inherited

The size of the first trial step is given by step_size

See also
gsl_multimin_fdfminimizer_set

◆ step_size() [2/2]

void theplu::yat::utility::MultiMinimizerDerivative::step_size ( double  ss)
inherited

The size of the first trial step is given by step_size

See also
gsl_multimin_fdfminimizer_set

◆ tolerance() [1/2]

double theplu::yat::utility::MultiMinimizerDerivative::tolerance ( void  ) const
inherited

The accuracy of the line minimization is specified by tolerance

See also
gsl_multimin_fdfminimizer_set

◆ tolerance() [2/2]

void theplu::yat::utility::MultiMinimizerDerivative::tolerance ( double  tol)
inherited

The accuracy of the line minimization is specified by tolerance

See also
gsl_multimin_fdfminimizer_set

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

Generated on Wed Jan 25 2023 03:34:29 for yat by  doxygen 1.8.14