Documentation for the abstract class IBaseParam.
    It defines the interface for dealing with the function parameters
    This is used only for internal convinience, to avoid redefining the Parameter API
    for the one and the multi-dim functions.
    Concrete class should derive from ROOT::Math::IParamFunction and not from this class.
    @ingroup  ParamFunc
| virtual | ~IParametricGradFunctionMultiDim() | 
| virtual ROOT::Math::IBaseFunctionMultiDim* | ROOT::Math::IBaseFunctionMultiDim::Clone() const | 
| virtual unsigned int | ROOT::Math::IBaseFunctionMultiDim::NDim() const | 
| virtual unsigned int | ROOT::Math::IBaseParam::NPar() const | 
| double | ROOT::Math::IParametricFunctionMultiDim::operator()(const double* x, const double* p) const | 
| ROOT::Math::IParametricGradFunctionMultiDim& | operator=(const ROOT::Math::IParametricGradFunctionMultiDim&) | 
| double | ParameterDerivative(const double* x, unsigned int ipar = 0) const | 
| double | ParameterDerivative(const double* x, const double* p, unsigned int ipar = 0) const | 
| void | ParameterGradient(const double* x, double* grad) const | 
| virtual void | ParameterGradient(const double* x, const double* p, double* grad) const | 
| virtual string | ROOT::Math::IBaseParam::ParameterName(unsigned int i) const | 
| virtual const double* | ROOT::Math::IBaseParam::Parameters() const | 
| virtual void | ROOT::Math::IBaseParam::SetParameters(const double* p) | 
| virtual double | DoParameterDerivative(const double* x, const double* p, unsigned int ipar) const | 

      Evaluate the all the derivatives (gradient vector) of the function with respect to the parameters at a point x.
      It is optional to be implemented by the derived classes for better efficiency
      Evaluate the partial derivative w.r.t a parameter ipar from values and parameters
      Evaluate all derivatives using cached parameter values
      Evaluate partial derivative using cached parameter values