47 _tol(2.2204460492503131
e-16)
68 <<
a <<
"," << b <<
"), value = " << value <<
" f[xlo] = " << fa <<
" f[xhi] = " << fb << endl;
77 if ((fb < 0 && fc < 0) || (fb > 0 && fc > 0)) {
100 if (fb == 0 ||
fabs(m) <= tol) {
107 if (fabs (e) < tol || fabs (fa) <= fabs (fb)) {
124 p = s * (2 * m * q * (q -
r) - (b -
a) * (r - 1));
125 q = (q - 1) * (r - 1) * (s - 1);
137 if (2 * p < (min1 < min2 ? min1 : min2)) {
152 if (fabs (d) > tol) {
156 b += (m > 0 ? +tol : -tol);
158 fb= (*_function)(&
b) - value;
RooBrentRootFinder(const RooAbsFunc &function)
Constructor taking function binding as input.
static struct mg_connection * fc(struct mg_context *ctx)
void function(const Char_t *name_, T fun, const Char_t *docstring=0)
virtual const char * getName() const
virtual Bool_t findRoot(Double_t &result, Double_t xlo, Double_t xhi, Double_t value=0) const
Do the root finding using the Brent-Decker method.
VecExpr< UnaryOp< Fabs< T >, VecExpr< A, T, D >, T >, T, D > fabs(const VecExpr< A, T, D > &rhs)
RooAbsRootFinder is the abstract interface for finding roots of real-valued 1-dimensional function th...
Implement the abstract 1-dimensional root finding interface using the Brent-Decker method...
const RooAbsFunc * _function
virtual void restoreXVec() const
static constexpr double s
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
virtual void saveXVec() const
Mother of all ROOT objects.
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
Abstract interface for evaluating a real-valued function of one real variable and performing numerica...