16#ifndef ROOT_Math_IRootFinderMethod
17#define ROOT_Math_IRootFinderMethod
47 MATH_ERROR_MSG(
"SetFunction",
"This method must be used with a Root Finder algorithm using derivatives");
60 virtual double Root()
const = 0;
72 virtual bool Solve(
int maxIter = 100,
double absTol = 1
E-8,
double relTol = 1
E-10) = 0;
75 virtual const char*
Name()
const = 0;
80 MATH_ERROR_MSG(
"Iterate",
"This method must be used with a Root Finder algorithm wrapping the GSL Library");
#define MATH_ERROR_MSG(loc, str)
Interface (abstract class) for generic functions objects of one-dimension Provides a method to evalua...
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.
virtual ~IRootFinderMethod()
Default Destructor.
virtual bool SetFunction(const ROOT::Math::IGradFunction &, double)
Sets the function for algorithms using derivatives.
IRootFinderMethod()
Default Constructor.
virtual int Status() const =0
Returns the status of the previous estimate.
virtual double Root() const =0
Returns the previously calculated root.
virtual bool SetFunction(const ROOT::Math::IGenFunction &, double, double)
Sets the function for the rest of the algorithms.
virtual int Iterate()
This method is implemented only by the GSLRootFinder and GSLRootFinderDeriv classes and will return a...
virtual bool Solve(int maxIter=100, double absTol=1E-8, double relTol=1E-10)=0
Stimates the root for the function.
virtual const char * Name() const =0
Return name of root finder algorithm.
Namespace for new Math classes and functions.
Namespace for new ROOT classes and functions.
constexpr Double_t E()
Base of natural log: