# FoundationClasses
TKMath
math

# math_BrentMinimum Class Reference

This class implements the Brent's method to find the minimum of
a function of a single variable.
No knowledge of the derivative is required.
.

`#include <math_BrentMinimum.hxx>`

## Public Member Functions

void * | operator new (size_t, void *anAddress)
void * | operator new (size_t size)
void | operator delete (void *anAddress)
Standard_EXPORT | math_BrentMinimum (const Standard_Real TolX, const Standard_Integer NbIterations=100, const Standard_Real ZEPS=1.0e-12)
| This constructor should be used in a sub-class to initialize correctly all the fields of this class. .
Standard_EXPORT | math_BrentMinimum (const Standard_Real TolX, const Standard_Real Fbx, const Standard_Integer NbIterations=100, const Standard_Real ZEPS=1.0e-12)
| This constructor should be used in a sub-class to initialize correctly all the fields of this class. It has to be used if F(Bx) is known. .
Standard_EXPORT | math_BrentMinimum (math_Function &F, const Standard_Real Ax, const Standard_Real Bx, const Standard_Real Cx, const Standard_Real TolX, const Standard_Integer NbIterations=100, const Standard_Real ZEPS=1.0e-12)
| Given a bracketing triplet of abscissae Ax, Bx, Cx (such as Bx is between Ax and Cx, F(Bx) is less than both F(Bx) and F(Cx)) the Brent minimization is done on the function F. The tolerance required on F is given by Tolerance. The solution is found when : abs(Xi - Xi-1) <= TolX * abs(Xi) + ZEPS; The maximum number of iterations allowed is given by NbIterations. .
Standard_EXPORT void | Perform (math_Function &F, const Standard_Real Ax, const Standard_Real Bx, const Standard_Real Cx)
| Brent minimization is performed on function F from a given bracketing triplet of abscissas Ax, Bx, Cx (such that Bx is between Ax and Cx, F(Bx) is less than both F(Bx) and F(Cx)) Warning The initialization constructors must have been called before the call to the Perform method. .
virtual Standard_EXPORT Standard_Boolean | IsSolutionReached (math_Function &F)
| This method is called at the end of each iteration to check if the solution is found. It can be redefined in a sub-class to implement a specific test to stop the iterations. .
Standard_Boolean | IsDone () const
| Returns true if the computations are successful, otherwise returns false. .
Standard_Real | Location () const
| returns the location value of the minimum. Exception NotDone is raised if the minimum was not found.
Standard_Real | Minimum () const
| returns the value of the minimum. Exception NotDone is raised if the minimum was not found.
Standard_Integer | NbIterations () const
| returns the number of iterations really done during the computation of the minimum. Exception NotDone is raised if the minimum was not found.
Standard_EXPORT void | Dump (Standard_OStream &o) const
| Prints on the stream o information on the current state of the object. Is used to redefine the operator <<. .

## Protected Attributes

Standard_Real | a
Standard_Real | b
Standard_Real | x
Standard_Real | fx
Standard_Real | fv
Standard_Real | fw
Standard_Real | XTol
Standard_Real | EPSZ

## Private Attributes

Standard_Boolean | Done
Standard_Integer | iter
Standard_Integer | Itermax
Standard_Boolean | myF

## Constructor & Destructor Documentation

Standard_EXPORT math_BrentMinimum::math_BrentMinimum | ( | const Standard_Real | TolX,
|  | const Standard_Integer | NbIterations = `100`,
|  | const Standard_Real | ZEPS = `1.0e-12`
| ) |

Standard_EXPORT math_BrentMinimum::math_BrentMinimum | ( | const Standard_Real | TolX,
|  | const Standard_Real | Fbx,
|  | const Standard_Integer | NbIterations = `100`,
|  | const Standard_Real | ZEPS = `1.0e-12`
| ) |

Standard_EXPORT math_BrentMinimum::math_BrentMinimum | ( | math_Function & | F,
|  | const Standard_Real | Ax,
|  | const Standard_Real | Bx,
|  | const Standard_Real | Cx,
|  | const Standard_Real | TolX,
|  | const Standard_Integer | NbIterations = `100`,
|  | const Standard_Real | ZEPS = `1.0e-12`
| ) |

## Member Function Documentation

Standard_EXPORT void math_BrentMinimum::Dump | ( | Standard_OStream & | o | ) | const

Standard_Boolean math_BrentMinimum::IsDone | ( |  | ) | const`[inline]`

virtual Standard_EXPORT Standard_Boolean math_BrentMinimum::IsSolutionReached | ( | math_Function & | F | ) | `[virtual]`

Standard_Real math_BrentMinimum::Location | ( |  | ) | const`[inline]`

Standard_Real math_BrentMinimum::Minimum | ( |  | ) | const`[inline]`

Standard_Integer math_BrentMinimum::NbIterations | ( |  | ) | const`[inline]`

void math_BrentMinimum::operator delete | ( | void * | anAddress | ) | `[inline]`

void* math_BrentMinimum::operator new | ( | size_t | size | ) | `[inline]`

void* math_BrentMinimum::operator new | ( | size_t | ,
|  | void * | anAddress
| ) | `[inline]`

Standard_EXPORT void math_BrentMinimum::Perform | ( | math_Function & | F,
|  | const Standard_Real | Ax,
|  | const Standard_Real | Bx,
|  | const Standard_Real | Cx
| ) |

## Field Documentation

Standard_Real math_BrentMinimum::a `[protected]`

Standard_Real math_BrentMinimum::b `[protected]`

Standard_Boolean math_BrentMinimum::Done `[private]`

Standard_Real math_BrentMinimum::EPSZ `[protected]`

Standard_Real math_BrentMinimum::fv `[protected]`

Standard_Real math_BrentMinimum::fw `[protected]`

Standard_Real math_BrentMinimum::fx `[protected]`

Standard_Integer math_BrentMinimum::iter `[private]`

Standard_Integer math_BrentMinimum::Itermax `[private]`

Standard_Boolean math_BrentMinimum::myF `[private]`

Standard_Real math_BrentMinimum::x `[protected]`

Standard_Real math_BrentMinimum::XTol `[protected]`

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

- math_BrentMinimum.hxx
- math_BrentMinimum.lxx