Implements ReducedGB.
Reimplemented in ReducedGB_Field_Local.
Definition at line 177 of file reducedgb-field.cpp.
178{
179 gbvector *
zero =
nullptr;
180 gbvector head;
181 gbvector *frem = &head;
182 frem->
next =
nullptr;
183 gbvector *h = f;
185 while (!
R->gbvector_is_zero(h))
186 {
187 R->gbvector_get_lead_exponents(
F, h, EXP);
190 if (
Rideal !=
nullptr &&
Rideal->search_expvector(EXP, b))
191 {
193 R->gbvector_reduce_lead_term(
195 }
196 else
197 {
198 int w =
T->find_divisor(EXP,
x);
199 if (w < 0)
200 {
204 frem->
next =
nullptr;
205 }
206 else
207 {
209 R->gbvector_reduce_lead_term(
211 }
212 }
213 }
215
216 f = h;
217}
exponents::Exponents exponents_t
const MonomialIdeal * Rideal
const PolynomialRing * originalR
#define ALLOCATE_EXPONENTS(byte_len)
References ALLOCATE_EXPONENTS, int_bag::basis_elem(), gbvector::comp, ReducedGB::F, POLY::f, ReducedGB::Fsyz, gbvector::next, ReducedGB::originalR, POLY, ReducedGB::R, Rideal, T, x, and zero.