|
| Ideal (size_t varCount=0) |
| Initialize this object to the zero ideal in varCount variables. More...
|
|
| Ideal (const Term &term) |
| Initialize this object to the ideal generated by term. More...
|
|
| Ideal (const Ideal &ideal) |
| Initialize this object to be a copy of ideal. More...
|
|
| ~Ideal () |
|
const_iterator | begin () const |
|
const_iterator | end () const |
|
const Exponent * | operator[] (size_t index) const |
|
iterator | begin () |
|
iterator | end () |
|
Exponent *& | operator[] (size_t index) |
|
size_t | getVarCount () const |
|
size_t | getGeneratorCount () const |
|
bool | isIncomparable (const Exponent *term) const |
|
bool | contains (const Exponent *term) const |
|
bool | containsIdentity () const |
|
bool | strictlyContains (const Exponent *term) const |
|
bool | isMinimallyGenerated () const |
|
bool | isZeroIdeal () const |
|
bool | isIrreducible () const |
|
bool | isSquareFree () const |
|
bool | isStronglyGeneric () |
|
bool | isWeaklyGeneric () const |
|
bool | disjointSupport () const |
| Returns true if all pairs of generators have disjoint support. More...
|
|
void | getLcm (Exponent *lcm) const |
| Sets lcm to the least common multiple of all generators. More...
|
|
void | getGcd (Exponent *gcd) const |
| Sets gcd to the greatest common divisor of all generators. More...
|
|
void | getGcdAtExponent (Exponent *gcd, size_t var, Exponent exp) |
| Sets gcd to the greatest common divisor of those generators that raise the variable var to the power exp. More...
|
|
void | getGcdOfMultiplesOf (Exponent *gcd, const Exponent *divisor) |
| Sets gcd to the greatest common divisor of those generators that are divisible by divisor. More...
|
|
void | getLeastExponents (Exponent *least) const |
|
void | getSupportCounts (Exponent *counts) const |
| counts[var] will be the number of generators divisible by var. More...
|
|
size_t | getTypicalExponent (size_t &var, Exponent &exp) |
| Sets var and exp such that var^exp is the typical non-zero exponent. More...
|
|
size_t | getMostNonGenericExponent (size_t &var, Exponent &exp) |
| Sets var and exp such that var^exp is the most non-generic degree. More...
|
|
size_t | getTypicalNonGenericExponent (size_t &var, Exponent &exp) |
| Sets var and exp such that var^exp is the typical non-generic degree. More...
|
|
bool | getNonGenericExponent (size_t &var, Exponent &exp) |
| Sets var and exp such that var^exp is some non-generic degree. More...
|
|
const_iterator | getMultiple (size_t var) const |
|
bool | operator== (const Ideal &ideal) const |
| Rereturns true if *this equals ideal. More...
|
|
void | print (FILE *file) const |
|
void | print (ostream &out) const |
|
void | insert (const Exponent *term) |
|
void | insert (const Ideal &ideal) |
|
void | insert (size_t var, Exponent e) |
|
void | insertReminimize (const Exponent *term) |
|
void | insertReminimize (size_t var, Exponent e) |
|
void | minimize () |
|
void | sortReverseLex () |
|
void | sortLex () |
|
void | singleDegreeSort (size_t var) |
|
void | product (const Exponent *term) |
|
void | colon (const Exponent *by) |
|
void | colon (size_t var, Exponent e) |
|
bool | colonReminimize (const Exponent *colon) |
|
bool | colonReminimize (size_t var, Exponent e) |
|
void | remove (const_iterator it) |
|
void | removeMultiples (const Exponent *term) |
|
void | removeMultiples (size_t var, Exponent e) |
|
void | insertNonMultiples (const Exponent *term, const Ideal &ideal) |
|
void | insertNonMultiples (size_t var, Exponent e, const Ideal &ideal) |
|
void | removeStrictMultiples (const Exponent *term) |
|
void | removeDuplicates () |
|
void | clear () |
|
void | clearAndSetVarCount (size_t varCount) |
|
void | mapExponentsToZeroNoMinimize (const Term &zeroExponents) |
| Replaces the exponents from zeroExponents with zero and does not remove any non-minimal generators this may produce. More...
|
|
void | takeRadicalNoMinimize () |
| Replaces all generators with their support and does not remove any non-minimal generators this may produce. More...
|
|
Ideal & | operator= (const Ideal &ideal) |
|
void | swap (Ideal &ideal) |
|
template<class Predicate > |
bool | removeIf (Predicate pred) |
| Removes those generators m such that pred(m) evaluates to true. More...
|
|
Represents a monomial ideal with int exponents.
Definition at line 27 of file Ideal.h.
size_t Ideal::getMostNonGenericExponent |
( |
size_t & |
var, |
|
|
Exponent & |
exp |
|
) |
| |
Sets var and exp such that var^exp is the most non-generic degree.
A unordered pair of generators a and b is non-generic if a and b raise some var to the same non-zero exponent and lcm(a,b) is not strictly divisible by any generator. The most non-generic degree is the exponent that occurs most often as the shared degree for non-generic pairs. In case of ties some deterministic choice is made.
The return value is the number of non-generic pairs that concern the most non-generic degree. If there are no non-generic pairs (i.e. the ideal is generic) then the return value is zero and var=exp=0.
This method is not const since it may re-arrange the generators for efficiency.
Definition at line 271 of file Ideal.cpp.
size_t Ideal::getTypicalNonGenericExponent |
( |
size_t & |
var, |
|
|
Exponent & |
exp |
|
) |
| |
Sets var and exp such that var^exp is the typical non-generic degree.
A unordered pair of generators a and b is non-generic if a and b raise some var to the same non-zero exponent and lcm(a,b) is not strictly divisible by any generator. A degree var^exp is non-generic if it occurs as the shared degree for some non-generic pair. The typical non-generic degree is the non-generic degree that occurs most often among all generators. So it does not matter how non-generic the degree is, just that it is non-generic at all.
The return value is the number of generators that raise var to exp. If there are no non-generic pairs (i.e. the ideal is generic) then the return value is zero and var=exp=0.
This method is not const since it may re-arrange the generators for efficiency.
Definition at line 325 of file Ideal.cpp.