Class mmin_wrapper_gsl (o2scl)

O2scl : Class List

template<class func_t = multi_funct, class vec_t = boost::numeric::ublas::vector<double>, class dfunc_t = grad_funct, class auto_grad_t = gradient<multi_funct, boost::numeric::ublas::vector<double>>>
class mmin_wrapper_gsl : public o2scl::mmin_wrap_gsl

Wrapper class for the mmin_bfgs2 minimizer.

This is a reimplmentation of the internal GSL wrapper for function calls in the BFGS minimizer

fixed values

vec_t *x
vec_t *g
vec_t *p

cached values, for x(alpha)=x + alpha * p

double f_alpha
double df_alpha

cache keys

double f_cache_key
double df_cache_key
double x_cache_key
double g_cache_key
vec_t av_x_alpha

Temporary storage.

vec_t av_g_alpha

Temporary storage.

size_t dim

Number of minimization dimensions.

inline void moveto(double alpha)

Move to a new point, using the cached value if possible.

inline double slope()

Compute the slope.

inline virtual double wrap_f(double alpha)

Evaluate the function.

inline virtual double wrap_df(double alpha)

Evaluate the derivative.

inline virtual void wrap_fdf(double alpha, double *f, double *df)

Evaluate the function and the derivative.

inline void prepare_wrapper(func_t &ufunc, dfunc_t *udfunc, vec_t &t_x, double f, vec_t &t_g, vec_t &t_p, auto_grad_t *ag)

Initialize wrapper.

inline void update_position(double alpha, vec_t &t_x, double *t_f, vec_t &t_g)

Update position.

inline void change_direction()

Convert cache values to the new minimizer direction.

Convert the cache values from the end of the current minimisation to those needed for the start of the next minimisation, alpha=0

Protected Attributes

func_t *func

Function.

dfunc_t *dfunc

Derivative.

auto_grad_t *agrad

The automatic gradient object.

bool grad_given

True if the gradient was given by the user.