25#ifndef ROOT_Math_WrappedFunction
26#define ROOT_Math_WrappedFunction
55template<
typename Func = FreeFunctionPtr >
105template<
typename FuncObj,
typename MemFuncPtr >
153template<
typename Func = FreeMultiFunctionPtr >
180 virtual double DoEval (
const double *
x)
const {
192template<
typename FuncObj,
typename MemFuncPtr >
219 virtual double DoEval (
const double *
x)
const {
Documentation for the abstract class IBaseFunctionMultiDim.
Interface (abstract class) for generic functions objects of one-dimension Provides a method to evalua...
Template class to wrap any C++ callable object which takes one argument i.e.
WrappedFunction * Clone() const
clone (required by the interface)
WrappedFunction(Func f)
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
Template class to wrap any member function of a class taking a double and returning a double in a 1D ...
WrappedMemFunction * Clone() const
clone (required by the interface)
virtual double DoEval(double x) const
implementation of the evaluation function. Must be implemented by derived classes
WrappedMemFunction(FuncObj &obj, MemFuncPtr memFn)
construct from the pointer to the object and the member function
WrappedMemMultiFunction * Clone() const
clone (required by the interface)
virtual double DoEval(const double *x) const
WrappedMemMultiFunction(FuncObj &obj, MemFuncPtr memFn, unsigned int dim=1)
construct from the pointer to the object and the member function
unsigned int NDim() const
Retrieve the dimension of the function.
Template class to wrap any C++ callable object implementing operator() (const double * x) in a multi-...
WrappedMultiFunction(Func f, unsigned int dim=1)
construct from the pointer to the object and the member function
WrappedMultiFunction * Clone() const
clone (required by the interface)
unsigned int NDim() const
Retrieve the dimension of the function.
virtual double DoEval(const double *x) const
Namespace for new Math classes and functions.
double(* FreeMultiFunctionPtr)(const double *)
double(* FreeFunctionPtr)(double)