17 #ifndef BIG_IDEAL_GUARD
18 #define BIG_IDEAL_GUARD
35 void insert(
const vector<mpz_class>& term);
44 const vector<mpz_class>&
getTerm(
size_t term)
const;
46 void getLcm(vector<mpz_class>&
lcm)
const;
48 const mpz_class&
getExponent(
size_t term,
size_t var)
const;
50 void setExponent(
size_t term,
size_t var,
const mpz_class& exp);
55 const vector<mpz_class>&
operator[](
size_t index)
const;
64 bool contains(
const vector<mpz_class>& term)
const;
101 void print(FILE* file)
const;
102 void print(ostream& out)
const;
105 const vector<mpz_class>& b);
112 ostream&
operator<<(ostream& out,
const vector<BigIdeal>& ideals);
130 return _terms.back()[var];
ostream & operator<<(ostream &out, const BigIdeal &ideal)
void reserve(size_t capacity)
void eraseVar(size_t var)
void clearAndSetNames(const VarNames &names)
void swap(BigIdeal &ideal)
static bool bigTermCompare(const vector< mpz_class > &a, const vector< mpz_class > &b)
void sortGeneratorsUnique()
const vector< mpz_class > & getTerm(size_t term) const
mpz_class & getLastTermExponentRef(size_t var)
void renameVars(const VarNames &names)
void getLcm(vector< mpz_class > &lcm) const
bool contains(const vector< mpz_class > &term) const
vector< vector< mpz_class > > _terms
size_t getVarCount() const
bool operator==(const BigIdeal &b) const
void insert(const Ideal &ideal)
const VarNames & getNames() const
size_t getGeneratorCount() const
void projectVar(size_t var)
bool operator<(const BigIdeal &ideal) const
void print(FILE *file) const
vector< mpz_class > & operator[](size_t index)
bool containsIdentity() const
const mpz_class & getExponent(size_t term, size_t var) const
bool addVarToClearedIdeal(const char *var)
vector< mpz_class > & getLastTermRef()
void setExponent(size_t term, size_t var, const mpz_class &exp)
Represents a monomial ideal with int exponents.
TermTranslator handles translation between terms whose exponents are infinite precision integers and ...
Defines the variables of a polynomial ring and facilities IO involving them.
size_t getVarCount() const
Returns the current number of variables.
void lcm(Word *res, const Word *resEnd, const Word *a, const Word *b)