Multidimensional minimization [abstract base]. More...
#include <mmin.h>
The template parameters: The template parameter func_t specifies the function to min and should be a class containing a definition
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
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.
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. | |
|
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.
|
inline |
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).