Logo ROOT  
Reference Guide

Functor1D class for one-dimensional functions.

It is used to wrap in a very simple and convenient way:

  • any C++ callable object implemention double operator()( double )
  • a free C function of type double ()(double )
  • a member function with the correct signature like Foo::Eval(double ). In this case one pass the object pointer and a pointer to the member function (&Foo::Eval)

Definition at line 493 of file Functor.h.

Public Types

typedef FunctorImpl< IBaseFunctionOneDimImpl
 
typedef IBaseFunctionOneDim::BaseFunc ImplBase
 
- Public Types inherited from ROOT::Math::IBaseFunctionOneDim
typedef IBaseFunctionOneDim BaseFunc
 

Public Member Functions

 Functor1D ()
 Default constructor. More...
 
template<typename Func >
 Functor1D (const Func &f)
 construct from a callable object with the right signature implementing operator() (double x) More...
 
 Functor1D (const Functor1D &rhs)
 Copy constructor for Functor based on ROOT::Math::IGenFunction. More...
 
template<class PtrObj , typename MemFn >
 Functor1D (const PtrObj &p, MemFn memFn)
 construct from a pointer to member function (1D type) More...
 
virtual ~Functor1D ()
 Destructor (no operations) More...
 
ImplBaseClone () const
 Clone a function. More...
 
Functor1Doperator= (const Functor1D &rhs)
 Assignment operator. More...
 
- Public Member Functions inherited from ROOT::Math::IBaseFunctionOneDim
 IBaseFunctionOneDim ()
 
virtual ~IBaseFunctionOneDim ()
 virtual destructor More...
 
virtual IBaseFunctionOneDimClone () const =0
 Clone a function. More...
 
double operator() (const double *x) const
 Evaluate the function at a point x[]. More...
 
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. More...
 

Private Member Functions

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

Private Attributes

std::unique_ptr< ImplfImpl
 

#include <Math/Functor.h>

Inheritance diagram for ROOT::Math::Functor1D:
[legend]

Member Typedef Documentation

◆ Impl

◆ ImplBase

Constructor & Destructor Documentation

◆ Functor1D() [1/4]

ROOT::Math::Functor1D::Functor1D ( )
inline

Default constructor.

Definition at line 504 of file Functor.h.

◆ Functor1D() [2/4]

template<typename Func >
ROOT::Math::Functor1D::Functor1D ( const Func &  f)
inline

construct from a callable object with the right signature implementing operator() (double x)

Definition at line 511 of file Functor.h.

◆ Functor1D() [3/4]

template<class PtrObj , typename MemFn >
ROOT::Math::Functor1D::Functor1D ( const PtrObj &  p,
MemFn  memFn 
)
inline

construct from a pointer to member function (1D type)

Definition at line 520 of file Functor.h.

◆ ~Functor1D()

virtual ROOT::Math::Functor1D::~Functor1D ( )
inlinevirtual

Destructor (no operations)

Definition at line 528 of file Functor.h.

◆ Functor1D() [4/4]

ROOT::Math::Functor1D::Functor1D ( const Functor1D rhs)
inline

Copy constructor for Functor based on ROOT::Math::IGenFunction.

Definition at line 534 of file Functor.h.

Member Function Documentation

◆ Clone()

ImplBase * ROOT::Math::Functor1D::Clone ( ) const
inlinevirtual

Clone a function.

Each derived class will implement their version of the provate DoClone method

Implements ROOT::Math::IBaseFunctionOneDim.

Definition at line 553 of file Functor.h.

◆ DoEval()

double ROOT::Math::Functor1D::DoEval ( double  x) const
inlineprivatevirtual

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

Implements ROOT::Math::IBaseFunctionOneDim.

Definition at line 557 of file Functor.h.

◆ operator=()

Functor1D & ROOT::Math::Functor1D::operator= ( const Functor1D rhs)
inline

Assignment operator.

Definition at line 546 of file Functor.h.

Member Data Documentation

◆ fImpl

std::unique_ptr<Impl> ROOT::Math::Functor1D::fImpl
private

Definition at line 561 of file Functor.h.

Libraries for ROOT::Math::Functor1D:
[legend]

The documentation for this class was generated from the following file: