BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
Template class to wrap any C++ callable object implementing operator() (const double * x) in a multi-dimensional function interface. It provides a ROOT::Math::IGenMultiFunction-like signature
Note: If you want to wrap just the reference (to avoid copying) you need to use Func& or const Func & as template parameter. The former should be used when the operator() is not a const method of Func
Definition at line 154 of file WrappedFunction.h.
Public Types | |
typedef T | BackendType |
typedef IBaseFunctionMultiDimTempl< T > | BaseFunc |
Public Member Functions | |
WrappedMultiFunction (Func f, unsigned int dim=1) | |
WrappedMultiFunction * | Clone () const |
clone (required by the interface) More... | |
unsigned int | NDim () const |
T | operator() (const T *x) const |
Private Member Functions | |
virtual double | DoEval (const double *x) const |
Private Attributes | |
unsigned int | fDim |
Func | fFunc |
|
inherited |
Definition at line 66 of file IFunction.h.
|
inherited |
Definition at line 67 of file IFunction.h.
|
inline |
construct from the pointer to the object and the member function
Definition at line 162 of file WrappedFunction.h.
Referenced by ROOT::Math::WrappedMultiFunction< Func >::Clone().
|
inlinevirtual |
clone (required by the interface)
Implements ROOT::Math::IBaseFunctionMultiDimTempl< T >.
Definition at line 170 of file WrappedFunction.h.
References ROOT::Math::WrappedMultiFunction< Func >::WrappedMultiFunction(), ROOT::Math::WrappedMultiFunction< Func >::fDim, and ROOT::Math::WrappedMultiFunction< Func >::fFunc.
|
inlineprivatevirtual |
Definition at line 180 of file WrappedFunction.h.
References ROOT::Math::WrappedMultiFunction< Func >::fFunc.
|
inlinevirtual |
Retrieve the dimension of the function
Implements ROOT::Math::IBaseFunctionMultiDimTempl< T >.
Definition at line 174 of file WrappedFunction.h.
References ROOT::Math::WrappedMultiFunction< Func >::fDim.
|
inlineinherited |
Evaluate the function at a point x[]. Use the pure virtual private method DoEval which must be implemented by the sub-classes
Definition at line 92 of file IFunction.h.
References ROOT::Math::IBaseFunctionMultiDimTempl< T >::DoEval().
Referenced by ROOT::Math::IGradientFunctionMultiDimTempl< T >::FdF().
|
private |
Definition at line 186 of file WrappedFunction.h.
Referenced by ROOT::Math::WrappedMultiFunction< Func >::Clone(), and ROOT::Math::WrappedMultiFunction< Func >::NDim().
|
private |
Definition at line 185 of file WrappedFunction.h.
Referenced by ROOT::Math::WrappedMultiFunction< Func >::Clone(), and ROOT::Math::WrappedMultiFunction< Func >::DoEval().