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

User Class to find the Root of one dimensional functions.

The GSL Methods are implemented in MathMore and they are loaded automatically via the plug-in manager

The possible types of Root-finding algorithms are:

This class does not cupport copying

Definition at line 84 of file RootFinder.h.

Public Types

enum  EType {
  kBRENT , kGSL_BISECTION , kGSL_FALSE_POS , kGSL_BRENT ,
  kGSL_NEWTON , kGSL_SECANT , kGSL_STEFFENSON
}
 

Public Member Functions

 RootFinder (RootFinder::EType type=RootFinder::kBRENT)
 Construct a Root-Finder algorithm.
 
virtual ~RootFinder ()
 
int Iterate ()
 Perform a single iteration and return the Status.
 
int Iterations () const
 Return the number of iteration performed to find the Root.
 
const char * Name () const
 Return the current and latest estimate of the lower value of the Root-finding interval (for bracketing algorithms)
 
double Root () const
 Return the current and latest estimate of the Root.
 
bool SetFunction (const IGenFunction &f, double xlow, double xup)
 Provide to the solver the function and the initial search interval [xlow, xup] for algorithms not using derivatives (bracketing algorithms) The templated function f must be of a type implementing the operator() method, double operator() ( double x ) Returns non zero if interval is not valid (i.e.
 
bool SetFunction (const IGradFunction &f, double xstart)
 Provide to the solver the function and an initial estimate of the root, for algorithms using derivatives.
 
bool SetMethod (RootFinder::EType type=RootFinder::kBRENT)
 
template<class Function , class Derivative >
bool Solve (Function &f, Derivative &d, double start, int maxIter=100, double absTol=1E-8, double relTol=1E-10)
 
template<class Function >
bool Solve (Function &f, double min, double max, int maxIter=100, double absTol=1E-8, double relTol=1E-10)
 
bool Solve (int maxIter=100, double absTol=1E-8, double relTol=1E-10)
 Compute the roots iterating until the estimate of the Root is within the required tolerance returning the iteration Status.
 
int Status () const
 Return the status of the last estimate of the Root = 0 OK, not zero failure.
 

Private Member Functions

 RootFinder (const RootFinder &)
 
RootFinderoperator= (const RootFinder &rhs)
 

Private Attributes

IRootFinderMethodfSolver
 

#include <Math/RootFinder.h>

Member Enumeration Documentation

◆ EType

Enumerator
kBRENT 
kGSL_BISECTION 
kGSL_FALSE_POS 
kGSL_BRENT 
kGSL_NEWTON 
kGSL_SECANT 
kGSL_STEFFENSON 

Definition at line 88 of file RootFinder.h.

Constructor & Destructor Documentation

◆ RootFinder() [1/2]

ROOT::Math::RootFinder::RootFinder ( RootFinder::EType  type = RootFinder::kBRENT)

Construct a Root-Finder algorithm.

Definition at line 37 of file RootFinder.cxx.

◆ ~RootFinder()

ROOT::Math::RootFinder::~RootFinder ( )
virtual

Definition at line 139 of file RootFinder.cxx.

◆ RootFinder() [2/2]

ROOT::Math::RootFinder::RootFinder ( const RootFinder )
inlineprivate

Definition at line 101 of file RootFinder.h.

Member Function Documentation

◆ Iterate()

int ROOT::Math::RootFinder::Iterate ( )
inline

Perform a single iteration and return the Status.

Definition at line 164 of file RootFinder.h.

◆ Iterations()

int ROOT::Math::RootFinder::Iterations ( ) const
inline

Return the number of iteration performed to find the Root.

Definition at line 157 of file RootFinder.h.

◆ Name()

const char * ROOT::Math::RootFinder::Name ( ) const
inline

Return the current and latest estimate of the lower value of the Root-finding interval (for bracketing algorithms)

Return the current and latest estimate of the upper value of the Root-finding interval (for bracketing algorithms) Get Name of the Root-finding solver algorithm

Definition at line 201 of file RootFinder.h.

◆ operator=()

RootFinder & ROOT::Math::RootFinder::operator= ( const RootFinder rhs)
inlineprivate

Definition at line 102 of file RootFinder.h.

◆ Root()

double ROOT::Math::RootFinder::Root ( ) const
inline

Return the current and latest estimate of the Root.

Definition at line 171 of file RootFinder.h.

◆ SetFunction() [1/2]

bool ROOT::Math::RootFinder::SetFunction ( const IGenFunction f,
double  xlow,
double  xup 
)
inline

Provide to the solver the function and the initial search interval [xlow, xup] for algorithms not using derivatives (bracketing algorithms) The templated function f must be of a type implementing the operator() method, double operator() ( double x ) Returns non zero if interval is not valid (i.e.

does not contains a root)

Definition at line 120 of file RootFinder.h.

◆ SetFunction() [2/2]

bool ROOT::Math::RootFinder::SetFunction ( const IGradFunction f,
double  xstart 
)
inline

Provide to the solver the function and an initial estimate of the root, for algorithms using derivatives.

The templated function f must be of a type implementing the operator() and the Gradient() methods. double operator() ( double x ) Returns non zero if starting point is not valid

Definition at line 134 of file RootFinder.h.

◆ SetMethod()

bool ROOT::Math::RootFinder::SetMethod ( RootFinder::EType  type = RootFinder::kBRENT)

Definition at line 44 of file RootFinder.cxx.

◆ Solve() [1/3]

template<class Function , class Derivative >
bool ROOT::Math::RootFinder::Solve ( Function f,
Derivative &  d,
double  start,
int  maxIter = 100,
double  absTol = 1E-8,
double  relTol = 1E-10 
)

Definition at line 225 of file RootFinder.h.

◆ Solve() [2/3]

template<class Function >
bool ROOT::Math::RootFinder::Solve ( Function f,
double  min,
double  max,
int  maxIter = 100,
double  absTol = 1E-8,
double  relTol = 1E-10 
)

Definition at line 236 of file RootFinder.h.

◆ Solve() [3/3]

bool ROOT::Math::RootFinder::Solve ( int  maxIter = 100,
double  absTol = 1E-8,
double  relTol = 1E-10 
)
inline

Compute the roots iterating until the estimate of the Root is within the required tolerance returning the iteration Status.

Definition at line 150 of file RootFinder.h.

◆ Status()

int ROOT::Math::RootFinder::Status ( ) const
inline

Return the status of the last estimate of the Root = 0 OK, not zero failure.

Definition at line 179 of file RootFinder.h.

Member Data Documentation

◆ fSolver

IRootFinderMethod* ROOT::Math::RootFinder::fSolver
private

Definition at line 211 of file RootFinder.h.

Libraries for ROOT::Math::RootFinder:

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