# FoundationClasses
TKMath
math

# math_FRPR Class Reference

this class implements the Fletcher-Reeves-Polak_Ribiere minimization
algorithm of a function of multiple variables.
Knowledge of the function's gradient is required.

`#include <math_FRPR.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_FRPR (math_MultipleVarFunctionWithGradient &F, const math_Vector &StartingPoint, const Standard_Real Tolerance, const Standard_Integer NbIterations=200, const Standard_Real ZEPS=1.0e-12)
| Computes FRPR minimization function F from input vector StartingPoint. The solution F = Fi is found when 2.0 * abs(Fi - Fi-1) <= Tolerance * (abs(Fi) + abs(Fi-1) + ZEPS). The maximum number of iterations allowed is given by NbIterations. .
Standard_EXPORT | math_FRPR (math_MultipleVarFunctionWithGradient &F, const Standard_Real Tolerance, const Standard_Integer NbIterations=200, const Standard_Real ZEPS=1.0e-12)
| Purpose Initializes the computation of the minimum of F. Warning A call to the Perform method must be made after this initialization to compute the minimum of the function. .
virtual Standard_EXPORT void | Delete ()
virtual Standard_EXPORT | ~math_FRPR ()
Standard_EXPORT void | Perform (math_MultipleVarFunctionWithGradient &F, const math_Vector &StartingPoint)
| Use this method after a call to the initialization constructor to compute the minimum of function F. Warning The initialization constructor must have been called before the Perform method is called .
virtual Standard_EXPORT Standard_Boolean | IsSolutionReached (math_MultipleVarFunctionWithGradient &F)
| The solution F = Fi is found when : 2.0 * abs(Fi - Fi-1) <= Tolerance * (abs(Fi) + abs(Fi-1)) + ZEPS. The maximum number of iterations allowed is given by NbIterations. .
Standard_Boolean | IsDone () const
| Returns true if the computations are successful, otherwise returns false. .
const math_Vector & | Location () const
| returns the location vector of the minimum. Exception NotDone is raised if the minimum was not found.
void | Location (math_Vector &Loc) const
| outputs the location vector of the minimum in Loc. Exception NotDone is raised if the minimum was not found. Exception DimensionError is raised if the range of Loc is not equal to the range of the StartingPoint.
Standard_Real | Minimum () const
| returns the value of the minimum. Exception NotDone is raised if the minimum was not found.
const math_Vector & | Gradient () const
| returns the gradient vector at the minimum. Exception NotDone is raised if the minimum was not found.
void | Gradient (math_Vector &Grad) const
| outputs the gradient vector at the minimum in Grad. Exception NotDone is raised if the minimum was not found. Exception DimensionError is raised if the range of Grad is not equal to the range of the StartingPoint.
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

math_Vector | TheLocation
math_Vector | TheGradient
Standard_Real | TheMinimum
Standard_Real | PreviousMinimum
Standard_Real | XTol
Standard_Real | EPSZ

## Private Attributes

Standard_Boolean | Done
Standard_Integer | Iter
Standard_Integer | State
math_Status | TheStatus
Standard_Integer | Itermax

## Constructor & Destructor Documentation

Standard_EXPORT math_FRPR::math_FRPR | ( | math_MultipleVarFunctionWithGradient & | F,
|  | const math_Vector & | StartingPoint,
|  | const Standard_Real | Tolerance,
|  | const Standard_Integer | NbIterations = `200`,
|  | const Standard_Real | ZEPS = `1.0e-12`
| ) |

Standard_EXPORT math_FRPR::math_FRPR | ( | math_MultipleVarFunctionWithGradient & | F,
|  | const Standard_Real | Tolerance,
|  | const Standard_Integer | NbIterations = `200`,
|  | const Standard_Real | ZEPS = `1.0e-12`
| ) |

virtual Standard_EXPORT math_FRPR::~math_FRPR | ( |  | ) | `[inline, virtual]`

## Member Function Documentation

virtual Standard_EXPORT void math_FRPR::Delete | ( |  | ) | `[virtual]`

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

void math_FRPR::Gradient | ( | math_Vector & | Grad | ) | const`[inline]`

const math_Vector & math_FRPR::Gradient | ( |  | ) | const`[inline]`

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

virtual Standard_EXPORT Standard_Boolean math_FRPR::IsSolutionReached | ( | math_MultipleVarFunctionWithGradient & | F | ) | `[virtual]`

void math_FRPR::Location | ( | math_Vector & | Loc | ) | const`[inline]`

const math_Vector & math_FRPR::Location | ( |  | ) | const`[inline]`

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

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

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

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

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

Standard_EXPORT void math_FRPR::Perform | ( | math_MultipleVarFunctionWithGradient & | F,
|  | const math_Vector & | StartingPoint
| ) |

## Field Documentation

Standard_Boolean math_FRPR::Done `[private]`

Standard_Real math_FRPR::EPSZ `[protected]`

Standard_Integer math_FRPR::Iter `[private]`

Standard_Integer math_FRPR::Itermax `[private]`

Standard_Real math_FRPR::PreviousMinimum `[protected]`

Standard_Integer math_FRPR::State `[private]`

math_Vector math_FRPR::TheGradient `[protected]`

math_Vector math_FRPR::TheLocation `[protected]`

Standard_Real math_FRPR::TheMinimum `[protected]`

math_Status math_FRPR::TheStatus `[private]`

Standard_Real math_FRPR::XTol `[protected]`

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

- math_FRPR.hxx
- math_FRPR.lxx