14 #ifndef ROOT_Math_IntegratorMultiDim 15 #define ROOT_Math_IntegratorMultiDim 125 double Integral(
const double* xmin,
const double * xmax) {
136 template<
class Function>
137 double Integral(Function & f ,
unsigned int dim,
const double* xmin,
const double * xmax) {
138 SetFunction<Function>(f,dim);
147 template <
class Function>
201 std::unique_ptr<IMultiGenFunction>
fFunc;
virtual void SetRelTolerance(double)=0
set the desired relative Error
static IntegrationMultiDim::Type GetType(const char *name)
static function to get the enumeration from a string
Namespace for new ROOT classes and functions.
IntegratorMultiDim & operator=(const IntegratorMultiDim &)
Type
enumeration specifying the integration types.
ROOT::Math::IntegratorMultiDimOptions Options() const
retrieve the options
virtual double Result() const =0
return the Result of the last Integral calculation
VirtualIntegratorMultiDim * fIntegrator
double Integral(const double *xmin, const double *xmax)
evaluate the integral with the previously given function between xmin[] and xmax[] ...
double Integral(Function &f, unsigned int dim, const double *xmin, const double *xmax)
evaluate the integral passing a new generic function
virtual double Error() const =0
return the estimate of the absolute Error of the last Integral calculation
IntegrationMultiDim::Type Type
virtual ~IntegratorMultiDim()
Template Constructor of multi dimensional Integrator passing a generic function.
virtual ROOT::Math::IntegratorMultiDimOptions Options() const =0
get the option used for the integration impelement by derived class otherwise return default ones ...
double Integral(const IMultiGenFunction &f, const double *xmin, const double *xmax)
evaluate the integral passing a new function
void SetFunction(Function &f, unsigned int dim)
set integration function using a generic function implementing the operator()(double *x) The dimensio...
virtual void SetFunction(const IMultiGenFunction &)=0
setting a multi-dim function
Documentation for the abstract class IBaseFunctionMultiDim.
std::string Integrator() const
name of multi-dim integrator
Numerical multi dimensional integration options.
Interface (abstract) class for multi numerical integration It must be implemented by the concrete Int...
VirtualIntegratorMultiDim * GetIntegrator()
return a pointer to integrator object
IntegratorMultiDim(const IMultiGenFunction &f, IntegrationMultiDim::Type type=IntegrationMultiDim::kDEFAULT, double absTol=-1, double relTol=-1, unsigned int ncall=0)
Generic Constructor of multi dimensional Integrator passing a function.
static std::string GetName(IntegrationMultiDim::Type)
static function to get a string from the enumeration
int Status() const
return the Error Status of the last Integral calculation
void SetOptions(const ROOT::Math::IntegratorMultiDimOptions &opt)
set the options
virtual int Status() const =0
return the Error Status of the last Integral calculation
double Result() const
return result of last integration
double Error() const
return integration error
void SetRelTolerance(double relTol)
set the relative tolerance
std::unique_ptr< IMultiGenFunction > fFunc
Template class to wrap any C++ callable object implementing operator() (const double * x) in a multi-...
virtual void SetOptions(const ROOT::Math::IntegratorMultiDimOptions &opt)
set the options (if needed must be re-implemented by derived classes)
Namespace for new Math classes and functions.
VirtualIntegratorMultiDim * CreateIntegrator(IntegrationMultiDim::Type type, double absTol, double relTol, unsigned int ncall)
virtual void SetAbsTolerance(double)=0
set the desired absolute Error
std::string Name() const
return name of integrator
User class for performing multidimensional integration.
void SetFunction(const IMultiGenFunction &f)
IntegratorMultiDim(IntegrationMultiDim::Type type=IntegrationMultiDim::kDEFAULT, double absTol=-1, double relTol=-1, unsigned int ncall=0)
Generic constructor of multi dimensional Integrator.
virtual double Integral(const double *, const double *)=0
evaluate multi-dim integral
void SetAbsTolerance(double absTol)
set absolute tolerance
IntegratorMultiDim(const IntegratorMultiDim &)