GradFunctor1D class for one-dimensional 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:
-
from an object implementing both double operator()( double ) for the function evaluation and double Derivative(double ) for the partial derivatives
-
from an object implementing any member function like Foo::XXX(double ) for the function evaluation and any other member function like Foo::YYY(double ) for the derivative.
-
from an 2 function objects implementing double operator()( double ) . One object provides the function evaluation, the other the derivative.
Definition at line 822 of file Functor.h.
|
| GradFunctor1D () |
| 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<typename Func , typename GradFunc > |
| GradFunctor1D (const Func &f, const GradFunc &g) |
| construct from two 1D function objects
|
|
| GradFunctor1D (const GradFunctor1D &rhs) |
| Copy constructor for Functor based on ROOT::Math::IGradFunction.
|
|
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 (const std::function< double(double)> &f, const std::function< double(double)> &g) |
| specialized constructor from 2 std::function objects implementing double operator()(double x).
|
|
virtual | ~GradFunctor1D () |
| Destructor (no operations)
|
|
ImplBase * | Clone () const |
| Clone a function.
|
|
GradFunctor1D & | operator= (const GradFunctor1D &rhs) |
| Assignment operator.
|
|
| ~IGradientFunctionOneDim () override |
| Virtual Destructor (no operations)
|
|
void | FdF (double x, double &f, double &df) const override |
| Optimized method to evaluate at the same time the function value and derivative at a point x.
|
|
| IBaseFunctionOneDim () |
|
virtual | ~IBaseFunctionOneDim () |
| virtual destructor
|
|
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 Use the a pure virtual private method DoEval which must be implemented by sub-classes.
|
|
virtual | ~IGradientOneDim () |
| virtual destructor
|
|
double | Derivative (const double *x) const |
| Compatibility method with multi-dimensional 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 multi-dimensional interface for Gradient and function evaluation.
|
|
void | Gradient (const double *x, double *g) const |
| Compatibility method with multi-dimensional interface for Gradient.
|
|
template<class PtrObj , typename MemFn , typename GradMemFn >
ROOT::Math::GradFunctor1D::GradFunctor1D |
( |
const PtrObj & |
p, |
|
|
MemFn |
memFn, |
|
|
GradMemFn |
gradFn |
|
) |
| |
|
inline |
construct from a pointer to class and two pointers to member functions, one for the function evaluation and the other for the derivative.
The member functions must take a double as argument and return a double
Definition at line 853 of file Functor.h.