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

Bookkeeping helper holding the defining ideal of a polynomial-ring quotient R / I in the two representations the engine reduces against. More...

#include <qring.hpp>

Inheritance diagram for QRingInfo:
our_new_delete QRingInfo_ZZ QRingInfo_field QRingInfo_field_QQ QRingInfo_field_basic

Public Member Functions

 QRingInfo ()
virtual void destroy (GBRing *GR)
virtual ~QRingInfo ()
int n_quotients () const
Ntermquotient_element (int i) const
const gbvectorquotient_gbvector (int i) const
virtual void normal_form (ring_elem &f) const
virtual void gbvector_normal_form (const FreeModule *F, gbvector *&f) const
virtual void gbvector_normal_form (const FreeModule *F, gbvector *&f, bool use_denom, ring_elem &denom) const
virtual const MonomialIdealget_quotient_monomials () const
virtual MonomialTableget_quotient_MonomialTable () const
virtual const MonomialTableZZget_quotient_MonomialTableZZ () const

Protected Member Functions

void appendQuotientElement (Nterm *f, gbvector *g)
 QRingInfo (const PolyRing *R)

Protected Attributes

const PolyRingR
bool overZZ_
size_t exp_size
size_t monom_size

Private Member Functions

 VECTOR (Nterm *) quotient_ideal
 VECTOR (gbvector *) quotient_gbvectors

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

Bookkeeping helper holding the defining ideal of a polynomial-ring quotient R / I in the two representations the engine reduces against.

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

Stores the quotient generators twice: as Nterm* for ring_elem reduction (normal_form) and as gbvector* for GB-tuned reduction (gbvector_normal_form), kept in sync by appendQuotientElement. This base class is a virtual shell — its normal_form / gbvector_normal_form bodies are no-ops and its get_quotient_* accessors return nullptr. Concrete reduction lives in the three subclass branches QRingInfo_field_basic, QRingInfo_field_QQ, and QRingInfo_ZZ. A QRingInfo is not itself a Ring; it is the data hung off PolyRingQuotient.

Definition at line 77 of file qring.hpp.


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