#ifndef ROO_ADAPTIVE_GAUSS_KRONROD_INTEGRATOR_1D
#define ROO_ADAPTIVE_GAUSS_KRONROD_INTEGRATOR_1D
#include "RooAbsIntegrator.h"
#include "RooNumIntConfig.h"
double RooAdaptiveGaussKronrodIntegrator1D_GSL_GlueFunction(double x, void *data) ;
class RooAdaptiveGaussKronrodIntegrator1D : public RooAbsIntegrator {
public:
RooAdaptiveGaussKronrodIntegrator1D() ;
RooAdaptiveGaussKronrodIntegrator1D(const RooAbsFunc& function, const RooNumIntConfig& config) ;
RooAdaptiveGaussKronrodIntegrator1D(const RooAbsFunc& function, Double_t xmin, Double_t xmax,
const RooNumIntConfig& config) ;
virtual RooAbsIntegrator* clone(const RooAbsFunc& function, const RooNumIntConfig& config) const ;
virtual ~RooAdaptiveGaussKronrodIntegrator1D();
virtual Bool_t checkLimits() const;
virtual Double_t integral(const Double_t *yvec=0) ;
using RooAbsIntegrator::setLimits ;
Bool_t setLimits(Double_t* xmin, Double_t* xmax);
virtual Bool_t setUseIntegrandLimits(Bool_t flag) {
_useIntegrandLimits = flag ; return kTRUE ;
}
virtual Bool_t canIntegrate1D() const {
return kTRUE ;
}
virtual Bool_t canIntegrate2D() const {
return kFALSE ;
}
virtual Bool_t canIntegrateND() const {
return kFALSE ;
}
virtual Bool_t canIntegrateOpenEnded() const {
return kTRUE ;
}
protected:
friend class RooNumIntFactory ;
static void registerIntegrator(RooNumIntFactory& fact) ;
enum DomainType { Closed, OpenLo, OpenHi, Open } ;
mutable DomainType _domainType ;
friend double RooAdaptiveGaussKronrodIntegrator1D_GSL_GlueFunction(double x, void *data) ;
Bool_t initialize();
Bool_t _useIntegrandLimits;
Double_t* xvec(Double_t& xx) {
_x[0] = xx ; return _x ;
}
Double_t *_x ;
Double_t _epsAbs ;
Double_t _epsRel ;
Int_t _methodKey ;
Int_t _maxSeg ;
void* _workspace ;
mutable Double_t _xmin;
mutable Double_t _xmax;
ClassDef(RooAdaptiveGaussKronrodIntegrator1D,0)
};
#endif
RooAdaptiveGaussKronrodIntegrator1D.h:1 RooAdaptiveGaussKronrodIntegrator1D.h:2 RooAdaptiveGaussKronrodIntegrator1D.h:3 RooAdaptiveGaussKronrodIntegrator1D.h:4 RooAdaptiveGaussKronrodIntegrator1D.h:5 RooAdaptiveGaussKronrodIntegrator1D.h:6 RooAdaptiveGaussKronrodIntegrator1D.h:7 RooAdaptiveGaussKronrodIntegrator1D.h:8 RooAdaptiveGaussKronrodIntegrator1D.h:9 RooAdaptiveGaussKronrodIntegrator1D.h:10 RooAdaptiveGaussKronrodIntegrator1D.h:11 RooAdaptiveGaussKronrodIntegrator1D.h:12 RooAdaptiveGaussKronrodIntegrator1D.h:13 RooAdaptiveGaussKronrodIntegrator1D.h:14 RooAdaptiveGaussKronrodIntegrator1D.h:15 RooAdaptiveGaussKronrodIntegrator1D.h:16 RooAdaptiveGaussKronrodIntegrator1D.h:17 RooAdaptiveGaussKronrodIntegrator1D.h:18 RooAdaptiveGaussKronrodIntegrator1D.h:19 RooAdaptiveGaussKronrodIntegrator1D.h:20 RooAdaptiveGaussKronrodIntegrator1D.h:21 RooAdaptiveGaussKronrodIntegrator1D.h:22 RooAdaptiveGaussKronrodIntegrator1D.h:23 RooAdaptiveGaussKronrodIntegrator1D.h:24 RooAdaptiveGaussKronrodIntegrator1D.h:25 RooAdaptiveGaussKronrodIntegrator1D.h:26 RooAdaptiveGaussKronrodIntegrator1D.h:27 RooAdaptiveGaussKronrodIntegrator1D.h:28 RooAdaptiveGaussKronrodIntegrator1D.h:29 RooAdaptiveGaussKronrodIntegrator1D.h:30 RooAdaptiveGaussKronrodIntegrator1D.h:31 RooAdaptiveGaussKronrodIntegrator1D.h:32 RooAdaptiveGaussKronrodIntegrator1D.h:33 RooAdaptiveGaussKronrodIntegrator1D.h:34 RooAdaptiveGaussKronrodIntegrator1D.h:35 RooAdaptiveGaussKronrodIntegrator1D.h:36 RooAdaptiveGaussKronrodIntegrator1D.h:37 RooAdaptiveGaussKronrodIntegrator1D.h:38 RooAdaptiveGaussKronrodIntegrator1D.h:39 RooAdaptiveGaussKronrodIntegrator1D.h:40 RooAdaptiveGaussKronrodIntegrator1D.h:41 RooAdaptiveGaussKronrodIntegrator1D.h:42 RooAdaptiveGaussKronrodIntegrator1D.h:43 RooAdaptiveGaussKronrodIntegrator1D.h:44 RooAdaptiveGaussKronrodIntegrator1D.h:45 RooAdaptiveGaussKronrodIntegrator1D.h:46 RooAdaptiveGaussKronrodIntegrator1D.h:47 RooAdaptiveGaussKronrodIntegrator1D.h:48 RooAdaptiveGaussKronrodIntegrator1D.h:49 RooAdaptiveGaussKronrodIntegrator1D.h:50 RooAdaptiveGaussKronrodIntegrator1D.h:51 RooAdaptiveGaussKronrodIntegrator1D.h:52 RooAdaptiveGaussKronrodIntegrator1D.h:53 RooAdaptiveGaussKronrodIntegrator1D.h:54 RooAdaptiveGaussKronrodIntegrator1D.h:55 RooAdaptiveGaussKronrodIntegrator1D.h:56 RooAdaptiveGaussKronrodIntegrator1D.h:57 RooAdaptiveGaussKronrodIntegrator1D.h:58 RooAdaptiveGaussKronrodIntegrator1D.h:59 RooAdaptiveGaussKronrodIntegrator1D.h:60 RooAdaptiveGaussKronrodIntegrator1D.h:61 RooAdaptiveGaussKronrodIntegrator1D.h:62 RooAdaptiveGaussKronrodIntegrator1D.h:63 RooAdaptiveGaussKronrodIntegrator1D.h:64 RooAdaptiveGaussKronrodIntegrator1D.h:65 RooAdaptiveGaussKronrodIntegrator1D.h:66 RooAdaptiveGaussKronrodIntegrator1D.h:67 RooAdaptiveGaussKronrodIntegrator1D.h:68 RooAdaptiveGaussKronrodIntegrator1D.h:69 RooAdaptiveGaussKronrodIntegrator1D.h:70 RooAdaptiveGaussKronrodIntegrator1D.h:71 RooAdaptiveGaussKronrodIntegrator1D.h:72 RooAdaptiveGaussKronrodIntegrator1D.h:73 RooAdaptiveGaussKronrodIntegrator1D.h:74 RooAdaptiveGaussKronrodIntegrator1D.h:75 RooAdaptiveGaussKronrodIntegrator1D.h:76 RooAdaptiveGaussKronrodIntegrator1D.h:77 RooAdaptiveGaussKronrodIntegrator1D.h:78 RooAdaptiveGaussKronrodIntegrator1D.h:79 RooAdaptiveGaussKronrodIntegrator1D.h:80 RooAdaptiveGaussKronrodIntegrator1D.h:81 RooAdaptiveGaussKronrodIntegrator1D.h:82 RooAdaptiveGaussKronrodIntegrator1D.h:83 RooAdaptiveGaussKronrodIntegrator1D.h:84 RooAdaptiveGaussKronrodIntegrator1D.h:85 RooAdaptiveGaussKronrodIntegrator1D.h:86 RooAdaptiveGaussKronrodIntegrator1D.h:87 RooAdaptiveGaussKronrodIntegrator1D.h:88 RooAdaptiveGaussKronrodIntegrator1D.h:89 RooAdaptiveGaussKronrodIntegrator1D.h:90 RooAdaptiveGaussKronrodIntegrator1D.h:91 RooAdaptiveGaussKronrodIntegrator1D.h:92 RooAdaptiveGaussKronrodIntegrator1D.h:93 RooAdaptiveGaussKronrodIntegrator1D.h:94