18 #ifndef POLY_WRITER_GUARD 19 #define POLY_WRITER_GUARD 32 virtual void consume(
const mpz_class& coef,
35 virtual void consume(
const mpz_class& coef,
const vector<mpz_class>& term);
49 bool firstGenerator) = 0;
51 const vector<mpz_class>& term,
52 bool firstGenerator) = 0;
virtual void doWriteHeader()=0
const VarNames & getNames() const
Defines the variables of a polynomial ring and facilities IO involving them.
virtual void consumeRing(const VarNames &names)
virtual void doWriteFooter(bool wasZero)=0
virtual void beginConsuming()
virtual void doneConsuming()
TermTranslator handles translation between terms whose exponents are infinite precision integers and ...
virtual void consume(const mpz_class &coef, const Term &term, const TermTranslator &translator)
virtual void doWriteTerm(const mpz_class &coef, const Term &term, const TermTranslator &translator, bool firstGenerator)=0
Term represents a product of variables which does not include a coefficient.