Index

C++ Code Documentation

math::minimize1

File: BASE/math/Minimize1.H

Finds minimum of a function f:R^1-->R^1. Adapted from Numerical Recipes in C, 2nd ed. sec. 10.2, p. 404. (Parabolic Interpolation and Brent's Method in One Dimension)

input:
f = function to minimize
ax, bx, cx = initial points
the initial points must "bracket" a minimum, that is bx must be between ax and cx, and f(bx) must be std::less than f(ax) and f(cx)
tol = x-tolerance (may be 0.0)
max_iter: maximum allowable iterations (e.g. 100)
output:
[x, y] = minimum and function value at minimum
status

return value:
0: converged
1: too many iterations



public:
  • minimize1();
    void constructor
  • virtual ~minimize1();
    destructor
  • enum Status;
  • int find_minimum( double &x, double &y, double ax, double bx, double cx );
  • void set_precision_goal( double x );
  • double get_precision_goal();
  • void set_accuracy_goal( double x );
  • double get_accuracy_goal();
  • void set_iteration_limit( uint x );
  • uint get_iteration_limit();
  • uint get_iteration_count();
protected:
  • virtual double function(double) = 0;
private:
  • double _precision_goal;
  • double _accuracy_goal;
  • uint _iteration_limit;
  • uint _iteration_count;
  • inline void shift(double &a, double &b, double &c, double d);
  • inline double sign_adjust( double x, double s );
  • static double const smallreal_double;
  • minimize1( minimize1 const & );
    Disabled copy constructor.
  • minimize1 &operator=( minimize1 const & );
    Disabled assignment operator.


math::minimize1 GANG