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