Macaulay2 Engine
Loading...
Searching...
No Matches
MonomialIdeal Class Reference

Engine-side monomial ideal: a decision tree of Nmi_nodes storing the (typically minimal) generators by variable / exponent path. More...

#include <monideal.hpp>

Inheritance diagram for MonomialIdeal:
EngineObject our_new_delete

Classes

class  Iterator
 Bidirectional forward iterator over the Bags stored in a MonomialIdeal. More...

Public Member Functions

 MonomialIdeal (const PolynomialRing *RR, stash *mi_stash=nullptr)
virtual ~MonomialIdeal ()
 MonomialIdeal (const PolynomialRing *R0, VECTOR(Bag *) &elems, VECTOR(Bag *) &rejects, stash *mi_stash0=nullptr)
 MonomialIdeal (const PolynomialRing *R0, VECTOR(Bag *) &elems, stash *mi_stash0=nullptr)
MonomialIdealcopy () const
void remove_MonomialIdeal ()
const_varpower first_elem () const
const_varpower second_elem () const
int size () const
int topvar () const
void text_out (buffer &o) const
const PolynomialRingget_ring () const
void insert_minimal (Bag *b)
int insert (Bag *b)
void insert_w_deletions (Bag *b, VECTOR(Bag *) &deletions)
int remove (Bag *&b)
int search_expvector (const_exponents m, Bag *&b) const
int search (const_varpower m, Bag *&b) const
void find_all_divisors (const_exponents exp, VECTOR(Bag *)&b) const
Iterator begin () const
Iterator beginAtLast () const
Iterator end () const
void * next (void *p) const
void * prev (void *p) const
int valid (void *p) const
void debug_out (int disp=1) const
void debug_check () const
bool is_equal (const MonomialIdeal &mi) const
MonomialIdealintersect (const_varpower m) const
MonomialIdealintersect (const MonomialIdeal &J) const
MonomialIdealquotient (const_varpower m) const
MonomialIdealquotient (const MonomialIdeal &J) const
MonomialIdealerase (const_varpower m) const
MonomialIdealsat (const MonomialIdeal &J) const
M2_arrayint lcm () const
MonomialIdealalexander_dual (const M2_arrayint a) const
MonomialIdealradical () const
MonomialIdealborel () const
bool is_borel () const
MonomialIdealoperator+ (const MonomialIdeal &F) const
MonomialIdealoperator- (const MonomialIdeal &F) const
MonomialIdealoperator* (const MonomialIdeal &G) const
bool is_one () const
int n_pure_powers () const
Public Member Functions inherited from EngineObject
 EngineObject ()
virtual ~EngineObject ()
unsigned int hash () const

Protected Member Functions

virtual unsigned int computeHashValue () const

Private Member Functions

Nmi_nodenew_internal_mi_node (int v, int e, Nmi_node *d)
Nmi_nodenew_leaf_mi_node (int v, int e, Bag *b)
void delete_mi_node (Nmi_node *p)
Nmi_nodefirst_node () const
Nmi_nodelast_node () const
Nmi_nodenext (Nmi_node *p) const
Nmi_nodeprev (Nmi_node *p) const
void insert1 (Nmi_node *&p, Bag *b)
void remove1 (Nmi_node *p)
void do_node (Nmi_node *p, int indent, int disp) const
void do_tree (Nmi_node *p, int depth, int indent, int disp) const
int debug_check (Nmi_node *p, const Nmi_node *up) const
bool isWellFormed () const

Private Attributes

const PolynomialRingR
Nmi_nodemi
int count
stashmi_stash

Friends

class AssociatedPrimes
class MinimalPrimes

Additional Inherited Members

Static Public Member Functions inherited from our_new_delete
static void * operator new (size_t size)
static void * operator new[] (size_t size)
static void operator delete (void *obj)
static void operator delete[] (void *obj)
static void * operator new (size_t size, void *existing_memory)
static void * operator new[] (size_t size, void *existing_memory)
static void operator delete (void *obj, void *existing_memory)
static void operator delete[] (void *obj, void *existing_memory)

Detailed Description

Engine-side monomial ideal: a decision tree of Nmi_nodes storing the (typically minimal) generators by variable / exponent path.

Note
AI-generated documentation. Verify against the source before relying on it.

The tree representation makes divisibility queries (search_expvector, search, find_all_divisors) and minimal-generator maintenance (insert_w_deletions) efficient compared with a flat list. count packs two pieces of info: the low bit records whether this MonomialIdeal owns its mi_stash (so the destructor knows whether to free it), and count / 2 is the actual number of stored monomials. The ideal is immutable once exposed to the front end (its computeHashValue is called to pin the hash). Iteration is via the nested Iterator class, with begin() / end() and beginAtLast() for reverse-style loops.

Definition at line 133 of file monideal.hpp.


The documentation for this class was generated from the following files: