28 _translator(translator) {
32 template<
class MyIdeal,
class MyTermCompare>
35 const MyTermCompare& predicate) {
36 ASSERT(a.getVarCount() == b.getVarCount());
38 for (
size_t term = 0; term < a.getGeneratorCount(); ++term) {
39 if (term == b.getGeneratorCount())
42 if (predicate(a[term], b[term]))
44 if (predicate(b[term], a[term]))
47 ASSERT(a.getGeneratorCount() <= b.getGeneratorCount());
static bool bigTermCompare(const vector< mpz_class > &a, const vector< mpz_class > &b)
const VarNames & getNames() const
Represents a monomial ideal with int exponents.
size_t getVarCount() const
A predicate that sorts according to reverse lexicographic order.
TermTranslator handles translation between terms whose exponents are infinite precision integers and ...
size_t getVarCount() const
TranslatedIdealComparator(TermTranslator &translator)
A predicate that sorts according to reverse lexicographic order on the translated values of a term.
bool idealLessThan(const BigIdeal &a, const BigIdeal &b)
bool idealLessThanImpl(const MyIdeal &a, const MyIdeal &b, const MyTermCompare &predicate)