User class for performing multidimensional integration By default uses adaptive multi-dimensional integration using the algorithm from Genz Mallik implemented in the class ROOT::Math::AdaptiveIntegratorMultiDim otherwise it can uses via the plug-in manager the MC integration class (ROOT::Math::GSLMCIntegration) from MathMore. @ingroup Integration
virtual | ~IntegratorMultiDim() |
double | Error() const |
ROOT::Math::VirtualIntegratorMultiDim* | GetIntegrator() |
static string | GetName(ROOT::Math::IntegrationMultiDim::Type) |
static ROOT::Math::IntegrationMultiDim::Type | GetType(const char* name) |
double | Integral(const double* xmin, const double* xmax) |
double | Integral(const ROOT::Math::IMultiGenFunction& f, const double* xmin, const double* xmax) |
ROOT::Math::IntegratorMultiDim | IntegratorMultiDim(ROOT::Math::IntegrationMultiDim::Type type = IntegrationMultiDim::kDEFAULT, double absTol = 0, double relTol = 0, unsigned int ncall = 0) |
ROOT::Math::IntegratorMultiDim | IntegratorMultiDim(const ROOT::Math::IMultiGenFunction& f, ROOT::Math::IntegrationMultiDim::Type type = IntegrationMultiDim::kDEFAULT, double absTol = 0, double relTol = 0, unsigned int ncall = 0) |
string | Name() const |
ROOT::Math::IntegratorMultiDimOptions | Options() const |
double | Result() const |
void | SetAbsTolerance(double absTol) |
void | SetFunction(const ROOT::Math::IMultiGenFunction& f) |
void | SetOptions(const ROOT::Math::IntegratorMultiDimOptions& opt) |
void | SetRelTolerance(double relTol) |
int | Status() const |
ROOT::Math::VirtualIntegratorMultiDim* | CreateIntegrator(ROOT::Math::IntegrationMultiDim::Type type, double absTol, double relTol, unsigned int ncall) |
ROOT::Math::IntegratorMultiDim | IntegratorMultiDim(const ROOT::Math::IntegratorMultiDim&) |
ROOT::Math::IntegratorMultiDim& | operator=(const ROOT::Math::IntegratorMultiDim&) |
auto_ptr<ROOT::Math::IBaseFunctionMultiDim> | fFunc | pointer to owned function |
ROOT::Math::VirtualIntegratorMultiDim* | fIntegrator | pointer to multi-dimensional integrator base class |
Generic constructor of multi dimensional Integrator. By default uses the Adaptive integration method @param type integration type (adaptive, MC methods, etc..) @param absTol desired absolute Error @param relTol desired relative Error @param size maximum number of sub-intervals In case no parameter values are passed the default ones used in IntegratorMultiDimOptions are used
Generic Constructor of multi dimensional Integrator passing a function. By default uses the adaptive integration method @param f integration function (multi-dim interface) @param type integration type (adaptive, MC methods, etc..) @param absTol desired absolute Error @param relTol desired relative Error @param ncall number of function calls (apply only to MC integratioon methods)
remove template constructor since is ambigous Template Constructor of multi dimensional Integrator passing a generic function. By default uses the adaptive integration method @param f integration function (generic function implementin operator()(const double *) @param dim function dimension @param type integration type (adaptive, MC methods, etc..) @param absTol desired absolute Error @param relTol desired relative Error @param ncall number of function calls (apply only to MC integratioon methods) this is ambigous template<class Function> IntegratorMultiDim(Function & f, unsigned int dim, IntegrationMultiDim::Type type = IntegrationMultiDim::kADAPTIVE, double absTol = 1.E-9, double relTol = 1E-6, unsigned int ncall = 100000) { fIntegrator = CreateIntegrator(type, absTol, relTol, ncall); SetFunction(f, dim); } destructor
disable copy constructur and assignment operator
{}
evaluate the integral with the previously given function between xmin[] and xmax[]
evaluate the integral passing a new function
return result of last integration
{ return fIntegrator == 0 ? 0 : fIntegrator->Result(); }
return integration error
{ return fIntegrator == 0 ? 0 : fIntegrator->Error(); }
return number of function evaluations in calculating the integral unsigned int NEval() const { return fNEval; } set the relative tolerance
{ if (fIntegrator) fIntegrator->SetRelTolerance(relTol); }
set absolute tolerance
{ if (fIntegrator) fIntegrator->SetAbsTolerance(absTol); }
set the options
{ if (fIntegrator) fIntegrator->SetOptions(opt); }
return a pointer to integrator object
{ return fIntegrator; }
return name of integrator
{ return (fIntegrator) ? Options().Integrator() : std::string(""); }
static function to get the enumeration from a string
static function to get a string from the enumeration