101 const vector<mpz_class> term) {
120 for (
size_t var = 0; var < term.
getVarCount(); ++var)
139 out <<
"/---- BigPolynomial of " <<
_coefTerms.size() <<
" terms:\n";
140 for (vector<BigCoefTerm>::const_iterator
it =
_coefTerms.begin();
142 out <<
' ' <<
it->coef <<
" ";
148 out <<
"----/ End of list.\n";
153 for (
size_t var = 0; var <
a.term.size(); ++var)
154 if (
a.term[var] !=
b.term[var])
155 return a.term[var] >
b.term[var];
156 return a.coef <
b.coef;
ostream & operator<<(ostream &out, const BigPolynomial &ideal)
void nameFactoryRegister(NameFactory< AbstractProduct > &factory)
Registers the string returned by ConcreteProduct::getStaticName() to a function that default-construc...
mpz_class & getLastCoef()
const vector< mpz_class > & getTerm(size_t index) const
size_t getTermCount() const
vector< BigCoefTerm > _coefTerms
void add(const mpz_class &coef, const vector< mpz_class > term)
size_t getVarCount() const
void clearAndSetNames(const VarNames &names)
const mpz_class & getCoef(size_t index) const
void renameVars(const VarNames &names)
void print(FILE *file) const
vector< mpz_class > & getLastTerm()
const VarNames & getNames() const
bool operator==(const BigPolynomial &poly) const
void sortTermsReverseLex()
static bool compareCoefTermsReverseLex(const BigCoefTerm &a, const BigCoefTerm &b)
TermTranslator handles translation between terms whose exponents are infinite precision integers and ...
Term represents a product of variables which does not include a coefficient.
size_t getVarCount() const
Defines the variables of a polynomial ring and facilities IO involving them.
size_t getVarCount() const
Returns the current number of variables.
bool operator==(const BigCoefTerm &coefTerm) const