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

◆ QRingInfo_ZZ()

QRingInfo_ZZ::QRingInfo_ZZ ( const PolyRing * ambientR,
const VECTOR(Nterm *) & quotients )

Definition at line 316 of file qring.cpp.

318 : QRingInfo(ambientR)
319{
321 exponents_t exp = newarray_atomic(int, R->n_vars());
322 for (int i = 0; i < quotients.size(); i++)
323 {
324 // Make a varpower element. See if it is in Rideal.
325 // If not, place it into quotient_elements.
326
327 Nterm *f = quotients[i];
328 R->getMonoid()->to_expvector(f->monom, exp);
329
330 if (!ringtableZZ->is_strong_member(f->coeff.get_mpz(), exp, 1))
331 {
332 // The element is part of a minimal GB
333 // Also, this grabs exp.
334 int index = n_quotients();
335 ringtableZZ->insert(f->coeff.get_mpz(), exp, 1, index);
336 gbvector *g = R->translate_gbvector_from_ringelem(f);
338 exp = newarray_atomic(int, R->n_vars());
339
340 if (f->next == nullptr && R->getMonoid()->is_one(f->monom))
341 {
342 is_ZZ_quotient_ = true;
344 }
345 }
346 }
347 freemem(exp);
348}
exponents::Exponents exponents_t
static MonomialTableZZ * make(int nvars)
ring_elem ZZ_quotient_value_
Definition qring.hpp:249
bool is_ZZ_quotient_
Definition qring.hpp:246
MonomialTableZZ * ringtableZZ
Definition qring.hpp:245
int n_quotients() const
Definition qring.hpp:97
QRingInfo()
Definition qring.hpp:93
const PolyRing * R
Definition qring.hpp:83
void appendQuotientElement(Nterm *f, gbvector *g)
Definition qring.cpp:12
void freemem(void *s)
Definition m2-mem.cpp:103
const mpreal exp(const mpreal &x, mp_rnd_t r=mpreal::get_default_rnd())
Definition mpreal.h:2298
#define newarray_atomic(T, len)
Definition newdelete.hpp:91
Nterm * next
Definition ringelem.hpp:157
ring_elem coeff
Definition ringelem.hpp:158
int monom[1]
Definition ringelem.hpp:160
mpz_srcptr get_mpz() const
Definition ringelem.hpp:127

References QRingInfo::appendQuotientElement(), Nterm::coeff, freemem(), ring_elem::get_mpz(), is_ZZ_quotient_, MonomialTableZZ::make(), Nterm::monom, QRingInfo::n_quotients(), newarray_atomic, Nterm::next, QRingInfo::QRingInfo(), QRingInfo::R, ringtableZZ, and ZZ_quotient_value_.