19#ifndef TERM_ORDER_GUARD
20#define TERM_ORDER_GUARD
bool equals(const Exponent *a, const Exponent *b, size_t varCount)
Returns whether the entries of a are equal to the entries of b.
int lexCompare(const Exponent *a, const Exponent *b, size_t varCount)
Indicates how a relates to b according to the lexicographic term order where .
unique_ptr< TermPredicate > createTermPredicate(const string &prefix, size_t varCount=0)
Returns the predicate whose name has the given prefix.
int reverseLexCompare(const Exponent *a, const Exponent *b, size_t varCount)
Indicates how a relates to b according to the reverse lexicographic term order where .
EqualsPredicate(size_t varCount=0)
virtual bool doPredicate(const Exponent *a, const Exponent *b) const
virtual bool doPredicate(const Exponent *a, const Exponent *b) const
static const char * staticGetName()
LexComparator(size_t varCount=0)
virtual bool doPredicate(const Exponent *a, const Exponent *b) const
ReverseLexComparator(size_t varCount=0)
static const char * staticGetName()
ReverseSingleDegreeComparator(size_t var, size_t varCount=0)
virtual bool doPredicate(const Exponent *a, const Exponent *b) const
SingleDegreeComparator(size_t var, size_t varCount=0)
virtual bool doPredicate(const Exponent *a, const Exponent *b) const
StlTermPredicate(const TermPredicate &pred)
bool operator()(const T &a, const T &b) const
const TermPredicate & _pred
size_t getVarCount() const
bool operator()(const Exponent *a, const Term &b) const
TermPredicate(size_t varCount=0)
bool operator()(const Term &a, const Term &b) const
bool operator()(const Term &a, const Exponent *b) const
virtual bool doPredicate(const Exponent *a, const Exponent *b) const =0
bool operator()(const Exponent *a, const Exponent *b) const
void setVarCount(size_t varCount)
Term represents a product of variables which does not include a coefficient.
size_t getVarCount() const