42 _bigTmpTerm(names.getVarCount()),
43 _tmpTerm(names.getVarCount()) {
74 for (
size_t var = 0; var < varCount; ++var) {
82 if (done[nextInCycle])
TermTranslator handles translation between terms whose exponents are infinite precision integers and ...
void swapVariables(size_t a, size_t b)
size_t getVarCount() const
Defines the variables of a polynomial ring and facilities IO involving them.
bool addVar(const string &name)
Adds the variable and returns true if name is not already a variable.
size_t getVarCount() const
Returns the current number of variables.
const string & getName(size_t index) const
The returned reference can become invalid next time addVar is called.
void clear()
Resets the number of variables to zero.
void operator=(const VarSorterCompare &)
bool operator()(size_t a, size_t b) const
VarSorterCompare(const VarNames &names)
void swap(hashtable< _Val, _Key, _HF, _Extract, _EqKey, _All > &__ht1, hashtable< _Val, _Key, _HF, _Extract, _EqKey, _All > &__ht2)
vector< mpz_class > _bigTmpTerm
VarSorter(const VarNames &names)
vector< size_t > _permutation
void getOrderedNames(VarNames &names)
void permute(vector< mpz_class > &term)