4#ifndef _mutablecomplex_hpp_
5#define _mutablecomplex_hpp_
74 :
mRing(D[0]->get_ring()),
82 std::cout <<
"Got a mutable complex over a local ring." << std::endl;
84 std::cout <<
"Not a polynomial ring or local ring." << std::endl;
86 for (
size_t i = 0; i < D.size(); ++i)
mBetti.push_back(D[i]->n_rows());
105 prune_morphisms(const
size_t nsteps, const
size_t flags);
125 std::pair<size_t, size_t> m)
Engine-side localisation of a polynomial ring at a prime ideal.
const std::pair< size_t, size_t > & operator*() const
std::pair< size_t, size_t > mAddr
bool operator<(const iterator &o) const
iterator(const MutableComplex &C, const size_t n, std::pair< size_t, size_t > m)
iterator(const MutableComplex &C, const size_t n)
const MutableComplex & mComplex
iterator(const iterator &i, std::pair< size_t, size_t > m)
std::pair< size_t, size_t > & operator*()
VECTOR(MutableMatrix *) mDegrees
std::vector< size_t > mBetti
bool next_unit(iterator &i, const size_t flags) const
MutableComplex(VECTOR(MutableMatrix *) &D)
void prune_unit(const iterator &i, const size_t flags)
void prune_complex(const size_t nsteps, const size_t flags)
std::vector< size_t > prune_betti(const size_t nsteps, const size_t flags)
size_t complexity(const iterator &i, const size_t flags) const
void text_out(buffer &o) const
VECTOR(MutableMatrix *) mMorphisms
const LocalRing * mLocalRing
bool find_unit(iterator &i, const size_t flags) const
virtual ~MutableComplex()
VECTOR(MutableMatrix *) prune_morphisms(const size_t nsteps
std::vector< iterator > list_units(size_t n, const size_t flags) const
VECTOR(MutableMatrix *) mDifferential
const PolynomialRing * mPolynomialRing
void prune_matrix(size_t n, const size_t flags)
virtual size_t n_cols() const =0
Abstract base class for mutable matrices over an arbitrary engine Ring, the in-place counterpart of t...
Abstract base for the engine's polynomial-ring hierarchy.
Debugger-callable d* helpers that pretty-print engine values to stderr.
EngineObject / MutableEngineObject — shared bases that supply the hash an M2 interpreter object expec...
LocalRing — localisation of a polynomial ring at a prime ideal P.
MutableMatrix — abstract base of every mutable matrix the engine hands across the boundary.
Engine-wide stylistic constants: LT / EQ / GT codes, INTSIZE, GEOHEAP_SIZE.