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:
The function dimension is required when constructing the functor.
Public Types | |
typedef FunctorImpl< IGradientFunctionMultiDim > | Impl |
typedef IGradientFunctionMultiDim::BaseFunc | ImplBase |
![]() | |
typedef IBaseFunctionMultiDimTempl< T > | BaseFunc |
typedef IGradientMultiDimTempl< T > | BaseGrad |
![]() | |
typedef T | BackendType |
typedef IBaseFunctionMultiDimTempl< T > | BaseFunc |
Public Member Functions | |
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 evaluatiion, 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 | |
virtual | ~GradFunctor () |
Destructor (no operations) | |
ImplBase * | Clone () const |
Clone a function. | |
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 unsigned int | NDim () const=0 |
Retrieve the dimension of the function. | |
![]() | |
IBaseFunctionMultiDimTempl () | |
virtual | ~IBaseFunctionMultiDimTempl () |
virtual destructor | |
T | operator() (const T *x) const |
Evaluate the function at a point x[]. | |
![]() | |
virtual | ~IGradientMultiDimTempl () |
virual destructor | |
T | Derivative (const T *x, unsigned int icoord=0) const |
Return the partial derivative with respect to the passed coordinate. | |
Private Member Functions | |
double | DoDerivative (const double *x, unsigned int icoord) const |
double | DoEval (const double *x) const |
Private Attributes | |
std::unique_ptr< Impl > | fImpl |
#include <Math/Functor.h>
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
|
inline |
Copy constructor for functor based on ROOT::Math::IMultiGradFunction.
|
inlinevirtual |
Clone a function.
Each derived class must implement their version of the Clone method
Implements ROOT::Math::IBaseFunctionMultiDimTempl< T >.
|
inlinevirtual |
Retrieve the dimension of the function.
Implements ROOT::Math::IBaseFunctionMultiDimTempl< T >.
|
inline |
|
private |