48SparseMonomial: pointer to an array of ints. First is the length. [len, v1, e1, v2, e2, ..., vr, er]
50 in comm
case: v1 < v2 < ...< vr;
51 SparseMonomial::Iterator: i.var, i.exponent, or *i = <i.var, i.exponent>
54 AllocatedSparseMonomial(sizinginfo)
55 LCM(a, b, allocatedspace) --> returns a SparseMonomial.
173 stash *mi_stash0 =
nullptr);
177 stash *mi_stash0 =
nullptr);
187 int topvar()
const {
return (
mi ==
nullptr ? -1 :
mi->var); }
280 void *
next(
void *
p)
const;
281 void *
prev(
void *
p)
const;
282 int valid(
void *
p)
const {
return (
p !=
nullptr); }
varpower::ConstExponents const_varpower
Variable-length sparse (variable, exponent) encoding of monomials.
exponents::ConstExponents const_exponents
Dense exponent-vector template [e_0, ..., e_{nvars-1}] for monomial operations.
Thin RAII wrapper around memtailor::Arena providing bump-pointer array allocation with optional mutex...
friend bool operator!=(const Iterator &a, const Iterator &b)
std::forward_iterator_tag iterator_category
Iterator(const MonomialIdeal &MI, Nmi_node *p)
std::ptrdiff_t difference_type
Iterator(const MonomialIdeal &MI, int)
reference operator*() const
const MonomialIdeal & mMonomialTable
friend bool operator==(const Iterator &a, const Iterator &b)
Iterator(const MonomialIdeal &MI)
Bidirectional forward iterator over the Bags stored in a MonomialIdeal.
int search(const_varpower m, Bag *&b) const
Nmi_node * next(Nmi_node *p) const
void do_node(Nmi_node *p, int indent, int disp) const
Nmi_node * last_node() const
virtual unsigned int computeHashValue() const
MonomialIdeal * erase(const_varpower m) const
int search_expvector(const_exponents m, Bag *&b) const
void insert_minimal(Bag *b)
bool is_equal(const MonomialIdeal &mi) const
MonomialIdeal * operator+(const MonomialIdeal &F) const
void debug_out(int disp=1) const
int n_pure_powers() const
Nmi_node * new_leaf_mi_node(int v, int e, Bag *b)
MonomialIdeal * quotient(const_varpower m) const
void delete_mi_node(Nmi_node *p)
Iterator beginAtLast() const
MonomialIdeal(const PolynomialRing *RR, stash *mi_stash=nullptr)
MonomialIdeal * sat(const MonomialIdeal &J) const
MonomialIdeal * operator*(const MonomialIdeal &G) const
void find_all_divisors(const_exponents exp, VECTOR(Bag *)&b) const
void text_out(buffer &o) const
Nmi_node * first_node() const
friend class AssociatedPrimes
MonomialIdeal * copy() const
friend class MinimalPrimes
void remove_MonomialIdeal()
void do_tree(Nmi_node *p, int depth, int indent, int disp) const
void insert1(Nmi_node *&p, Bag *b)
MonomialIdeal * intersect(const_varpower m) const
bool isWellFormed() const
void insert_w_deletions(Bag *b, VECTOR(Bag *) &deletions)
MonomialIdeal * operator-(const MonomialIdeal &F) const
MonomialIdeal * borel() const
const_varpower second_elem() const
Nmi_node * new_internal_mi_node(int v, int e, Nmi_node *d)
MonomialIdeal * alexander_dual(const M2_arrayint a) const
const PolynomialRing * get_ring() const
MonomialIdeal * radical() const
Nmi_node * prev(Nmi_node *p) const
void remove1(Nmi_node *p)
const_varpower first_elem() const
Engine-side monomial ideal: a decision tree of Nmi_nodes storing the (typically minimal) generators b...
enum Nmi_node::@355074146072071371146336002330246050056154227161 tag
const gc_vector< int > & monom() const
gc_vector< int > & monom()
void insert_to_left(Nmi_node *q)
union Nmi_node::@215171170000357111350013011034226177066064152112 val
friend class AssociatedPrimes
friend class MinimalPrimes
friend class MonomialIdeal
Internal tree node of the MonomialIdeal decision tree.
Abstract base for the engine's polynomial-ring hierarchy.
int_bag / Bag — minimal (payload, varpower monomial) carrier shared by monomial-ideal code.
stash and doubling_stash — legacy size-class allocator interfaces, now stubbed to plain GC allocation...
typename std::vector< T, gc_allocator< T > > gc_vector
a version of the STL vector, which allocates its backing memory with gc.
PolynomialRing — abstract polynomial-ring base, the engine's most-reused class.
Ring — the legacy abstract base class for every coefficient and polynomial ring.
monideal_pair(const PolynomialRing *R, stash *mi_stash)
monideal_pair(const PolynomialRing *R)
MonomialIdeal * mi_search