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)
Represents a monomial ideal with int exponents.
TranslatedIdealComparator(TermTranslator &translator)
size_t getVarCount() const
size_t getVarCount() const
TermTranslator handles translation between terms whose exponents are infinite precision integers and ...
bool idealLessThanImpl(const MyIdeal &a, const MyIdeal &b, const MyTermCompare &predicate)
A predicate that sorts according to reverse lexicographic order on the translated values of a term...
bool idealLessThan(const Ideal &a, const Ideal &b, TermTranslator &translator)
const VarNames & getNames() const
A predicate that sorts according to reverse lexicographic order.