71 typedef Polynomial<T> TSelf;
72 typedef NumTraits<T> TNumTraits;
73 typedef typename util::CallTraits<T>::TValue TValue;
74 typedef typename util::CallTraits<T>::TParam TParam;
75 typedef typename util::CallTraits<T>::TReference TReference;
76 typedef typename util::CallTraits<T>::TConstReference TConstReference;
78 typedef std::vector<TValue> TCoefficients;
79 typedef typename TCoefficients::size_type size_type;
80 typedef typename TCoefficients::const_iterator const_iterator;
83 explicit Polynomial(TParam iScalar);
84 explicit Polynomial(
const TCoefficients& iCoefficients);
85 template <
typename InputIterator> Polynomial(InputIterator iBegin, InputIterator iEnd);
87 const TCoefficients& coefficients()
const;
88 const TValue operator[](
size_t iIndex)
const;
89 const TValue at(
size_t iIndex)
const;
91 const TValue operator()(TParam iX)
const;
93 const Polynomial<T>& operator+()
const;
94 const Polynomial<T> operator-()
const;
96 Polynomial<T>& operator+=(
const Polynomial<T>& iOther);
97 Polynomial<T>& operator-=(
const Polynomial<T>& iOther);
98 Polynomial<T>& operator*=(
const Polynomial<T>& iOther);
100 Polynomial<T>& operator+=(TParam iScalar);
101 Polynomial<T>& operator-=(TParam iScalar);
102 Polynomial<T>& operator*=(TParam iScalar);
103 Polynomial<T>& operator/=(TParam iScalar);
105 Polynomial<T> derivative()
const;
106 Polynomial<T> integral()
const;
107 Polynomial<T> pow(
size_t iPower)
const;
109 const size_type
size()
const;
110 const const_iterator
begin()
const;
111 const const_iterator
end()
const;
113 static Polynomial<T>
one();
114 static Polynomial<T>
x();