GradFunctor class for Multidimensional gradient functions.
It is used to wrap in a very C++ callable object to make gradient functions. It can be constructed in three different way:
-
from an object implementing both double operator()( const double * ) for the function evaluation and double Derivative(const double *, int icoord) for the partial derivatives
-
from an object implementing any member function like Foo::XXX(const double *) for the function evaluation and any member function like Foo::XXX(const double *, int icoord) for the partial derivatives
-
from two function objects implementing double operator()( const double * ) for the function evaluation and another function object implementing double operator() (const double *, int icoord) for the partial derivatives
-
from two function objects
The function dimension is required when constructing the functor.
Definition at line 677 of file Functor.h.
|
| | GradFunctor () |
| | Default constructor.
|
| |
| template<typename Func , typename GradFunc > |
| | GradFunctor (const Func &f, const GradFunc &g, int dim) |
| | construct for Gradient Functions of multi-dimension Func gives the function evaluation, GradFunc the partial derivatives The function dimension is required
|
| |
| template<typename Func > |
| | GradFunctor (const Func &f, unsigned int dim) |
| | construct from a callable object of multi-dimension implementing operator()(const double *x) and Derivative(const double * x,icoord)
|
| |
| | GradFunctor (const GradFunctor &rhs) |
| | Copy constructor for functor based on ROOT::Math::IMultiGradFunction.
|
| |
| template<class PtrObj , typename MemFn , typename GradMemFn > |
| | GradFunctor (const PtrObj &p, MemFn memFn, GradMemFn gradFn, unsigned int dim) |
| | construct from a pointer to member function and member function types for function and derivative evaluations
|
| |
| | GradFunctor (const std::function< double(double const *)> &f, const std::function< double(double const *, unsigned int)> &g, unsigned int dim) |
| | specialized constructor from 2 std::functions with the right signature (the first one implementing double operator()(double const *x) for the function evaluation and the second one implementing double operator()(double const *x, unsigned int icoord) for the function partial derivatives.
|
| |
| | GradFunctor (const std::function< double(double const *)> &f, int dim, const std::function< void(double const *, double *)> &g) |
| | Construct a new GradFunctor object using 2 std::function, one for the function evaluation and one for the Gradient Note the difference with the constructor above where partial derivative function is used as input.
|
| |
| virtual | ~GradFunctor () |
| | Destructor (no operations)
|
| |
| ImplBase * | Clone () const |
| | Clone a function.
|
| |
| void | Gradient (const double *x, double *g) const |
| |
| unsigned int | NDim () const |
| | Retrieve the dimension of the function.
|
| |
| GradFunctor & | operator= (const GradFunctor &rhs) |
| | Assignment operator.
|
| |
| virtual | ~IGradientFunctionMultiDimTempl () |
| | Virtual Destructor (no operations)
|
| |
| 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 | Gradient (const T *x, T *grad) const |
| | Evaluate all the vector of function derivatives (gradient) 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, these can be passed in with this overload.
|
| |
| virtual unsigned int | NDim () const=0 |
| | Retrieve the dimension of the function.
|
| |
| virtual bool | returnsInMinuit2ParameterSpace () const |
| |
| | IBaseFunctionMultiDimTempl () |
| |
| virtual | ~IBaseFunctionMultiDimTempl () |
| | virtual destructor
|
| |
| T | operator() (const T *x) const |
| | Evaluate the function at a point x[].
|
| |
| virtual | ~IGradientMultiDimTempl () |
| | virtual destructor
|
| |
| 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, these can be passed in with this overload.
|
| |
| T | Derivative (const T *x, unsigned int icoord=0) const |
| | Return the partial derivative with respect to the passed coordinate.
|
| |