29 #ifndef POLYNOMIAL_INCLUDED
30 #define POLYNOMIAL_INCLUDED
37 double coefficients[Degree+1];
42 double operator()(
double t )
const;
43 double integral(
double tMin ,
double tMax )
const;
45 int operator == (
const Polynomial& p)
const;
46 int operator != (
const Polynomial& p)
const;
47 int isZero(
void)
const;
52 Polynomial& operator += (
const Polynomial& p);
53 Polynomial& operator -= (
const Polynomial& p);
54 Polynomial operator - (
void)
const;
55 Polynomial operator + (
const Polynomial& p)
const;
56 Polynomial operator - (
const Polynomial& p)
const;
60 Polynomial& operator += (
double s );
61 Polynomial& operator -= (
double s );
62 Polynomial& operator *= (
double s );
63 Polynomial& operator /= (
double s );
64 Polynomial operator + (
double s )
const;
65 Polynomial operator - (
double s )
const;
66 Polynomial operator * (
double s )
const;
67 Polynomial operator / (
double s )
const;
69 Polynomial scale(
double s )
const;
70 Polynomial shift(
double t )
const;
72 Polynomial<Degree-1> derivative(
void)
const;
75 void printnl(
void)
const;
77 Polynomial& addScaled(
const Polynomial& p,
double scale);
79 static void Negate(
const Polynomial& in,Polynomial& out);
80 static void Subtract(
const Polynomial& p1,
const Polynomial& p2,Polynomial& q);
81 static void Scale(
const Polynomial& p,
double w,Polynomial& q);
82 static void AddScaled(
const Polynomial& p1,
double w1,
const Polynomial& p2,
double w2,Polynomial& q);
83 static void AddScaled(
const Polynomial& p1,
const Polynomial& p2,
double w2,Polynomial& q);
84 static void AddScaled(
const Polynomial& p1,
double w1,
const Polynomial& p2,Polynomial& q);
86 void getSolutions(
double c,std::vector<double>& roots,
double EPS)
const;
88 static Polynomial BSplineComponent(
int i );
91 #include "Polynomial.inl"
92 #endif // POLYNOMIAL_INCLUDED