26 #ifndef F4_POLYNOMIAL_H
27 #define F4_POLYNOMIAL_H
46 template <
typename Element>
128 Element
getLC()
const;
238 template <
typename Element>
239 std::ostream & operator<<(std::ostream & stream, Polynomial<Element>
const & polynomial);
247 template <
typename Element>
256 template <
typename Element>
265 template <
typename Element>
274 template <
typename Element>
283 template <
typename Element>
292 template <
typename Element>
297 #include "../src/polynomial.inl"
300 #endif // F4_POLYNOMIAL_H
Element getCoefficient(int numMon) const
Get the coefficient of the term of monomial numMon.
ElementGF2Extension< baseType > operator*(ElementGF2Extension< baseType > const &element1, ElementGF2Extension< baseType > const &element2)
Overload the operator *.
void printPolynomial(std::ostream &stream) const
Print the polynomial.
NodeList< Element > * emplaceOn(NodeList< Element > *pos, Element coeff, int numMon)
Add a term after pos. Beware to keep a correct order.
int getNbTerm() const
Get the number of terms of this.
Polynomial & operator*=(Monomial const &monomial)
Overload the operator *= to multiply this with a monomial. Prefer multNumMon(int numMon) if the monom...
bool isEmpty()
Test if the polynomial is empty or not.
Declaration of class SingleList.
Represent a single chained list.
NodeList< Element > const * getPolynomialBeginConst() const
Get a constant iterator on the beginning of the polynomial.
void normalize()
Normalize this.
NodeList< Element > * emplaceAfter(NodeList< Element > *pos, Element coeff, int numMon)
Add a term after pos. Beware to keep a correct order.
Wrapper for config.h in order to avoid multiple definitions.
SingleList< Element > _polynomial
NodeList< Element > * getPolynomialBegin()
Get an iterator on the beginning of the polynomial.
void deleteLT()
Delete the leading term of this.
void clear()
Delete all the terms.
int getLM() const
Get the number of the leading monomial of this.
void deleteAfter(NodeList< Element > *it)
Erase all the term from it to the end of the polynomial.
NodeList< Element > * getPolynomialBeforeBegin()
Get an iterator before the beginning of the polynomial.
const Term< Element > & getLT() const
Get the leading term of this.
Element getLC() const
Get the leading coefficient of this.
Represent a node of the single chained list.
Polynomial & operator=(Polynomial const &polynomial)
Overload the operator =.