|
Macaulay2 Engine
|
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>
Public Member Functions | |
| QRingInfo () | |
| virtual void | destroy (GBRing *GR) |
| virtual | ~QRingInfo () |
| int | n_quotients () const |
| Nterm * | quotient_element (int i) const |
| const gbvector * | quotient_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 MonomialIdeal * | get_quotient_monomials () const |
| virtual MonomialTable * | get_quotient_MonomialTable () const |
| virtual const MonomialTableZZ * | get_quotient_MonomialTableZZ () const |
Protected Member Functions | |
| void | appendQuotientElement (Nterm *f, gbvector *g) |
| QRingInfo (const PolyRing *R) | |
Protected Attributes | |
| const PolyRing * | R |
| 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) |
Bookkeeping helper holding the defining ideal of a polynomial-ring quotient R / I in the two representations the engine reduces against.
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.