|
| KLPolEntry () |
|
| KLPolEntry (const KLPol &p) |
|
size_t | hashCode (size_t modulus) const |
| calculate a hash value in [0,modulus[, where modulus is a power of 2 More...
|
|
bool | operator!= (Pooltype::const_reference e) const |
|
| Safe_Poly () |
|
| Safe_Poly (Degree d, C c) |
|
void | safeAdd (const Safe_Poly &p, Degree d, C c) |
| Adds x^d.c.q, to *this, watching for overflow, assuming |c>0|. More...
|
|
void | safeAdd (const Safe_Poly &p, Degree d=0) |
|
void | safeDivide (C c) |
| Divides polynomial by scalar c, throwing an error is division is inexact. More...
|
|
void | safeQuotient (Degree d=0) |
|
void | safeSubtract (const Safe_Poly &p, Degree d, C c) |
| Subtracts x^d.c.q from *this, watching for underflow, assuming |c>0|. More...
|
|
void | safeSubtract (const Safe_Poly &p, Degree d=0) |
|
| Polynomial () |
|
| Polynomial (C c) |
|
| Polynomial (Degree d, C c) |
| Constructs cX^d. More...
|
|
| Polynomial (Degree d, const Polynomial &Q) |
|
template<typename U > |
| Polynomial (const Polynomial< U > &src) |
|
void | swap (Polynomial &other) |
|
const C & | operator[] (Degree i) const |
|
const C | coef (Degree i) const |
|
bool | operator== (const Polynomial &q) const |
|
bool | operator!= (const Polynomial &q) const |
|
bool | operator< (const Polynomial &q) const |
| Operator < is the default from the standard library < on vector. More...
|
|
std::vector< C >::const_iterator | begin () const |
|
std::vector< C >::const_iterator | end () const |
|
Degree | degree () const |
|
Degree | size () const |
|
bool | isZero () const |
|
bool | multi_term () const |
|
C | up_remainder (C c, Degree d) const |
|
C & | operator[] (Degree j) |
|
Polynomial & | operator+= (const Polynomial &q) |
|
Polynomial & | operator-= (const Polynomial &q) |
|
Polynomial & | subtract_from (const Polynomial &p) |
|
Polynomial & | operator*= (C) |
|
Polynomial & | operator/= (C) |
|
Polynomial | operator* (C c) const |
|
Polynomial | operator* (const Polynomial &q) const |
|
Polynomial & | operator*= (const Polynomial &q) |
|
Polynomial | operator+ (const Polynomial &q) const |
|
Polynomial | operator- (const Polynomial &q) const |
|
Polynomial | operator- () const |
|
C | factor_by (C c, Degree d) |
|
std::ostream & | print (std::ostream &strm, const char *x) const |
|
size_t atlas::kl::KLPolEntry::hashCode |
( |
size_t |
modulus | ) |
const |
|
inline |
calculate a hash value in [0,modulus[, where modulus is a power of 2
The function is in fact evaluation of the polynomial (with coefficients interpreted in Z) at the point 2^21+2^13+2^8+2^5+1=2105633, which can be calculated quickly (without multiplications) and which gives a good spread (which is not the case if 2105633 is replaced by a small number, because the evaluation values will not grow fast enough for low degree polynomials!).