117 const Term& leftTerm) {
126 for (
size_t right = 0; right < rightSize; ++right) {
virtual void doneConsuming()
virtual void consumeLeft(const mpz_class &leftCoef, const Term &leftTerm)
void getBigProjection(Projection &projection) const
virtual void consumeRing(const VarNames &names)
HilbertStrategy * _strategy
HilbertIndependenceConsumer(HilbertStrategy *strategy)
size_t getVarCount() const
void reset(CoefTermConsumer *parent, IndependenceSplitter &splitter, size_t varCount)
void freeConsumer(auto_ptr< HilbertIndependenceConsumer > consumer)
virtual void dispose()
Called when the task is no longer used but run has not and will not be called.
CoefTermConsumer * getLeftConsumer()
void reset(size_t newVarCount)
const_iterator begin() const
Projection _leftProjection
const Projection & getRightProjection() const
Defines the variables of a polynomial ring and facilities IO involving them.
size_t getRangeVarCount() const
virtual void beginConsuming()
void getRestProjection(Projection &projection) const
const Projection & getLeftProjection() const
RightConsumer(HilbertIndependenceConsumer *parent)
virtual void consume(const mpz_class &coef, const Term &term)
virtual void consumeRight(const mpz_class &coef, const Term &term)
virtual void run(TaskEngine &engine)
Does whatever work this task represents.
virtual void doneConsuming()
size_t getGeneratorCount() const
void inverseProject(Term &to, const Exponent *from) const
CoefTermConsumer * getRightConsumer()
TaskEngine handles a list of tasks that are to be carried out.
size_t getVarCount() const
virtual void consumeRing(const VarNames &names)
virtual void consume(const mpz_class &coef, const Term &term)
CoefTermConsumer * _parent
RightConsumer _rightConsumer
HilbertIndependenceConsumer * _parent
vector< mpz_class > _rightCoefs
void insert(const Exponent *term)
virtual void beginConsuming()
Projection _rightProjection
Term represents a product of variables which does not include a coefficient.
void clearAndSetVarCount(size_t varCount)