ROOT logo
ROOT » MATH » MATHCORE » ROOT::Math::Functor

class ROOT::Math::Functor: public ROOT::Math::IBaseFunctionMultiDim

   Documentation for class Functor class.
   It is used to wrap in a very simple and convenient way multi-dimensional function objects.
   It can wrap all the following types:
   <li> any C++ callable object implemention double operator()( const double *  )
   <li> a free C function of type double ()(double * )
   <li> a member function with the correct signature like Foo::Eval(const double * ).
       In this case one pass the object pointer and a pointer to the member function (&Foo::Eval)
   The function dimension is required when constructing the functor.

   @ingroup  GenFunc

Function Members (Methods)

virtual ROOT::Math::Functor::ImplBase*Clone() const
ROOT::Math::FunctorFunctor(const ROOT::Math::Functor&)
ROOT::Math::FunctorFunctor(void* p, unsigned int dim, const char* className = 0, const char* methodName = 0)
virtual unsigned intNDim() const
doubleROOT::Math::IBaseFunctionMultiDim::operator()(const double* x) const
ROOT::Math::Functor&operator=(const ROOT::Math::Functor& rhs)
virtual doubleDoEval(const double* x) const

Data Members

auto_ptr<ROOT::Math::IBaseFunctionMultiDim>fImplpointer to base functor handler

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

BaseFunc * Clone() const
 clone of the function handler (use copy-ctor)
unsigned int NDim() const
 constructor for multi-dimensional functions
double DoEval(const double* x) const
      Default constructor

Functor(const PtrObj& p, MemFn memFn, unsigned int dim )
       construct from a pointer to member function (multi-dim type)

Functor( const Func & f, unsigned int dim )
      construct from a callable object of multi-dimension
      with the right signature (implementing operator()(double *x)

virtual ~Functor()
      Destructor (no operations)