17 #ifndef HILBERT_INDEPENDENCE_CONSUMER
18 #define HILBERT_INDEPENDENCE_CONSUMER
48 virtual void consume(
const mpz_class& coef,
const Term& term);
64 virtual void consume(
const mpz_class& coef,
const Term& term);
71 virtual void consumeLeft(
const mpz_class& leftCoef,
const Term& leftTerm);
virtual void doneConsuming()
HilbertIndependenceConsumer * _parent
virtual void beginConsuming()
RightConsumer(HilbertIndependenceConsumer *parent)
virtual void consumeRing(const VarNames &names)
virtual void consume(const mpz_class &coef, const Term &term)
virtual void consumeRing(const VarNames &names)
CoefTermConsumer * getRightConsumer()
const Projection & getRightProjection() const
HilbertStrategy * _strategy
RightConsumer _rightConsumer
virtual void consumeRight(const mpz_class &coef, const Term &term)
virtual void run(TaskEngine &engine)
Does whatever work this task represents.
void reset(CoefTermConsumer *parent, IndependenceSplitter &splitter, size_t varCount)
vector< mpz_class > _rightCoefs
Projection _leftProjection
virtual void doneConsuming()
virtual void beginConsuming()
const Projection & getLeftProjection() const
virtual void consumeLeft(const mpz_class &leftCoef, const Term &leftTerm)
virtual void dispose()
Called when the task is no longer used but run has not and will not be called.
CoefTermConsumer * getLeftConsumer()
CoefTermConsumer * _parent
HilbertIndependenceConsumer(HilbertStrategy *strategy)
virtual void consume(const mpz_class &coef, const Term &term)
Projection _rightProjection
Represents a monomial ideal with int exponents.
TaskEngine handles a list of tasks that are to be carried out.
A Task object represents a unit of work that is performed when the method run() is called.
Term represents a product of variables which does not include a coefficient.
Defines the variables of a polynomial ring and facilities IO involving them.