|
Macaulay2 Engine
|
PolyRingQuotient — polynomial ring modulo an ideal whose Groebner basis is known. More...
#include "engine-includes.hpp"#include "poly.hpp"#include "polyring.hpp"#include "qring.hpp"#include "ringelem.hpp"Go to the source code of this file.
Classes | |
| class | PolyRingQuotient |
| PolyRingFlat subclass for quotients R / I of a polynomial ring by an ideal. More... | |
PolyRingQuotient — polynomial ring modulo an ideal whose Groebner basis is known.
Declares the concrete PolyRingFlat subclass for R / I (sibling of PolyRing from poly.hpp — both inherit directly from PolyRingFlat, not from each other), where R is the ambient ring and I is a polynomial ideal carried in a QRingInfo bookkeeping struct (declared in qring.hpp). QRingInfo keeps the defining ideal's generators twice — as Nterm* for ring-element arithmetic and as gbvector* for GB-internal reduction — so multiplication, inversion, and every other operation in the quotient finishes with a reduction against the stored GB without having to convert representations on each call. The class overrides normal_form to delegate to qinfo_->normal_form, plus make_gb(g) (build a GB for the principal ideal (g) inside the quotient) and ann(a, b) (return h with h * a in (b)).
Built from M2 by R = k[xs]; I = ideal(...); Q = R/I; the factory rejects trivial ideals (returns the ambient R unchanged) and routes through PolynomialRing to wire up the resulting PolyRingQuotient into the engine's ring hierarchy.
Definition in file polyquotient.hpp.