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 Types | |
typedef FunctorImpl< IGradientFunctionOneDim > | Impl |
typedef IGradientFunctionOneDim::BaseFunc | ImplBase |
![]() | |
typedef IBaseFunctionOneDim | BaseFunc |
typedef IGradientOneDim | BaseGrad |
![]() | |
typedef IBaseFunctionOneDim | BaseFunc |
Public Member Functions | |
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. | |
![]() | |
virtual | ~IGradientFunctionOneDim () |
Virtual Destructor (no operations) | |
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. | |
![]() | |
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. | |
Private Member Functions | |
double | DoDerivative (double x) const |
function to evaluate the derivative with respect each coordinate. | |
double | DoEval (double x) const |
implementation of the evaluation function. Must be implemented by derived classes | |
Private Attributes | |
std::unique_ptr< Impl > | fImpl |
#include <Math/Functor.h>
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
specialized constructor from 2 std::function objects implementing double operator()(double x).
The first one for the function evaluation and the second one implementing the function derivative. This specialized constructor is introduced in order to use the class in Python passing Python user defined functions
|
inlinevirtual |
|
inline |
Copy constructor for Functor based on ROOT::Math::IGradFunction.
|
inlinevirtual |
Clone a function.
Each derived class will implement their version of the provate 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::IGradientOneDim.
implementation of the evaluation function. Must be implemented by derived classes
Implements ROOT::Math::IBaseFunctionOneDim.
|
inline |
|
private |