14 #ifndef ROOT_Math_AdaptiveIntegratorMultiDim
15 #define ROOT_Math_AdaptiveIntegratorMultiDim
84 class AdaptiveIntegratorMultiDim :
public VirtualIntegratorMultiDim {
100 AdaptiveIntegratorMultiDim(
double absTol = 0.0,
double relTol = 1E-9,
unsigned int maxpts = 100000,
unsigned int size = 0);
108 AdaptiveIntegratorMultiDim(
const IMultiGenFunction &f,
double absTol = 0.0,
double relTol = 1E-9,
unsigned int maxcall = 100000,
unsigned int size = 0);
113 virtual ~AdaptiveIntegratorMultiDim() {}
119 double Integral(
const double* xmin,
const double * xmax) {
120 return DoIntegral(xmin,xmax,
false);
125 double Integral(
const IMultiGenFunction &f,
const double* xmin,
const double * xmax);
128 void SetFunction(
const IMultiGenFunction &f);
131 double Result()
const {
return fResult; }
134 double Error()
const {
return fError; }
137 double RelError()
const {
return fRelError; }
149 int Status()
const {
return fStatus; }
152 int NEval()
const {
return fNEval; }
155 void SetRelTolerance(
double relTol);
158 void SetAbsTolerance(
double absTol);
161 void SetSize(
unsigned int size) { fSize = size; }
164 void SetMinPts(
unsigned int n) { fMinPts = n; }
167 void SetMaxPts(
unsigned int n) { fMaxPts = n; }
170 void SetOptions(
const ROOT::Math::IntegratorMultiDimOptions & opt);
173 ROOT::Math::IntegratorMultiDimOptions Options()
const;
178 double DoIntegral(
const double* xmin,
const double * xmax,
bool absVal =
false);
183 unsigned int fMinPts;
184 unsigned int fMaxPts;
195 const IMultiGenFunction* fFun;