MultiNumGradFunction class to wrap a normal function in a gradient function using numerical gradient calculation provided by the class Derivator (based on GSL numerical derivation)
Definition at line 49 of file MultiNumGradFunction.h.
Public Member Functions | |
MultiNumGradFunction (const IMultiGenFunction &f) | |
Constructor from a IMultiGenFunction interface. | |
template<class FuncType > | |
MultiNumGradFunction (FuncType f, int n) | |
Constructor from a generic function (pointer or reference) and number of dimension implementing operator () (double * x) | |
~MultiNumGradFunction () override | |
Destructor (no operations) | |
IMultiGenFunction * | Clone () const override |
Clone a function. | |
unsigned int | NCalls () const |
unsigned int | NDim () const override |
Retrieve the dimension of the function. | |
void | SetOwnership (bool on=true) |
Public Member Functions inherited from ROOT::Math::IGradientFunctionMultiDimTempl< T > | |
T | Derivative (const T *x, unsigned int icoord, T *previous_grad, T *previous_g2, T *previous_gstep) const |
In some cases, the derivative algorithm will use information from the previous step, these can be passed in with this overload. | |
T | Derivative (const T *x, unsigned int icoord=0) const |
Return the partial derivative with respect to the passed coordinate. | |
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 void | GradientWithPrevResult (const T *x, T *grad, T *previous_grad, T *previous_g2, T *previous_gstep) const |
In some cases, the gradient algorithm will use information from the previous step, these can be passed in with this overload. | |
bool | HasGradient () const |
virtual bool | returnsInMinuit2ParameterSpace () const |
Public Member Functions inherited from ROOT::Math::IBaseFunctionMultiDimTempl< T > | |
virtual | ~IBaseFunctionMultiDimTempl ()=default |
T | operator() (const T *x) const |
Evaluate the function at a point x[]. | |
Static Public Member Functions | |
static double | GetDerivPrecision () |
get precision value used for calculating the derivative step-size | |
static void | SetDerivPrecision (double eps) |
precision value used for calculating the derivative step-size h = eps * |x|. | |
Private Member Functions | |
double | DoDerivative (const double *x, unsigned int icoord) const override |
double | DoEval (const double *x) const override |
Private Attributes | |
unsigned int | fDim |
const IMultiGenFunction * | fFunc |
unsigned int | fNCalls |
bool | fOwner |
Static Private Attributes | |
static double | fgEps = 0.001 |
Additional Inherited Members | |
Public Types inherited from ROOT::Math::IGradientFunctionMultiDimTempl< T > | |
typedef IBaseFunctionMultiDimTempl< T > | BaseFunc |
typedef IGradientFunctionMultiDimTempl< T > | BaseGrad |
Public Types inherited from ROOT::Math::IBaseFunctionMultiDimTempl< T > | |
typedef T | BackendType |
typedef IBaseFunctionMultiDimTempl< T > | BaseFunc |
#include <Math/MultiNumGradFunction.h>
|
inline |
Constructor from a IMultiGenFunction interface.
Definition at line 57 of file MultiNumGradFunction.h.
|
inline |
Constructor from a generic function (pointer or reference) and number of dimension implementing operator () (double * x)
Definition at line 70 of file MultiNumGradFunction.h.
|
inlineoverride |
Destructor (no operations)
Definition at line 82 of file MultiNumGradFunction.h.
|
inlineoverridevirtual |
Clone a function.
Each derived class must implement their version of the Clone method.
Implements ROOT::Math::IBaseFunctionMultiDimTempl< T >.
Definition at line 93 of file MultiNumGradFunction.h.
|
overrideprivate |
Definition at line 42 of file MultiNumGradFunction.cxx.
Definition at line 118 of file MultiNumGradFunction.h.
|
static |
get precision value used for calculating the derivative step-size
Definition at line 56 of file MultiNumGradFunction.cxx.
|
inline |
Definition at line 91 of file MultiNumGradFunction.h.
|
inlineoverridevirtual |
Retrieve the dimension of the function.
Reimplemented from ROOT::Math::IGradientFunctionMultiDimTempl< T >.
Definition at line 89 of file MultiNumGradFunction.h.
|
static |
precision value used for calculating the derivative step-size h = eps * |x|.
The default is 0.001, give a smaller in case function chanes rapidly
Definition at line 54 of file MultiNumGradFunction.cxx.
|
inline |
Definition at line 105 of file MultiNumGradFunction.h.
|
private |
Definition at line 128 of file MultiNumGradFunction.h.
|
private |
Definition at line 127 of file MultiNumGradFunction.h.
|
staticprivate |
Definition at line 132 of file MultiNumGradFunction.h.
|
mutableprivate |
Definition at line 129 of file MultiNumGradFunction.h.
|
private |
Definition at line 130 of file MultiNumGradFunction.h.