Class to find the Root of one dimensional functions. The class is templated on the type of Root solver algorithms. The possible types of Root-finding algorithms are: <ul> <li>Root Bracketing Algorithms which they do not require function derivatives <ol> <li>Roots::Bisection <li>Roots::FalsePos <li>Roots::Brent </ol> <li>Root Finding Algorithms using Derivatives <ol> <li>Roots::Newton <li>Roots::Secant <li>Roots::Steffenson </ol> </ul> This class does not cupport copying @ingroup RootFinders
virtual | ~RootFinder<ROOT::Math::Roots::Steffenson>() |
int | Iterate() |
int | Iterations() const |
const char* | Name() const |
double | Root() const |
ROOT::Math::RootFinder<ROOT::Math::Roots::Steffenson> | RootFinder<ROOT::Math::Roots::Steffenson>() |
int | SetFunction(const ROOT::Math::IGradFunction& f, double Root) |
int | SetFunction(const ROOT::Math::IGenFunction& f, double xlow, double xup) |
int | Solve(int maxIter = 100, double absTol = 1E-3, double relTol = 1E-6) |
static int | TestDelta(double r1, double r0, double epsAbs, double epsRel) |
static int | TestInterval(double xlow, double xup, double epsAbs, double epsRel) |
static int | TestResidual(double f, double epsAbs) |
ROOT::Math::Roots::Steffenson | fSolver | type of algorithm to be used |
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 \a operator() method, <em> double operator() ( double x ) </em> Returns non zero if interval is not valid (i.e. does not contains a root)
Compute the roots iterating until the estimate of the Root is within the required tolerance returning the iteration Status
Return the current and latest estimate of the lower value of the Root-finding interval (for bracketing algorithms) double XLower() const { return fSolver.XLower(); } Return the current and latest estimate of the upper value of the Root-finding interval (for bracketing algorithms) double XUpper() const { return fSolver.XUpper(); } Get Name of the Root-finding solver algorithm
Test convertgence Status of current iteration using interval values (for bracketing algorithms)
Test convergence Status of current iteration using last Root estimates (for algorithms using function derivatives)