Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Math::GSLMinimizer1D Class Reference

Minimizer for arbitrary one dimensional functions.

Implemented using GSL, for detailed description see: GSL online doc

The algorithms uspported are only bracketing algorithm which do not use derivatives information. The algorithms which can be chosen at construction time are GOLDENSECTION, which is the simplest method but the slowest and BRENT (the default one) which combines the golden section with a parabolic interpolation.

This class does not support copying

Definition at line 81 of file GSLMinimizer1D.h.

Public Member Functions

 GSLMinimizer1D (const GSLMinimizer1D &)=delete
 
 GSLMinimizer1D (GSLMinimizer1D &&)=delete
 
 GSLMinimizer1D (Minim1D::Type type=Minim1D::kBRENT)
 Construct the minimizer passing the minimizer type using the Minim1D::Algorithm enumeration.
 
 ~GSLMinimizer1D () override
 Destructor: free allocated resources.
 
double FValLower () const override
 Return function value at current lower bound of the minimization interval.
 
double FValMinimum () const override
 Return function value at current estimate of the minimum.
 
double FValUpper () const override
 Return function value at current upper bound of the minimization interval.
 
int Iterate ()
 Perform a minimizer iteration and if an unexpected problem occurs then an error code will be returned.
 
int Iterations () const override
 Return number of iteration used to find minimum.
 
bool Minimize (int maxIter, double absTol, double relTol) override
 Find minimum position iterating until convergence specified by the absolute and relative tolerance or the maximum number of iteration is reached Return true is result is successful @param maxIter maximum number of iteration @param absTol desired absolute error in the minimum position @param absTol desired relative error in the minimum position.
 
const char * Name () const override
 Return name of minimization algorithm.
 
GSLMinimizer1Doperator= (const GSLMinimizer1D &)=delete
 
GSLMinimizer1Doperator= (GSLMinimizer1D &&)=delete
 
template<class UserFunc >
void SetFunction (const UserFunc &f, double xmin, double xlow, double xup)
 Set, or reset, minimizer to use the function f and the initial search interval [xlow, xup], with a guess for the location of the minimum xmin.
 
void SetFunction (GSLFuncPointer f, void *params, double xmin, double xlow, double xup)
 Set, or reset, minimizer to use the function f and the initial search interval [xlow, xup], with a guess for the location of the minimum xmin.
 
int Status () const override
 Return status of last minimization.
 
double XLower () const override
 Return current lower bound of the minimization interval.
 
double XMinimum () const override
 Return current estimate of the position of the minimum.
 
double XUpper () const override
 Return current upper bound of the minimization interval.
 
- Public Member Functions inherited from ROOT::Math::IMinimizer1D
 IMinimizer1D ()
 
virtual ~IMinimizer1D ()
 

Static Public Member Functions

static int TestInterval (double xlow, double xup, double epsAbs, double epsRel)
 Test convergence of the interval.
 

Private Attributes

GSLFunctionWrapperfFunction
 
bool fIsSet
 
int fIter
 
double fLow
 
double fMin
 
GSL1DMinimizerWrapperfMinimizer
 
int fStatus
 
double fUp
 
double fXlow
 
double fXmin
 
double fXup
 

#include <Math/GSLMinimizer1D.h>

Inheritance diagram for ROOT::Math::GSLMinimizer1D:
[legend]

Constructor & Destructor Documentation

◆ GSLMinimizer1D() [1/3]

ROOT::Math::GSLMinimizer1D::GSLMinimizer1D ( Minim1D::Type  type = Minim1D::kBRENT)
explicit

Construct the minimizer passing the minimizer type using the Minim1D::Algorithm enumeration.

Definition at line 51 of file GSLMinimizer1D.cxx.

◆ ~GSLMinimizer1D()

ROOT::Math::GSLMinimizer1D::~GSLMinimizer1D ( )
override

Destructor: free allocated resources.

Definition at line 78 of file GSLMinimizer1D.cxx.

◆ GSLMinimizer1D() [2/3]

ROOT::Math::GSLMinimizer1D::GSLMinimizer1D ( const GSLMinimizer1D )
delete

◆ GSLMinimizer1D() [3/3]

ROOT::Math::GSLMinimizer1D::GSLMinimizer1D ( GSLMinimizer1D &&  )
delete

Member Function Documentation

◆ FValLower()

double ROOT::Math::GSLMinimizer1D::FValLower ( ) const
overridevirtual

Return function value at current lower bound of the minimization interval.

Implements ROOT::Math::IMinimizer1D.

Definition at line 149 of file GSLMinimizer1D.cxx.

◆ FValMinimum()

double ROOT::Math::GSLMinimizer1D::FValMinimum ( ) const
overridevirtual

Return function value at current estimate of the minimum.

Implements ROOT::Math::IMinimizer1D.

Definition at line 144 of file GSLMinimizer1D.cxx.

◆ FValUpper()

double ROOT::Math::GSLMinimizer1D::FValUpper ( ) const
overridevirtual

Return function value at current upper bound of the minimization interval.

Implements ROOT::Math::IMinimizer1D.

Definition at line 154 of file GSLMinimizer1D.cxx.

◆ Iterate()

int ROOT::Math::GSLMinimizer1D::Iterate ( )

Perform a minimizer iteration and if an unexpected problem occurs then an error code will be returned.

Definition at line 110 of file GSLMinimizer1D.cxx.

◆ Iterations()

int ROOT::Math::GSLMinimizer1D::Iterations ( ) const
inlineoverridevirtual

Return number of iteration used to find minimum.

Implements ROOT::Math::IMinimizer1D.

Definition at line 173 of file GSLMinimizer1D.h.

◆ Minimize()

bool ROOT::Math::GSLMinimizer1D::Minimize ( int  maxIter,
double  absTol,
double  relTol 
)
overridevirtual

Find minimum position iterating until convergence specified by the absolute and relative tolerance or the maximum number of iteration is reached Return true is result is successful @param maxIter maximum number of iteration @param absTol desired absolute error in the minimum position @param absTol desired relative error in the minimum position.

Implements ROOT::Math::IMinimizer1D.

Definition at line 164 of file GSLMinimizer1D.cxx.

◆ Name()

const char * ROOT::Math::GSLMinimizer1D::Name ( ) const
overridevirtual

Return name of minimization algorithm.

Implements ROOT::Math::IMinimizer1D.

Definition at line 159 of file GSLMinimizer1D.cxx.

◆ operator=() [1/2]

GSLMinimizer1D & ROOT::Math::GSLMinimizer1D::operator= ( const GSLMinimizer1D )
delete

◆ operator=() [2/2]

GSLMinimizer1D & ROOT::Math::GSLMinimizer1D::operator= ( GSLMinimizer1D &&  )
delete

◆ SetFunction() [1/2]

template<class UserFunc >
void ROOT::Math::GSLMinimizer1D::SetFunction ( const UserFunc &  f,
double  xmin,
double  xlow,
double  xup 
)
inline

Set, or reset, minimizer to use the function f and the initial search interval [xlow, xup], with a guess for the location of the minimum xmin.

The condition : \( f(xlow) > f(xmin) < f(xup)\) must be satisfied

Definition at line 108 of file GSLMinimizer1D.h.

◆ SetFunction() [2/2]

void ROOT::Math::GSLMinimizer1D::SetFunction ( GSLFuncPointer  f,
void *  params,
double  xmin,
double  xlow,
double  xup 
)

Set, or reset, minimizer to use the function f and the initial search interval [xlow, xup], with a guess for the location of the minimum xmin.

The condition : \( f(xlow) > f(xmin) < f(xup) \) must be satisfied

Method specialized on the GSL function type

Definition at line 86 of file GSLMinimizer1D.cxx.

◆ Status()

int ROOT::Math::GSLMinimizer1D::Status ( ) const
inlineoverridevirtual

Return status of last minimization.

Implements ROOT::Math::IMinimizer1D.

Definition at line 180 of file GSLMinimizer1D.h.

◆ TestInterval()

int ROOT::Math::GSLMinimizer1D::TestInterval ( double  xlow,
double  xup,
double  epsAbs,
double  epsRel 
)
static

Test convergence of the interval.

The test returns success if

\[ |x_{min}-x_{truemin}| < epsAbs + epsRel *x_{truemin} \]

Definition at line 202 of file GSLMinimizer1D.cxx.

◆ XLower()

double ROOT::Math::GSLMinimizer1D::XLower ( ) const
overridevirtual

Return current lower bound of the minimization interval.

Implements ROOT::Math::IMinimizer1D.

Definition at line 134 of file GSLMinimizer1D.cxx.

◆ XMinimum()

double ROOT::Math::GSLMinimizer1D::XMinimum ( ) const
overridevirtual

Return current estimate of the position of the minimum.

Implements ROOT::Math::IMinimizer1D.

Definition at line 129 of file GSLMinimizer1D.cxx.

◆ XUpper()

double ROOT::Math::GSLMinimizer1D::XUpper ( ) const
overridevirtual

Return current upper bound of the minimization interval.

Implements ROOT::Math::IMinimizer1D.

Definition at line 139 of file GSLMinimizer1D.cxx.

Member Data Documentation

◆ fFunction

GSLFunctionWrapper* ROOT::Math::GSLMinimizer1D::fFunction
private

Definition at line 214 of file GSLMinimizer1D.h.

◆ fIsSet

bool ROOT::Math::GSLMinimizer1D::fIsSet
private

Definition at line 210 of file GSLMinimizer1D.h.

◆ fIter

int ROOT::Math::GSLMinimizer1D::fIter
private

Definition at line 208 of file GSLMinimizer1D.h.

◆ fLow

double ROOT::Math::GSLMinimizer1D::fLow
private

Definition at line 206 of file GSLMinimizer1D.h.

◆ fMin

double ROOT::Math::GSLMinimizer1D::fMin
private

Definition at line 205 of file GSLMinimizer1D.h.

◆ fMinimizer

GSL1DMinimizerWrapper* ROOT::Math::GSLMinimizer1D::fMinimizer
private

Definition at line 213 of file GSLMinimizer1D.h.

◆ fStatus

int ROOT::Math::GSLMinimizer1D::fStatus
private

Definition at line 209 of file GSLMinimizer1D.h.

◆ fUp

double ROOT::Math::GSLMinimizer1D::fUp
private

Definition at line 207 of file GSLMinimizer1D.h.

◆ fXlow

double ROOT::Math::GSLMinimizer1D::fXlow
private

Definition at line 203 of file GSLMinimizer1D.h.

◆ fXmin

double ROOT::Math::GSLMinimizer1D::fXmin
private

Definition at line 202 of file GSLMinimizer1D.h.

◆ fXup

double ROOT::Math::GSLMinimizer1D::fXup
private

Definition at line 204 of file GSLMinimizer1D.h.

Libraries for ROOT::Math::GSLMinimizer1D:

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