43  _tol(2.2204460492503131e-16)
 
   46    oocoutE(
nullptr,Eval) << 
"RooBrentRootFinder:: cannot find roots for function of dimension " 
 
   66  double fa= (*_function)(&
a) - 
value;
 
   67  double fb= (*_function)(&
b) - 
value;
 
   69    oocxcoutD((
TObject*)
nullptr,Eval) << 
"RooBrentRootFinder::findRoot(" << 
_function->getName() << 
"): initial interval does not bracket a root: (" 
   70            << 
a << 
"," << 
b << 
"), value = " << 
value << 
" f[xlo] = " << fa << 
" f[xhi] = " << fb << endl;
 
   81    if ((fb < 0 && 
fc < 0) || (fb > 0 && 
fc > 0)) {
 
   90    if (std::abs(
fc) < std::abs(fb)) {
 
  100    double tol = 0.5 * 
_tol * std::abs(
b);
 
  101    double m = 0.5 * (
c - 
b);
 
  104    if (fb == 0 || std::abs(
m) <= 
tol) {
 
  111    if (std::abs(
e) < 
tol || std::abs(fa) <= std::abs(fb)) {
 
  130   p = s * (2 * 
m * 
q * (
q - 
r) - (
b - 
a) * (
r - 1));
 
  131   q = (
q - 1) * (
r - 1) * (s - 1);
 
  142      double min2= std::abs(
e * 
q);
 
  158    if (std::abs(
d) > 
tol) {
 
  164    fb= (*_function)(&
b) - 
value;
 
  168  oocoutE(
nullptr,Eval) << 
"RooBrentRootFinder::findRoot(" << 
_function->getName() << 
"): maximum iterations exceeded." << endl;
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Abstract interface for evaluating a real-valued function of one real variable and performing numerica...
Implement the abstract 1-dimensional root finding interface using the Brent-Decker method.
const RooAbsFunc * _function
Pointer to input function.
bool findRoot(double &result, double xlo, double xhi, double value=0) const
Do the root finding using the Brent-Decker method.
static constexpr int MaxIterations
RooBrentRootFinder(const RooAbsFunc &function)
Constructor taking function binding as input.
bool _valid
True if current state is valid.
Mother of all ROOT objects.