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

◆ reduce_lead_term_QQ()

void QRingInfo_field_QQ::reduce_lead_term_QQ ( Nterm *& f,
const Nterm * g ) const
private

Definition at line 188 of file qring.cpp.

189{
191 const Monoid *M = R->getMonoid();
192 M->divide(f->monom, g->monom, MONOM1);
193 ring_elem c = globalQQ->RingQQ::negate(f->coeff);
194 c = globalQQ->RingQQ::divide(c, g->coeff);
195 if (R->is_skew_commutative())
196 {
199 // We need to determine the sign
200 M->to_expvector(g->monom, EXP2);
201 M->to_expvector(MONOM1, EXP1);
202 if (R->getSkewInfo().mult_sign(EXP1, EXP2) < 0)
203 globalQQ->RingQQ::negate_to(c);
204 }
205 ring_elem g1 = const_cast<Nterm *>(g);
206 g1 = R->mult_by_term(g1, c, MONOM1);
207 ring_elem f1 = f;
208 R->internal_add_to(f1, g1);
209 f = f1;
210}
exponents::Exponents exponents_t
const RingQQ * globalQQ
Definition aring.cpp:24
void to_expvector(const_monomial m, exponents_t result_exp) const
Definition monoid.cpp:747
void divide(const_monomial m, const_monomial n, monomial result) const
Definition monoid.hpp:331
const PolyRing * R
Definition qring.hpp:83
size_t exp_size
Definition qring.hpp:86
size_t monom_size
Definition qring.hpp:87
#define monomial
Definition gb-toric.cpp:11
#define ALLOCATE_EXPONENTS(byte_len)
Definition monoid.hpp:62
#define ALLOCATE_MONOMIAL(byte_len)
Definition monoid.hpp:65
ring_elem coeff
Definition ringelem.hpp:158
int monom[1]
Definition ringelem.hpp:160

References ALLOCATE_EXPONENTS, ALLOCATE_MONOMIAL, Nterm::coeff, Monoid::divide(), QRingInfo::exp_size, globalQQ, Nterm::monom, QRingInfo::monom_size, monomial, QRingInfo::R, and Monoid::to_expvector().

Referenced by normal_form().