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 506 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...
 
 Functor1D (const std::function< double(double)> &f)
 specialized constructor from a std::function implementing the function evaluation. 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/5]

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

Default constructor.

Definition at line 517 of file Functor.h.

◆ Functor1D() [2/5]

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 524 of file Functor.h.

◆ Functor1D() [3/5]

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 533 of file Functor.h.

◆ Functor1D() [4/5]

ROOT::Math::Functor1D::Functor1D ( const std::function< double(double)> &  f)
inline

specialized constructor from a std::function implementing the function evaluation.

This specialized constructor is introduced in order to use the Functor class in Python passing Python user defined functions

Definition at line 542 of file Functor.h.

◆ ~Functor1D()

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

Destructor (no operations)

Definition at line 549 of file Functor.h.

◆ Functor1D() [5/5]

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

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

Definition at line 555 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 574 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 578 of file Functor.h.

◆ operator=()

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

Assignment operator.

Definition at line 567 of file Functor.h.

Member Data Documentation

◆ fImpl

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

Definition at line 582 of file Functor.h.

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

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