Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Math::WrappedMemFunction< FuncObj, MemFuncPtr > Class Template Reference

template<typename FuncObj, typename MemFuncPtr>
class ROOT::Math::WrappedMemFunction< FuncObj, MemFuncPtr >

Template class to wrap any member function of a class taking a double and returning a double in a 1D function interface For example, if you have a class like: struct X { double Eval(double x); }; you can wrapped in the following way: WrappedMemFunction<X, double ( X::* ) (double) > f;.

Definition at line 106 of file WrappedFunction.h.

Public Member Functions

 WrappedMemFunction (FuncObj &obj, MemFuncPtr memFn)
 construct from the pointer to the object and the member function
 
WrappedMemFunctionClone () const override
 clone (required by the interface)
 
- Public Member Functions inherited from ROOT::Math::IBaseFunctionOneDim
 IBaseFunctionOneDim ()
 
virtual ~IBaseFunctionOneDim ()
 virtual destructor
 
double operator() (const double *x) const
 Evaluate the function at a point x[].
 
double operator() (double x) const
 Evaluate the function at a point x Use the a pure virtual private method DoEval which must be implemented by sub-classes.
 

Private Member Functions

double DoEval (double x) const override
 implementation of the evaluation function. Must be implemented by derived classes
 

Private Attributes

MemFuncPtr fMemFunc
 
FuncObj * fObj
 

Additional Inherited Members

- Public Types inherited from ROOT::Math::IBaseFunctionOneDim
typedef IBaseFunctionOneDim BaseFunc
 

#include <Math/WrappedFunction.h>

Inheritance diagram for ROOT::Math::WrappedMemFunction< FuncObj, MemFuncPtr >:
[legend]

Constructor & Destructor Documentation

◆ WrappedMemFunction()

template<typename FuncObj , typename MemFuncPtr >
ROOT::Math::WrappedMemFunction< FuncObj, MemFuncPtr >::WrappedMemFunction ( FuncObj &  obj,
MemFuncPtr  memFn 
)
inline

construct from the pointer to the object and the member function

Definition at line 114 of file WrappedFunction.h.

Member Function Documentation

◆ Clone()

template<typename FuncObj , typename MemFuncPtr >
WrappedMemFunction * ROOT::Math::WrappedMemFunction< FuncObj, MemFuncPtr >::Clone ( ) const
inlineoverridevirtual

clone (required by the interface)

Implements ROOT::Math::IBaseFunctionOneDim.

Definition at line 122 of file WrappedFunction.h.

◆ DoEval()

template<typename FuncObj , typename MemFuncPtr >
double ROOT::Math::WrappedMemFunction< FuncObj, MemFuncPtr >::DoEval ( double  x) const
inlineoverrideprivatevirtual

implementation of the evaluation function. Must be implemented by derived classes

Implements ROOT::Math::IBaseFunctionOneDim.

Definition at line 129 of file WrappedFunction.h.

Member Data Documentation

◆ fMemFunc

template<typename FuncObj , typename MemFuncPtr >
MemFuncPtr ROOT::Math::WrappedMemFunction< FuncObj, MemFuncPtr >::fMemFunc
private

Definition at line 135 of file WrappedFunction.h.

◆ fObj

template<typename FuncObj , typename MemFuncPtr >
FuncObj* ROOT::Math::WrappedMemFunction< FuncObj, MemFuncPtr >::fObj
private

Definition at line 134 of file WrappedFunction.h.

  • math/mathcore/inc/Math/WrappedFunction.h