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

Sequence of MutableMatrix differentials representing an in-progress chain complex, used for engine-side minimisation / pruning. More...

#include <mutablecomplex.hpp>

Inheritance diagram for MutableComplex:
MutableEngineObject our_gc_cleanup our_new_delete

Classes

class  iterator
 Cursor pointing at one entry of one differential matrix in the complex: a (matrix index, (row, col)) triple. More...

Public Member Functions

 MutableComplex ()
 MutableComplex (VECTOR(MutableMatrix *) &D)
virtual ~MutableComplex ()
size_t complexity (const iterator &i, const size_t flags) const
bool next_unit (iterator &i, const size_t flags) const
bool find_unit (iterator &i, const size_t flags) const
std::vector< iteratorlist_units (size_t n, const size_t flags) const
void prune_unit (const iterator &i, const size_t flags)
void prune_matrix (size_t n, const size_t flags)
void prune_complex (const size_t nsteps, const size_t flags)
std::vector< size_tprune_betti (const size_t nsteps, const size_t flags)
 VECTOR (MutableMatrix *) prune_morphisms(const size_t nsteps
void text_out (buffer &o) const
Public Member Functions inherited from MutableEngineObject
 MutableEngineObject ()
virtual ~MutableEngineObject ()
unsigned int hash () const
Public Member Functions inherited from our_gc_cleanup
 our_gc_cleanup ()
virtual ~our_gc_cleanup ()

Public Attributes

const size_t flags

Private Member Functions

 VECTOR (MutableMatrix *) mDifferential
 VECTOR (MutableMatrix *) mMorphisms
 VECTOR (MutableMatrix *) mDegrees

Private Attributes

const RingmRing
const LocalRingmLocalRing
const PolynomialRingmPolynomialRing
std::vector< size_tmBetti

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

Sequence of MutableMatrix differentials representing an in-progress chain complex, used for engine-side minimisation / pruning.

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

Holds the underlying ring (mRing), and, if applicable, its LocalRing / PolynomialRing casts so prune_* can switch to the local-ring path when warranted. mDifferential[i] is the matrix from position i+1 to position i, and mBetti caches the per-position Betti numbers (matrix sizes). The pruning API (prune_unit, prune_matrix, prune_complex) walks over (matrix, row, col) triples produced by the nested iterator and uses any unit entry it finds to row/column reduce the complex in place, lowering the Betti numbers while preserving the homology.

Definition at line 69 of file mutablecomplex.hpp.


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