16 #ifndef ROOT_Math_IRootFinderMethod
17 #define ROOT_Math_IRootFinderMethod
19 #ifndef ROOT_Math_Error
23 #ifndef ROOT_Math_IFunctionfwd
51 MATH_ERROR_MSG(
"SetFunction",
"This method must be used with a Root Finder algorithm using derivatives");
64 virtual double Root()
const = 0;
67 virtual int Status()
const = 0;
76 virtual bool Solve(
int maxIter = 100,
double absTol = 1
E-8,
double relTol = 1
E-10) = 0;
79 virtual const char*
Name()
const = 0;
84 MATH_ERROR_MSG(
"Iterate",
"This method must be used with a Root Finder algorithm wrapping the GSL Library");
Interface (abstract class) for generic functions objects of one-dimension Provides a method to evalua...
Namespace for new ROOT classes and functions.
virtual double Root() const =0
Returns the previously calculated root.
Interface (abstract class) for one-dimensional functions providing a gradient calculation.
Interface for finding function roots of one-dimensional functions.
virtual int Iterations() const
Return number of iterations used to find the root Must be implemented by derived classes.
IRootFinderMethod()
Default Constructor.
#define MATH_ERROR_MSG(loc, str)
virtual bool SetFunction(const ROOT::Math::IGradFunction &, double)
Sets the function for algorithms using derivatives.
virtual bool Solve(int maxIter=100, double absTol=1E-8, double relTol=1E-10)=0
Stimates the root for the function.
Namespace for new Math classes and functions.
virtual const char * Name() const =0
Return name of root finder algorithm.
virtual ~IRootFinderMethod()
Default Destructor.
virtual int Status() const =0
Returns the status of the previous estimate.
virtual int Iterate()
This method is implemented only by the GSLRootFinder and GSLRootFinderDeriv classes and will return a...
virtual bool SetFunction(const ROOT::Math::IGenFunction &, double, double)
Sets the function for the rest of the algorithms.