25 _idealCacheDeleter(_idealCache),
61 if ((
entry.ideal->getGeneratorCount() % 2) == 1)
70 if (
entry.ideal->getGeneratorCount() == 2) {
88 if (
entry.ideal->getGeneratorCount() == 3) {
96 if (
entry.ideal->getGeneratorCount() == 4 &&
124 ++
entry.extraSupport;
148 entry.extraSupport = 0;
212 if ((*
it)[var] == 0 && (*it)[
other] > 0) {
228 for (
size_t var = 0; var <
varCount; ++var) {
254 if (
it == ideal.
end()) {
264 for (
size_t var = 0; var <
varCount; ++var) {
void exceptionSafePushBack(Container &container, auto_ptr< Element > pointer)
void nameFactoryRegister(NameFactory< AbstractProduct > &factory)
Registers the string returned by ConcreteProduct::getStaticName() to a function that default-construc...
bool canSimplify(size_t var, const Ideal &ideal, const Term &counts)
vector< Ideal * > _idealCache
void computeCoefficient(Ideal &ideal)
void freeIdeal(auto_ptr< Ideal > ideal)
bool stepComputation(Entry &entry, Entry &newEntry)
size_t eliminate1Counts(Ideal &ideal, Term &counts, bool &negate)
auto_ptr< Ideal > getNewIdeal()
const mpz_class & getLastCoefficient()
Represents a monomial ideal with int exponents.
void remove(const_iterator it)
const_iterator getMultiple(size_t var) const
Cont::const_iterator const_iterator
const_iterator end() const
const_iterator begin() const
bool colonReminimize(const Exponent *colon)
size_t getVarCount() const
Term represents a product of variables which does not include a coefficient.
void reset(size_t newVarCount)
static size_t getSizeOfSupport(const Exponent *a, size_t varCount)
Returns the number of variables such that divides .
static bool isSquareFree(const Exponent *a, size_t varCount)
Returns whether a is square free, i.e. for each where .
static size_t getFirstMaxExponent(const Exponent *a, size_t varCount)
Returns a var such that a[var] >= a[i] for all i.