# FairCurve_Newton Class Reference

Algorithme of Optimization used to make "FairCurve". More...

`#include <FairCurve_Newton.hxx>`

Inheritance diagram for FairCurve_Newton: [legend]

## Public Member Functions

FairCurve_Newton (const math_MultipleVarFunctionWithHessian &theFunction, const Standard_Real theSpatialTolerance=1.0e-7, const Standard_Real theCriteriumTolerance=1.0e-7, const Standard_Integer theNbIterations=40, const Standard_Real theConvexity=1.0e-6, const Standard_Boolean theWithSingularity=Standard_True)
The tolerance required on the solution is given by Tolerance. Iteration are stopped if (!WithSingularity) and H(F(Xi)) is not definite positive (if the smaller eigenvalue of H < Convexity) or IsConverged() returns True for 2 successives Iterations. Warning: This constructor do not computation. More...

virtual Standard_Boolean IsConverged () const override
This method is called at the end of each iteration to check the convergence : || Xi+1 - Xi || < SpatialTolerance/100 Or || Xi+1 - Xi || < SpatialTolerance and |F(Xi+1) - F(Xi)| < CriteriumTolerance * |F(xi)| It can be redefined in a sub-class to implement a specific test. More... Public Member Functions inherited from math_NewtonMinimum
math_NewtonMinimum (const math_MultipleVarFunctionWithHessian &theFunction, const Standard_Real theTolerance=Precision::Confusion(), const Standard_Integer theNbIterations=40, const Standard_Real theConvexity=1.0e-6, const Standard_Boolean theWithSingularity=Standard_True)
The tolerance required on the solution is given by Tolerance. Iteration are stopped if (!WithSingularity) and H(F(Xi)) is not definite positive (if the smaller eigenvalue of H < Convexity) or IsConverged() returns True for 2 successives Iterations. Warning: This constructor does not perform computation. More...

void Perform (math_MultipleVarFunctionWithHessian &theFunction, const math_Vector &theStartingPoint)
Search the solution. More...

virtual ~math_NewtonMinimum ()
Destructor. More...

Standard_Boolean IsDone () const
Tests if an error has occurred. More...

Standard_Boolean IsConvex () const
Tests if the Function is convexe during optimization. More...

const math_VectorLocation () const
returns the location vector of the minimum. Exception NotDone is raised if an error has occurred. More...

void Location (math_Vector &Loc) const
outputs the location vector of the minimum in Loc. Exception NotDone is raised if an error has occurred. Exception DimensionError is raised if the range of Loc is not equal to the range of the StartingPoint. More...

void SetBoundary (const math_Vector &theLeftBorder, const math_Vector &theRightBorder)
Set boundaries. More...

Standard_Real Minimum () const
returns the value of the minimum. Exception NotDone is raised if the minimum was not found. More...

returns the gradient vector at the minimum. Exception NotDone is raised if an error has occurred. The minimum was not found. More...

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

Standard_Integer NbIterations () const
returns the number of iterations really done in the calculation of the minimum. The exception NotDone is raised if an error has occurred. More...

math_Status GetStatus () const
Returns the Status of computation. The exception NotDone is raised if an error has occurred. More...

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 <<. More... Protected Attributes inherited from math_NewtonMinimum
math_Status TheStatus

math_Vector TheLocation

math_Vector TheStep

math_Matrix TheHessian

Standard_Real PreviousMinimum

Standard_Real TheMinimum

Standard_Real MinEigenValue

Standard_Real XTol

Standard_Real CTol

Standard_Integer nbiter

Standard_Boolean NoConvexTreatement

Standard_Boolean Convex

Standard_Boolean myIsBoundsDefined

math_Vector myLeft

math_Vector myRight

## Detailed Description

Algorithme of Optimization used to make "FairCurve".

## ◆ FairCurve_Newton()

 FairCurve_Newton::FairCurve_Newton ( const math_MultipleVarFunctionWithHessian & theFunction, const Standard_Real theSpatialTolerance = `1.0e-7`, const Standard_Real theCriteriumTolerance = `1.0e-7`, const Standard_Integer theNbIterations = `40`, const Standard_Real theConvexity = `1.0e-6`, const Standard_Boolean theWithSingularity = `Standard_True` )

The tolerance required on the solution is given by Tolerance. Iteration are stopped if (!WithSingularity) and H(F(Xi)) is not definite positive (if the smaller eigenvalue of H < Convexity) or IsConverged() returns True for 2 successives Iterations. Warning: This constructor do not computation.

## ◆ IsConverged()

 virtual Standard_Boolean FairCurve_Newton::IsConverged ( ) const
overridevirtual

This method is called at the end of each iteration to check the convergence : || Xi+1 - Xi || < SpatialTolerance/100 Or || Xi+1 - Xi || < SpatialTolerance and |F(Xi+1) - F(Xi)| < CriteriumTolerance * |F(xi)| It can be redefined in a sub-class to implement a specific test.

Reimplemented from math_NewtonMinimum.

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