25 #ifndef ROOT_Math_WrappedFunction 26 #define ROOT_Math_WrappedFunction 55 template<
typename Func = FreeFunctionPtr >
105 template<
typename FuncObj,
typename MemFuncPtr >
130 return ((*fObj).*fMemFunc)(
x );
153 template<
typename Func = FreeMultiFunctionPtr >
174 unsigned int NDim()
const {
return fDim; }
180 virtual double DoEval (
const double *
x)
const {
192 template<
typename FuncObj,
typename MemFuncPtr >
215 unsigned int NDim()
const {
return fDim; }
219 virtual double DoEval (
const double *
x)
const {
220 return ((*fObj).*fMemFunc)(
x );
237 #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...
Namespace for new ROOT classes and functions.
WrappedMemFunction(FuncObj &obj, MemFuncPtr memFn)
construct from the pointer to the object and the member function
virtual double DoEval(const double *x) const
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)
Documentation for the abstract class IBaseFunctionMultiDim.
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
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 *)
Template class to wrap any member function of a class taking a double and returning a double in a 1D ...