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.
int Int_t
Signed integer 4 bytes (int).
Abstract interface for evaluating a real-valued function of one real variable and performing numerica...
virtual bool setLimits(double *, double *)
double * xvec(double &xx)
double integral(const double *yvec=nullptr) override
Calculate and return integral at at given parameter values.
RooAdaptiveGaussKronrodIntegrator1D(const RooAbsFunc &function, const RooNumIntConfig &config)
Constructor taking a function binding and a configuration object.
friend class RooNumIntFactory
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.
bool setLimits(double *xmin, double *xmax) override
Change our integration limits.
double _xmin
! Lower integration bound
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
! Upper integration bound
std::vector< double > _x
! Current coordinate
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.