25 #ifndef ROOT_Math_WrappedFunction 26 #define ROOT_Math_WrappedFunction 28 #ifndef ROOT_Math_IFunction 57 template<
typename Func = FreeFunctionPtr >
107 template<
typename FuncObj,
typename MemFuncPtr >
132 return ((*fObj).*fMemFunc)(
x );
155 template<
typename Func = FreeMultiFunctionPtr >
176 unsigned int NDim()
const {
return fDim; }
182 virtual double DoEval (
const double *
x)
const {
194 template<
typename FuncObj,
typename MemFuncPtr >
217 unsigned int NDim()
const {
return fDim; }
221 virtual double DoEval (
const double *
x)
const {
222 return ((*fObj).*fMemFunc)(
x );
239 #endif // ROOT_Math_WrappedFunction WrappedMemMultiFunction * Clone() const
clone (required by the interface)
Interface (abstract class) for generic functions objects of one-dimension Provides a method to evalua...
This namespace contains pre-defined functions to be used in conjuction with TExecutor::Map and TExecu...
WrappedMemFunction(FuncObj &obj, MemFuncPtr memFn)
construct from the pointer to the object and the member function
virtual double DoEval(const double *x) const
Implementation of the evaluation function.
WrappedMultiFunction(Func f, unsigned int dim=1)
construct from the pointer to the object and the member function
WrappedFunction * Clone() const
clone (required by the interface)
unsigned int NDim() const
Retrieve the dimension of the function.
double(* FreeFunctionPtr)(double)
Template class to wrap any C++ callable object which takes one argument i.e.
WrappedMemFunction * Clone() const
clone (required by the interface)
IParamFunction interface (abstract class) describing multi-dimensional parameteric functions It is a ...
WrappedFunction(Func f)
construct from the pointer to the object and the member function
unsigned int NDim() const
Retrieve the dimension of the function.
virtual double DoEval(double x) const
implementation of the evaluation function. Must be implemented by derived classes ...
virtual double DoEval(const double *x) const
Implementation of the evaluation function.
Template class to wrap any C++ callable object implementing operator() (const double * x) in a multi-...
Namespace for new Math classes and functions.
WrappedMemMultiFunction(FuncObj &obj, MemFuncPtr memFn, unsigned int dim=1)
construct from the pointer to the object and the member function
virtual double DoEval(double x) const
implementation of the evaluation function. Must be implemented by derived classes ...
WrappedMultiFunction * Clone() const
clone (required by the interface)
double(* FreeMultiFunctionPtr)(const double *)
Documentation for the abstract class IBaseFunctionMultiDim.
Template class to wrap any member function of a class taking a double and returning a double in a 1D ...