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