ool_mmin_pgrad Class Template Reference

Constrained minimization by the projected gradient method (OOL). More...

#include <ool_mmin_pgrad.h>

Inheritance diagram for ool_mmin_pgrad:

ool_constr_mmin multi_min

Detailed Description

template<class param_t, class func_t, class dfunc_t, class vec_t = ovector_base, class alloc_vec_t = ovector, class alloc_t = ovector_alloc>
class ool_mmin_pgrad< param_t, func_t, dfunc_t, vec_t, alloc_vec_t, alloc_t >

Idea for future:
Replace the explicit norm computation below with the more accurate dnrm2 from linalg

Definition at line 70 of file ool_mmin_pgrad.h.


Public Member Functions

virtual int allocate (const size_t n)
 Allocate memory.
virtual int free ()
 Free previously allocated memory.
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 restart ()
 Restart the minimizer.
virtual int iterate ()
 Perform an iteration.
virtual int is_optimal ()
 See if we're finished.
const char * type ()
 Return string denoting type ("ool_mmin_pgrad").

Data Fields

double fmin
 Minimum function value (default $ 10^{-99} $).
double tol
 Tolerance on infinite norm.
double alpha
 Constant for the sufficient decrease condition (default $ 10^{-4} $).
double sigma1
 Lower bound to the step length reduction.
double sigma2
 Upper bound to the step length reduction.

Protected Types

typedef ool_hfunct< int > hfunc_t
 A convenient typedef for the unused Hessian product type.

Protected Member Functions

int proj (vec_t &xt)
 Project into feasible region.
int line_search ()
 Line search.

Protected Attributes

alloc_vec_t xx
 Temporary vector.

Field Documentation

double fmin

If the function value is below this value, then the algorithm assumes that the function is not bounded and exits.

Definition at line 167 of file ool_mmin_pgrad.h.


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

Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page