Class mmin_linmin_gsl (o2scl)¶
-
class
o2scl
::
mmin_linmin_gsl
¶ The line minimizer for mmin_bfgs2.
Public 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.
Recommended values from [Fletcher87] are
rho=0.01, sigma=0.1, tau1=9, tau2=0.05, tau3=0.5
Protected Functions
-
double
interp_quad
(double f0, double fp0, double f1, double zl, double zh)¶ Minimize the interpolating quadratic.
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
-
double
cubic
(double c0, double c1, double c2, double c3, double z)¶ Minimize the interpolating cubic.
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).
-
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.
-
int