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::auto_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
IntegratorMultiDim & operator=(const IntegratorMultiDim &)
Type
enumeration specifying the integration types.
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 Result() const
return result of last integration
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 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
std::auto_ptr< IMultiGenFunction > fFunc
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
virtual int Status() const =0
return the Error Status of the last Integral calculation
void SetRelTolerance(double relTol)
set the relative tolerance
std::string Integrator() const
name of multi-dim integrator
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)
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.