27 #ifndef ROOT_Math_MultiNumGradFunction
28 #define ROOT_Math_MultiNumGradFunction
31 #ifndef ROOT_Math_IFunction
35 #ifndef ROOT_Math_WrappedFunction
73 template<
class FuncType>
128 double DoDerivative (
const double *
x,
unsigned int icoord )
const;
Interface (abstract class) for multi-dimensional functions providing a gradient calculation.
void SetOwnership(bool on=true)
~MultiNumGradFunction()
Destructor (no operations)
unsigned int NDim() const
Retrieve the dimension of the function.
ClassImp(TIterator) Bool_t TIterator return false
Compare two iterator objects.
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|.
double DoDerivative(const double *x, unsigned int icoord) const
function to evaluate the derivative with respect each coordinate.
double DoEval(const double *x) const
Implementation of the evaluation function.
MultiNumGradFunction(const IMultiGenFunction &f)
Constructor from a IMultiGenFunction interface.
static double GetDerivPrecision()
get precision value used for calculating the derivative step-size
IMultiGenFunction * Clone() const
Clone a function.
MultiNumGradFunction class to wrap a normal function in a gradient function using numerical gradient ...
unsigned int NCalls() const
Template class to wrap any C++ callable object implementing operator() (const double * x) in a multi-...
Documentation for the abstract class IBaseFunctionMultiDim.
virtual IBaseFunctionMultiDim * Clone() const =0
Clone a function.