18#ifndef ROOT_Math_IFunction 
   19#define ROOT_Math_IFunction 
   77         virtual unsigned int NDim() 
const = 0;
 
   86         template <
class Iterator>
 
 
  181            unsigned int ndim = 
NDim();
 
 
  192            unsigned int ndim = 
NDim();
 
 
  204         virtual void FdF(
const T *
x, T &
f, T *df)
 const 
 
 
  277         virtual void FdF(
double x, 
double &
f, 
double &df)
 const 
 
  284         void FdF(
const double *
x, 
double &
f, 
double *df)
 const { 
FdF(*
x, 
f, *df); }
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Documentation for the abstract class IBaseFunctionMultiDim.
 
virtual IBaseFunctionMultiDimTempl< T > * Clone() const =0
Clone a function.
 
virtual bool HasGradient() const
 
virtual ~IBaseFunctionMultiDimTempl()=default
 
T operator()(const T *x) const
Evaluate the function at a point x[].
 
IBaseFunctionMultiDimTempl< T > BaseFunc
 
virtual unsigned int NDim() const =0
Retrieve the dimension of the function.
 
virtual T DoEval(const T *x) const =0
Implementation of the evaluation function. Must be implemented by derived classes.
 
Interface (abstract class) for generic functions objects of one-dimension Provides a method to evalua...
 
virtual bool HasGradient() const
 
virtual ~IBaseFunctionOneDim()=default
 
IBaseFunctionOneDim BaseFunc
 
virtual double DoEval(double x) const =0
implementation of the evaluation function. Must be implemented by derived classes
 
double operator()(const double *x) const
Evaluate the function at a point x[].
 
virtual IBaseFunctionOneDim * Clone() const =0
Clone a function.
 
double operator()(double x) const
Evaluate the function at a point x.
 
Interface (abstract class) for multi-dimensional functions providing a gradient calculation.
 
IGradientFunctionMultiDimTempl< T > BaseGrad
 
virtual void Gradient(const T *x, T *grad) const
Evaluate all the vector of function derivatives (gradient) at a point x.
 
T Derivative(const T *x, unsigned int icoord=0) const
Return the partial derivative with respect to the passed coordinate.
 
virtual unsigned int NDim() const=0
Retrieve the dimension of the function.
 
T Derivative(const T *x, unsigned int icoord, T *previous_grad, T *previous_g2, T *previous_gstep) const
In some cases, the derivative algorithm will use information from the previous step,...
 
virtual void FdF(const T *x, T &f, T *df) const
Optimized method to evaluate at the same time the function value and derivative at a point x.
 
virtual void GradientWithPrevResult(const T *x, T *grad, T *previous_grad, T *previous_g2, T *previous_gstep) const
In some cases, the gradient algorithm will use information from the previous step,...
 
virtual T DoDerivativeWithPrevResult(const T *x, unsigned int icoord, T *, T *, T *) const
In some cases, the derivative algorithm will use information from the previous step,...
 
virtual T DoDerivative(const T *x, unsigned int icoord) const =0
Function to evaluate the derivative with respect each coordinate. To be implemented by the derived cl...
 
IBaseFunctionMultiDimTempl< T > BaseFunc
 
virtual bool returnsInMinuit2ParameterSpace() const
 
Interface (abstract class) for one-dimensional functions providing a gradient calculation.
 
double Derivative(const double *x) const
Compatibility method with multi-dimensional interface for partial derivative.
 
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 FdF(const double *x, double &f, double *df) const
Compatibility method with multi-dimensional interface for Gradient and function evaluation.
 
IGradientFunctionOneDim BaseGrad
 
void Gradient(const double *x, double *g) const
Compatibility method with multi-dimensional interface for Gradient.
 
IBaseFunctionOneDim BaseFunc
 
double Derivative(double x) const
Return the derivative of the function at a point x Use the private method DoDerivative.
 
virtual double DoDerivative(double x) const =0
Function to evaluate the derivative with respect each coordinate. To be implemented by the derived cl...
 
bool HasGradient() const override
 
Namespace for new Math classes and functions.
 
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...