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
| ~IParametricFunctionMultiDim() | |
| 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 | operator()(const double* x, const double* p) const | 
| ROOT::Math::IParametricFunctionMultiDim& | operator=(const ROOT::Math::IParametricFunctionMultiDim&) | 
| 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) | 

      Evaluate function at a point x and for given parameters p.
      This method does not change the internal status of the function (internal parameter values).
      If for some reason one prefers caching the parameter values, SetParameters(p) and then operator()(x) should be
      called.
      Use the pure virtual function DoEvalPar to implement it
      Implement the ROOT::Math::IBaseFunctionMultiDim interface DoEval(x) using the cached parameter values