14 #ifndef ROOT_Math_IntegratorMultiDim 15 #define ROOT_Math_IntegratorMultiDim 18 #ifndef ROOT_Math_IFunctionfwd 22 #ifndef ROOT_Math_IntegrationTypes 26 #ifndef ROOT_Math_IntegratorOptions 30 #ifndef ROOT_Math_VirtualIntegrator 36 #ifndef ROOT_Math_WrappedFunction 146 template<
class Function>
148 SetFunction<Function>(
f,dim);
157 template <
class Function>
211 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
This namespace contains pre-defined functions to be used in conjuction with TExecutor::Map and TExecu...
IntegratorMultiDim & operator=(const IntegratorMultiDim &)
Type
enumeration specifying the integration types.
VirtualIntegratorMultiDim * fIntegrator
double Integral(const double *xmin, const double *xmax)
evaluate the integral with the previously given function between xmin[] and xmax[] ...
double Result() const
return result of last integration
virtual int Status() const =0
return the Error Status of the last Integral calculation
virtual double Error() const =0
return the estimate of the absolute Error of the last Integral calculation
double Integral(Function &f, unsigned int dim, const double *xmin, const double *xmax)
evaluate the integral passing a new generic function
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 Error() const
return integration error
int Status() const
return the Error Status of the last Integral calculation
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
Numerical multi dimensional integration options.
std::string Name() const
return name of integrator
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
void SetOptions(const ROOT::Math::IntegratorMultiDimOptions &opt)
set the options
void SetRelTolerance(double relTol)
set the relative tolerance
std::unique_ptr< IMultiGenFunction > fFunc
std::string Integrator() const
name of multi-dim integrator
virtual double Result() const =0
return the Result of the last Integral calculation
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
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
ROOT::Math::IntegratorMultiDimOptions Options() const
retrieve the options
IntegratorMultiDim(const IntegratorMultiDim &)
Documentation for the abstract class IBaseFunctionMultiDim.