Macaulay2 Engine
Loading...
Searching...
No Matches

◆ create_quotient() [1/3]

PolynomialRing * PolynomialRing::create_quotient ( const PolynomialRing * R,
const Matrix * M )
static

Definition at line 134 of file polyring.cpp.

136{
137 if (M->get_ring() != R)
138 {
139 ERROR("quotient elements not in the expected polynomial ring");
140 return nullptr;
141 }
142 VECTOR(Nterm *) elems;
143
144 for (int i = 0; i < M->n_cols(); i++)
145 {
146 Nterm *f = R->numerator(M->elem(0, i));
147 elems.push_back(f);
148 }
149
150 for (int i = 0; i < R->n_quotients(); i++)
151 elems.push_back(R->quotient_element(i));
152
153 return create_quotient(R->getAmbientRing(), elems);
154}
const Ring * get_ring() const
Definition matrix.hpp:134
ring_elem elem(int i, int j) const
Definition matrix.cpp:307
int n_cols() const
Definition matrix.hpp:147
int n_quotients() const
Definition polyring.hpp:219
virtual const PolynomialRing * getAmbientRing() const
Definition polyring.hpp:260
static PolynomialRing * create_quotient(const PolynomialRing *R, VECTOR(Nterm *) &elems)
Definition polyring.cpp:79
virtual Nterm * numerator(ring_elem f) const =0
Nterm * quotient_element(int i) const
Definition polyring.hpp:220
const int ERROR
Definition m2-mem.cpp:55
#define VECTOR(T)
Definition newdelete.hpp:78

References create_quotient(), Matrix::elem(), ERROR, Matrix::get_ring(), getAmbientRing(), Matrix, Matrix::n_cols(), n_quotients(), numerator(), PolynomialRing(), quotient_element(), and VECTOR.