53 _strategy->freeConsumer(unique_ptr<HilbertIndependenceConsumer>(
this));
110 _parent->consumeRight(coef, term);
117 const Term& leftTerm) {
124 size_t rightSize =
_rightTerms.getGeneratorCount();
126 for (
size_t right = 0; right < rightSize; ++right) {
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
void getRestProjection(Projection &projection) const
void getBigProjection(Projection &projection) const
TaskEngine handles a list of tasks that are to be carried out.
Term represents a product of variables which does not include a coefficient.
size_t getVarCount() const
Defines the variables of a polynomial ring and facilities IO involving them.
This header file includes common definitions and is included as the first line of code in every imple...