31 #ifndef ROOT_Math_Polynomial
32 #define ROOT_Math_Polynomial
63 class Polynomial :
public ParamFunction<IParamGradFunction>,
64 public IGradientOneDim
70 typedef ParamFunction<IParamGradFunction> ParFunc;
76 Polynomial(
unsigned int n = 0);
81 Polynomial(
double a,
double b);
86 Polynomial(
double a,
double b,
double c);
91 Polynomial(
double a,
double b,
double c,
double d);
96 Polynomial(
double a,
double b,
double c,
double d,
double e);
99 virtual ~Polynomial() {}
113 const std::vector<std::complex <double> > & FindRoots();
121 std::vector<double > FindRealRoots();
128 const std::vector<std::complex <double> > & FindNumRoots();
133 unsigned int Order()
const {
return fOrder; }
136 IGenFunction * Clone()
const;
143 void FdF (
double x,
double & f,
double & df)
const {
151 double DoEvalPar (
double x,
const double * p )
const ;
153 double DoDerivative (
double x)
const ;
155 double DoParameterDerivative(
double x,
const double * p,
unsigned int ipar)
const;
162 mutable std::vector<double> fDerived_params;
166 std::vector< std::complex < double > > fRoots;