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:
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. | |
![]() | |
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. | |
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 | |
![]() | |
typedef IBaseFunctionOneDim | BaseFunc |
typedef IGradientFunctionOneDim | BaseGrad |
![]() | |
typedef IBaseFunctionOneDim | BaseFunc |
#include <Math/Functor.h>
|
default |
Default constructor.
Construct from an object with the right signature, implementing both operator() (double x)
and Derivative(double x)
.
|
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.