25 const Ideal& ideal,
const Term& multiply):
51 return _ideal.getVarCount();
57 _ideal.singleDegreeSort(var);
60 while ((*begin)[var] == 0) {
66 Exponent median = (*(begin + (distance(begin, end) - 1) / 2))[var];
72 return _ideal.getTypicalExponent(var, exp);
76 _ideal.singleDegreeSort(var);
81 _ideal.colonReminimize(pivot);
87 _ideal.insertReminimize(pivot);
91 _algorithm->processState(unique_ptr<BigattiState>(
this));
95 _algorithm->freeState(unique_ptr<BigattiState>(
this));
101 fputs(str.str().c_str(), out);
105 out <<
"BigattiState(multiply: " <<
_multiply <<
"\n"
void colonStep(const Term &term)
size_t getTypicalExponent(size_t &var, Exponent &exp)
virtual void run(TaskEngine &tasks)
Does whatever work this task represents.
const Term & getMultiply() const
BigattiHilbertAlgorithm * _algorithm
size_t getVarCount() const
void addStep(const Term &term)
BigattiState(BigattiHilbertAlgorithm *algorithm, const Ideal &ideal, const Term &_multiply)
const Ideal & getIdeal() const
virtual void dispose()
Called when the task is no longer used but run has not and will not be called.
Exponent getMedianPositiveExponentOf(size_t var)
void singleDegreeSort(size_t var)
Represents a monomial ideal with int exponents.
Cont::const_iterator const_iterator
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
This header file includes common definitions and is included as the first line of code in every imple...