25 const Ideal& ideal,
const Term& multiply):
26 _algorithm(algorithm),
60 while ((*begin)[var] == 0) {
66 Exponent median = (*(begin + (distance(begin, end) - 1) / 2))[var];
101 fputs(str.str().c_str(), out);
105 out <<
"BigattiState(multiply: " <<
_multiply <<
"\n"
void freeState(auto_ptr< BigattiState > state)
void processState(auto_ptr< BigattiState > state)
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.
void singleDegreeSort(size_t var)
Cont::const_iterator const_iterator
size_t getTypicalExponent(size_t &var, Exponent &exp)
Sets var and exp such that var^exp is the typical non-zero exponent.
void insertReminimize(const Exponent *term)
const_iterator end() const
const_iterator begin() const
bool colonReminimize(const Exponent *colon)
size_t getVarCount() 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.
static void product(Exponent *res, const Exponent *a, const Exponent *b, size_t varCount)
Sets res equal to the product of a and b.
size_t getVarCount() const