16#ifndef ROO_ADAPTIVE_GAUSS_KRONROD_INTEGRATOR_1D
17#define ROO_ADAPTIVE_GAUSS_KRONROD_INTEGRATOR_1D
33 double integral(
const double *yvec =
nullptr)
override;
63 std::vector<double>
_x;
double RooAdaptiveGaussKronrodIntegrator1D_GSL_GlueFunction(double x, void *data)
Glue function interacing to GSL code.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
Abstract interface for evaluating a real-valued function of one real variable and performing numerica...
Abstract interface for integrators of real-valued functions that implement the RooAbsFunc interface.
virtual bool setLimits(double *, double *)
Implements the Gauss-Kronrod integration algorithm.
double * xvec(double &xx)
double integral(const double *yvec=nullptr) override
Calculate and return integral at at given parameter values.
bool initialize()
Initialize integrator allocate buffers and setup GSL workspace.
bool setUseIntegrandLimits(bool flag) override
Interface function that allows to defer limit definition to integrand definition.
double _epsAbs
Current coordinate.
bool setLimits(double *xmin, double *xmax) override
Change our integration limits.
bool checkLimits() const override
Check that our integration range is finite and otherwise return false.
friend double RooAdaptiveGaussKronrodIntegrator1D_GSL_GlueFunction(double x, void *data)
Glue function interacing to GSL code.
~RooAdaptiveGaussKronrodIntegrator1D() override
Destructor.
double _xmax
Lower integration bound.
static void registerIntegrator(RooNumIntFactory &fact)
Register this class with RooNumIntConfig as a possible choice of numeric integrator for one-dimension...
Holds the configuration parameters of the various numeric integrators used by RooRealIntegral.
Factory to instantiate numeric integrators from a given function binding and a given configuration.