Public Member Functions | Protected Member Functions | List of all members
o2scl::mmin_linmin_gsl Class Reference

The line minimizer for mmin_bfgs2. More...

#include <mmin_bfgs2.h>

Public Member Functions

int minimize (mmin_wrap_gsl &wrap, double rho, double sigma, double tau1, double tau2, double tau3, int order, double alpha1, double *alpha_new)
 The line minimization. More...

Protected Member Functions

double interp_quad (double f0, double fp0, double f1, double zl, double zh)
 Minimize the interpolating quadratic. More...
double cubic (double c0, double c1, double c2, double c3, double z)
 Minimize the interpolating cubic. More...
void check_extremum (double c0, double c1, double c2, double c3, double z, double *zmin, double *fmin)
 Test to see curvature is positive.
double interp_cubic (double f0, double fp0, double f1, double fp1, double zl, double zh)
 Interpolate using a cubic.
double interpolate (double a, double fa, double fpa, double b, double fb, double fpb, double xmin, double xmax, int order)
 Perform the interpolation.

Detailed Description

Definition at line 290 of file mmin_bfgs2.h.

Member Function Documentation

◆ cubic()

double o2scl::mmin_linmin_gsl::cubic ( double  c0,
double  c1,
double  c2,
double  c3,
double  z 

Find a minimum in x=[0,1] of the interpolating cubic through (0,f0) (1,f1) with derivatives fp0 at x=0 and fp1 at x=1.

The interpolating polynomial is:

c(x)=f0 + fp0 * z + eta * z^2 + xi * z^3

where eta=3*(f1-f0)-2*fp0-fp1, xi=fp0+fp1-2*(f1-f0).

◆ interp_quad()

double o2scl::mmin_linmin_gsl::interp_quad ( double  f0,
double  fp0,
double  f1,
double  zl,
double  zh 

Find a minimum in x=[0,1] of the interpolating quadratic through (0,f0) (1,f1) with derivative fp0 at x=0. The interpolating polynomial is q(x)=f0 + fp0 * z + (f1-f0-fp0) * z^2

◆ minimize()

int o2scl::mmin_linmin_gsl::minimize ( mmin_wrap_gsl wrap,
double  rho,
double  sigma,
double  tau1,
double  tau2,
double  tau3,
int  order,
double  alpha1,
double *  alpha_new 

Recommended values from Fletcher87 are rho=0.01, sigma=0.1, tau1=9, tau2=0.05, tau3=0.5

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

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).