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() |
int | Iterate() |
int | Iterations() const |
const char* | Name() const |
double | Root() const |
ROOT::Math::RootFinder | RootFinder(ROOT::Math::RootFinder::EType type = RootFinder::kBRENT) |
int | SetFunction(const ROOT::Math::IGradFunction& f, double xstart) |
int | SetFunction(const ROOT::Math::IGenFunction& f, double xlow, double xup) |
int | SetMethod(ROOT::Math::RootFinder::EType type = RootFinder::kBRENT) |
int | Solve(int maxIter = 100, double absTol = 1E-3, double relTol = 1E-6) |
ROOT::Math::RootFinder& | operator=(const ROOT::Math::RootFinder& rhs) |
ROOT::Math::RootFinder | RootFinder(const ROOT::Math::RootFinder&) |
enum EType { | kBRENT | |
kGSL_BISECTION | ||
kGSL_FALSE_POS | ||
kGSL_BRENT | ||
kGSL_NEWTON | ||
kGSL_SECANT | ||
kGSL_STEFFENSON | ||
}; |
ROOT::Math::IRootFinderMethod* | 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