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

◆ reduce_lead_term_basic_field()

void QRingInfo_field_basic::reduce_lead_term_basic_field ( Nterm *& f,
const Nterm * g ) const
private

Definition at line 95 of file qring.cpp.

97{
99 const Monoid *M = R->getMonoid();
100 M->divide(f->monom, g->monom, MONOM1);
101 ring_elem c = R->getCoefficients()->negate(f->coeff);
102 if (R->is_skew_commutative())
103 {
106 // We need to determine the sign
107 M->to_expvector(g->monom, EXP2);
108 M->to_expvector(MONOM1, EXP1);
109 if (R->getSkewInfo().mult_sign(EXP1, EXP2) < 0)
110 R->getCoefficients()->negate_to(c);
111 }
112 ring_elem g1 = const_cast<Nterm *>(g);
113 g1 = R->mult_by_term(g1, c, MONOM1);
114 ring_elem f1 = f;
115 R->internal_add_to(f1, g1);
116 f = f1;
117}
exponents::Exponents exponents_t
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, Nterm::monom, QRingInfo::monom_size, monomial, QRingInfo::R, and Monoid::to_expvector().

Referenced by normal_form().