26 fLogScan(false), fNIter(0),
28 fXMin(0), fXMax(0), fRoot(0)
60 {
return "BrentRootFinder"; }
68 MATH_ERROR_MSG(
"BrentRootFinder::Solve",
"Function has not been set");
73 MATH_ERROR_MSG(
"BrentRootFinder::Solve",
"xmin is < 0 and log scan is set - disable it");
86 int maxIter2 = maxIter;
92 if (niter1 > maxIter1){
93 MATH_ERROR_MSG(
"BrentRootFinder::Solve",
"Search didn't converge");
98 x =
BrentMethods::MinimBrent(
fFunction, 4, xmin, xmax, x, fy, ok, niter2, absTol, relTol, maxIter2);
Interface (abstract class) for generic functions objects of one-dimension Provides a method to evalua...
bool Solve(int maxIter=100, double absTol=1E-8, double relTol=1E-10)
Returns the X value corresponding to the function value fy for (xmin<x<xmax).
Namespace for new ROOT classes and functions.
double MinimStep(const IGenFunction *f, int type, double &xmin, double &xmax, double fy, int npx=100, bool useLog=false)
Grid search implementation, used to bracket the minimum and later use Brent's method with the bracket...
double MinimBrent(const IGenFunction *f, int type, double &xmin, double &xmax, double xmiddle, double fy, bool &ok, int &niter, double epsabs=1.E-8, double epsrel=1.E-10, int maxiter=100)
Finds a minimum of a function, if the function is unimodal between xmin and xmax This method uses a c...
static int gDefaultNSearch
const char * Name() const
Return name of root finder algorithm ("BrentRootFinder").
const IGenFunction * fFunction
#define MATH_ERROR_MSG(loc, str)
BrentRootFinder()
Default Constructor.
Namespace for new Math classes and functions.
static void SetDefaultNSearch(int n)
set number of times the bracketing search in combination with is done to find a good interval Default...
static void SetDefaultNpx(int npx)
set number of default Npx used at construction time (when SetNpx is not called) Default value is 100 ...
bool SetFunction(const ROOT::Math::IGenFunction &f, double xlow, double xup)
Sets the function for the rest of the algorithms.