27 #ifndef ROOT_Math_MultiNumGradFunction 28 #define ROOT_Math_MultiNumGradFunction 69 template<
class FuncType>
124 double DoDerivative (
const double *
x,
unsigned int icoord )
const;
Interface (abstract class) for multi-dimensional functions providing a gradient calculation.
IMultiGenFunction * Clone() const
Clone a function.
Namespace for new ROOT classes and functions.
void SetOwnership(bool on=true)
~MultiNumGradFunction()
Destructor (no operations)
double DoDerivative(const double *x, unsigned int icoord) const
function to evaluate the derivative with respect each coordinate.
virtual IBaseFunctionMultiDimTempl< T > * Clone() const =0
Clone a function.
unsigned int NCalls() const
const IMultiGenFunction * fFunc
MultiNumGradFunction(FuncType f, int n)
Constructor from a generic function (pointer or reference) and number of dimension implementiong oper...
static void SetDerivPrecision(double eps)
precision value used for calculating the derivative step-size h = eps * |x|.
MultiNumGradFunction(const IMultiGenFunction &f)
Constructor from a IMultiGenFunction interface.
static double GetDerivPrecision()
get precision value used for calculating the derivative step-size
Documentation for the abstract class IBaseFunctionMultiDim.
MultiNumGradFunction class to wrap a normal function in a gradient function using numerical gradient ...
Template class to wrap any C++ callable object implementing operator() (const double * x) in a multi-...
Namespace for new Math classes and functions.
unsigned int NDim() const
Retrieve the dimension of the function.
double DoEval(const double *x) const