10 #ifndef ROOT_Minuit2_ParametricFunction 
   11 #define ROOT_Minuit2_ParametricFunction 
   45 class ParametricFunction : 
public FCNBase {
 
   59   ParametricFunction(
const std::vector<double>& params) : par(params) {}
 
   72   ParametricFunction(
int nparams) : par(nparams) {}
 
   76   virtual ~ParametricFunction() {}
 
   88   virtual void SetParameters(
const std::vector<double>& params)
 const {
 
   90     assert(params.size() == par.size());
 
  105   virtual const std::vector<double> & GetParameters()
 const { 
return par; }
 
  117   virtual unsigned int  NumberOfParameters()
 const { 
return par.size(); }
 
  133   virtual double operator()(
const std::vector<double>& x) 
const=0;
 
  154   virtual double operator()(
const std::vector<double>& x, 
const std::vector<double>& params)
 const {
 
  155     SetParameters(params);
 
  156     return operator()(x);
 
  174   virtual std::vector<double>  GetGradient(
const std::vector<double>& x) 
const;
 
  191   mutable std::vector<double> par;
 
  199 #endif  // ROOT_Minuit2_ParametricFunction