30 _idealsDeleter(_ideals),
32 _translator(translator) {
72 vector<Ideal*>::iterator end =
_ideals.end();
73 for (vector<Ideal*>::iterator it =
_ideals.begin(); it != end; ++it)
96 auto_ptr<Ideal> ideal(
_ideals.back());
118 sort(ideal.
begin(), ideal.
end(), comparator);
void exceptionSafePushBack(Container &container, auto_ptr< Element > pointer)
void canonicalizeIdeal(Ideal &ideal)
virtual void consume(const Term &term)
Consume a term.
virtual void beginConsumingList()
This method is not required to be called.
TermTranslator * _translator
virtual void doneConsuming()
Must be called once after each time beginConsuming has been called.
virtual void beginConsuming()
Tell the consumer to begin consuming an ideal.
vector< Ideal * > _ideals
CanonicalTermConsumer(auto_ptr< TermConsumer > consumer, size_t varCount, TermTranslator *translator=0)
The translator, if non-null, is used to identify exponents that map to zero, which influences the sor...
virtual void consumeRing(const VarNames &names)
Passes on the call immediately.
virtual void doneConsumingList()
Must be called once after each time beginConsumingList has been called.
auto_ptr< TermConsumer > _consumer
Represents a monomial ideal with int exponents.
Cont::const_iterator const_iterator
const_iterator end() const
const_iterator begin() const
TermTranslator handles translation between terms whose exponents are infinite precision integers and ...
Term represents a product of variables which does not include a coefficient.
size_t getVarCount() const
A predicate that sorts according to reverse lexicographic order on the translated values of a term.
Defines the variables of a polynomial ring and facilities IO involving them.