Public Member Functions | Public Attributes | Protected Attributes | List of all members
o2scl::mmin_base< func_t, dfunc_t, vec_t > Class Template Referenceabstract

Multidimensional minimization [abstract base]. More...

#include <mmin.h>

Inheritance diagram for o2scl::mmin_base< func_t, dfunc_t, vec_t >:
o2scl::mmin_constr< func_t, dfunc_t, ool_hfunct11, vec_t > o2scl::mmin_constr< func_t, dfunc_t, hfunc_t, vec_t > o2scl::mmin_constr_pgrad< func_t, dfunc_t, vec_t > o2scl::mmin_constr_spg< func_t, dfunc_t, vec_t >

Public Member Functions

int set_verbose_stream (std::ostream &out, std::istream &in)
 Set streams for verbose I/O. More...
 
virtual int mmin (size_t nvar, vec_t &x, double &fmin, func_t &func)=0
 Calculate the minimum min of func w.r.t. the array x of size nvar.
 
virtual int mmin_de (size_t nvar, vec_t &x, double &fmin, func_t &func, dfunc_t &dfunc)
 Calculate the minimum min of func w.r.t. the array x of size nvar with gradient dfunc.
 
template<class vec2_t >
int print_iter (size_t nv, vec2_t &x, double y, int iter, double value, double limit, std::string comment)
 Print out iteration information. More...
 
const char * type ()
 Return string denoting type ("mmin_base")
 
 mmin_base (const mmin_base< func_t, dfunc_t, vec_t > &mb)
 Copy constructor.
 
mmin_base< func_t, dfunc_t, vec_t > & operator= (const mmin_base< func_t, dfunc_t, vec_t > &mb)
 Copy constructor from operator=.
 

Public Attributes

int verbose
 Output control.
 
int ntrial
 Maximum number of iterations.
 
double tol_rel
 Function value tolerance.
 
double tol_abs
 The independent variable tolerance.
 
int last_ntrial
 The number of iterations for in the most recent minimization.
 
bool err_nonconv
 If true, call the error handler if the routine does not "converge".
 

Protected Attributes

std::ostream * outs
 Stream for verbose output.
 
std::istream * ins
 Stream for verbose input.
 

Detailed Description

template<class func_t = multi_funct11, class dfunc_t = func_t, class vec_t = boost::numeric::ublas::vector<double>>
class o2scl::mmin_base< func_t, dfunc_t, vec_t >

The template parameters: The template parameter func_t specifies the function to min and should be a class containing a definition

func_t::operator()(size_t nv, const vec_t &x, double &f);

where f is the value of the function at x , where x is a array-like class defining operator[] of size nv. The parameter dfunc_t (if used) should provide the gradient with

func_t::operator()(size_t nv, vec_t &x, vec_t &g);

where g is the gradient of the function at x.

Verbose I/O is sent through std::cout and std::cin by default, but this can be modified using set_verbose_stream(). Note that this function stores pointers to the user-specified output streams, and these pointers are not copied in child copy constructors.

Definition at line 164 of file mmin.h.

Member Function Documentation

◆ print_iter()

template<class func_t = multi_funct11, class dfunc_t = func_t, class vec_t = boost::numeric::ublas::vector<double>>
template<class vec2_t >
int o2scl::mmin_base< func_t, dfunc_t, vec_t >::print_iter ( size_t  nv,
vec2_t &  x,
double  y,
int  iter,
double  value,
double  limit,
std::string  comment 
)
inline

Depending on the value of the variable verbose, this prints out the iteration information. If verbose=0, then no information is printed, while if verbose>1, then after each iteration, the present values of x and y are output to std::cout along with the iteration number. If verbose>=2 then each iteration waits for a character.

Definition at line 249 of file mmin.h.

◆ set_verbose_stream()

template<class func_t = multi_funct11, class dfunc_t = func_t, class vec_t = boost::numeric::ublas::vector<double>>
int o2scl::mmin_base< func_t, dfunc_t, vec_t >::set_verbose_stream ( std::ostream &  out,
std::istream &  in 
)
inline

Note that this function stores pointers to the user-specified output streams, and these pointers are not copied in child copy constructors.

Definition at line 217 of file mmin.h.


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).