26 #ifndef OPENF4_TAGGED_POLYNOMIAL_H
27 #define OPENF4_TAGGED_POLYNOMIAL_H
43 template <
typename Element>
127 Element
getLC()
const;
265 template <
typename Element>
266 std::ostream & operator<<(std::ostream & stream, TaggedPolynomial<Element>
const & taggedPolynomial);
273 template <
typename Element>
281 template <
typename Element>
289 template <
typename Element>
297 template <
typename Element>
298 bool operator<(TaggedPolynomial<Element>
const & taggedPolynomial1,
TaggedPolynomial<Element> const & taggedPolynomial2);
305 template <
typename Element>
306 bool operator<=(TaggedPolynomial<Element>
const & taggedPolynomial1,
TaggedPolynomial<Element> const & taggedPolynomial2);
314 template <
typename Element>
323 template <
typename Element>
332 template <
typename Element>
341 template <
typename Element>
350 template <
typename Element>
359 template <
typename Element>
364 #include "../src/tagged-polynomial.inl"
367 #endif // OPENF4_TAGGED_POLYNOMIAL_H
TaggedPolynomial & operator*=(Monomial const &monomial)
Overload the operator *= to multiply this with a monomial.
static MonomialArray * MONOMIAL_ARRAY
Represent a tagged polynomial.
void resetSimplyrules()
Reset the simplyrules of this.
int getNbTerm() const
Get the number of terms of this.
TaggedPolynomial()
Constructor.
Wrapper for config.h in order to avoid multiple definitions.
Declaration of class Polynomial.
NodeList< Element > const * getPolynomialBeginConst() const
Get a constant iterator on the beginning of the polynomial.
Represent a array of monomials.
void printTaggedPolynomial(std::ostream &stream) const
Print the polynomial and the _simplyrules of this.
int getSimplyrule(int index) const
Get _simplyrules[i].
bool isEmpty()
Test if the polynomial is empty or not.
Term< Element > operator*(Monomial const &mon, Term< Element > const &term)
Overload the operator *.
Element getLC() const
Get the leading coefficient of this.
bool operator==(TaggedPolynomial< Element > const &taggedPolynomial1, TaggedPolynomial< Element > const &taggedPolynomial2)
Overload the operator ==.
Polynomial< Element > _polynomial
void setPolynomial(Polynomial< Element > &&polynomial)
Set the polynomial of this, but do not modify the simplyrules.
TaggedPolynomial & operator=(TaggedPolynomial const &taggedPolynomial)
Overload the operator =.
bool operator>=(TaggedPolynomial< Element > const &taggedPolynomial1, TaggedPolynomial< Element > const &taggedPolynomial2)
Overload the operator >=.
static void setMonomialArray(MonomialArray *monomialArray)
Set the monomial array to use.
void setTaggedPolynomial(TaggedPolynomial const &taggedPolynomial, uint8_t const *varlist)
Set this = taggedPolynomial * monomial. Do not modify the simplyrules.
int compareTaggedPolynomial(TaggedPolynomial const &taggedPolynomial) const
Compare this with taggedPolynomial.
const Term< Element > & getLT() const
Get the leading term of this.
NodeList< Element > * getPolynomialBegin()
Get an iterator on the beginning of the polynomial.
Polynomial< Element > & getPolynomial()
Get the polynomial of this.
Represent a node of the single chained list.
bool operator>(Term< Element > const &term1, Term< Element > const &term2)
Overload the operator >.
void setSimplyrule(int index, int numPol)
Set _simplyrules[i].
Polynomial< Element > const & getPolynomialConst() const
Get the polynomial of this.
int getLM() const
Get the number of the leading monomial of this.