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 269 of file Functor.h.
|
| 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.
|
|
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.
|
|
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 multi-dimensional interface for Gradient.
|
|
bool | HasGradient () const override |
|
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.
|
|
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 287 of file Functor.h.