#include <ool_constr_mmin.h>
Definition at line 323 of file ool_constr_mmin.h.
Public Member Functions | |
virtual int | allocate (const size_t n) |
Allocate memory. | |
virtual int | free () |
Free previously allocated memory. | |
virtual int | restart () |
Restart the minimizer. | |
virtual int | set (func_t &fn, dfunc_t &dfn, vec_t &init, param_t &par) |
Set the function, the initial guess, and the parameters. | |
virtual int | set_hess (func_t &fn, dfunc_t &dfn, hfunc_t &hfn, vec_t &init, param_t &par) |
Set the function, the initial guess, and the parameters. | |
virtual int | set_constraints (size_t nc, vec_t &lower, vec_t &upper) |
Set the constraints. | |
virtual int | iterate ()=0 |
Perform an iteration. | |
virtual int | is_optimal ()=0 |
See if we're finished. | |
virtual int | mmin (size_t nvar, vec_t &xx, double &fmin, param_t &pa, func_t &ff) |
Calculate the minimum min of func w.r.t. the array x of size nvar . | |
virtual int | mmin_hess (size_t nvar, vec_t &xx, double &fmin, param_t &pa, func_t &ff, dfunc_t &df, hfunc_t &hf) |
Calculate the minimum min of ff w.r.t. the array x of size nvar with gradient df and hessian vector product hf . | |
virtual int | mmin_de (size_t nvar, vec_t &xx, double &fmin, param_t &pa, func_t &ff, dfunc_t &df) |
Calculate the minimum min of func w.r.t. the array x of size nvar with gradient dfunc . | |
const char * | type () |
Return string denoting type ("ool_constr_mmin"). | |
Static Public Attributes | |
OOL-specific error codes | |
static const int | OOL_UNBOUNDEDF = 1101 |
Lower unbounded function. | |
static const int | OOL_INFEASIBLE = 1102 |
Infeasible point. | |
static const int | OOL_FINNERIT = 1103 |
Too many inner iterations. | |
static const int | OOL_FLSEARCH = 1104 |
Line search failed. | |
static const int | OOL_FDDIR = 1105 |
Unable to find a descent direction. | |
Protected Member Functions | |
void | shrink (const size_t nind, gsl_vector_uint *Ind, const vec_t &V) |
Shrink vector V from the full to the reduced space. | |
void | expand (const size_t nind, gsl_vector_uint *Ind, const vec_t &V) |
Expand vector V from the reduced to the full space. | |
double | calc_f (const size_t nind, gsl_vector_uint *Ind, vec_t &X, vec_t &Xc) |
Evaluate the objective function from the reduced space. | |
int | calc_g (const size_t nind, gsl_vector_uint *Ind, vec_t &X, vec_t &Xc, vec_t &G) |
Compute gradient in the reduced space. | |
int | calc_Hv (const size_t nind, gsl_vector_uint *Ind, vec_t &X, vec_t &Xc, vec_t &V, vec_t &Hv) |
Evaluate a hessian times a vector from the reduced space. | |
Protected Attributes | |
double | f |
The current function value. | |
double | size |
Desc. | |
alloc_t | ao |
Memory allocation object. | |
alloc_vec_t | x |
The current minimum vector. | |
alloc_vec_t | gradient |
The current gradient vector. | |
alloc_vec_t | dx |
Desc. | |
size_t | fcount |
Number of function evaluations. | |
size_t | gcount |
Number of gradient evaluations. | |
size_t | hcount |
Number of Hessian evaluations. | |
size_t | dim |
Number of parameters. | |
size_t | nconstr |
Number of constraints. | |
func_t * | func |
User-supplied function. | |
dfunc_t * | dfunc |
Gradient function. | |
hfunc_t * | hfunc |
Hessian function. | |
param_t * | param |
User-specified parameters. | |
alloc_vec_t | L |
Lower bound constraints. | |
alloc_vec_t | U |
Upper bound constraints. | |
bool | requires_hess |
If true, the algorithm requires the hessian vector product. |
int calc_Hv | ( | const size_t | nind, | |
gsl_vector_uint * | Ind, | |||
vec_t & | X, | |||
vec_t & | Xc, | |||
vec_t & | V, | |||
vec_t & | Hv | |||
) | [inline, protected] |
Evaluate a hessian times a vector from the reduced space.
Expand to full space
Definition at line 478 of file ool_constr_mmin.h.
virtual int mmin | ( | size_t | nvar, | |
vec_t & | xx, | |||
double & | fmin, | |||
param_t & | pa, | |||
func_t & | ff | |||
) | [inline, virtual] |
Calculate the minimum min
of func
w.r.t. the array x
of size nvar
.
Implements multi_min.
Definition at line 629 of file ool_constr_mmin.h.
Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.
Project hosting provided by
,
O2scl Sourceforge Project Page