GradFunctor1D class for onedimensional gradient functions.
It is used to wrap in a very C++ callable object to make a 1D gradient functions. It can be constructed in three different way:
Public Member Functions  
GradFunctor1D ()=default  
Default constructor.  
template<typename Func >  
GradFunctor1D (const Func &f)  
Construct from an object with the right signature, implementing both operator() (double x) and Derivative(double x) .  
template<class PtrObj , typename MemFn , typename GradMemFn >  
GradFunctor1D (const PtrObj &p, MemFn memFn, GradMemFn gradFn)  
construct from a pointer to class and two pointers to member functions, one for the function evaluation and the other for the derivative.  
GradFunctor1D (std::function< double(double)> const &f, std::function< double(double)> const &g)  
Specialized constructor from 2 function objects implementing double operator()(double x).  
GradFunctor1D *  Clone () const override 
Clone a function.  
Public Member Functions inherited from ROOT::Math::IGradientFunctionOneDim  
double  Derivative (const double *x) const 
Compatibility method with multidimensional interface for partial derivative.  
double  Derivative (double x) const 
Return the derivative of the function at a point x Use the private method DoDerivative.  
void  FdF (const double *x, double &f, double *df) const 
Compatibility method with multidimensional interface for Gradient and function evaluation.  
virtual void  FdF (double x, double &f, double &df) const 
Optimized method to evaluate at the same time the function value and derivative at a point x.  
void  Gradient (const double *x, double *g) const 
Compatibility method with multidimensional interface for Gradient.  
bool  HasGradient () const override 
Public Member Functions inherited from ROOT::Math::IBaseFunctionOneDim  
virtual  ~IBaseFunctionOneDim ()=default 
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.  
Private Member Functions  
double  DoDerivative (double x) const override 
Function to evaluate the derivative with respect each coordinate. To be implemented by the derived class.  
double  DoEval (double x) const override 
implementation of the evaluation function. Must be implemented by derived classes  
Private Attributes  
std::function< double(double)>  fDerivFunc 
std::function< double(double)>  fFunc 
Additional Inherited Members  
Public Types inherited from ROOT::Math::IGradientFunctionOneDim  
typedef IBaseFunctionOneDim  BaseFunc 
typedef IGradientFunctionOneDim  BaseGrad 
Public Types inherited from ROOT::Math::IBaseFunctionOneDim  
typedef IBaseFunctionOneDim  BaseFunc 
#include <Math/Functor.h>

default 
Default constructor.

inline 

inline 

inlineoverridevirtual 
Clone a function.
Each derived class will implement their version of the private DoClone method.
Implements ROOT::Math::IBaseFunctionOneDim.
Function to evaluate the derivative with respect each coordinate. To be implemented by the derived class.
Implements ROOT::Math::IGradientFunctionOneDim.
implementation of the evaluation function. Must be implemented by derived classes
Implements ROOT::Math::IBaseFunctionOneDim.