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;