Implements ReducedGB.
Reimplemented in ReducedGB_Field_Local.
Definition at line 111 of file reducedgb-field.cpp.
112{
113 gbvector head;
114 gbvector *frem = &head;
115 frem->
next =
nullptr;
118
119 while (!
R->gbvector_is_zero(h.
f))
120 {
121 R->gbvector_get_lead_exponents(
F, h.
f, EXP);
124 if (
Rideal !=
nullptr &&
Rideal->search_expvector(EXP, b))
125 {
127 R->gbvector_reduce_lead_term(
129 }
130 else
131 {
132 int w =
T->find_divisor(EXP,
x);
133 if (w >= 0)
134 {
136 R->gbvector_reduce_lead_term(
F,
143 use_denom,
144 denom);
145 }
146 else
147 {
151 frem->
next =
nullptr;
152 }
153 }
154 }
155
157
158 ring_elem denom1;
159 ring_elem one_elem =
R->get_flattened_coefficients()->one();
160 denom1 =
R->get_flattened_coefficients()->one();
161 originalR->get_quotient_info()->gbvector_normal_form(
163 if (
EQ !=
R->get_flattened_coefficients()->compare_elems(denom1, one_elem))
164 {
165
166 R->gbvector_mult_by_coeff_to(h.
f, denom1);
167 }
168 if (use_denom)
169 {
170 R->get_flattened_coefficients()->mult_to(denom, denom1);
171 }
172
175}
exponents::Exponents exponents_t
const MonomialIdeal * Rideal
const PolynomialRing * originalR
#define ALLOCATE_EXPONENTS(byte_len)
References ALLOCATE_EXPONENTS, int_bag::basis_elem(), gbvector::comp, EQ, ReducedGB::F, POLY::f, ReducedGB::Fsyz, POLY::fsyz, gbvector::next, ReducedGB::originalR, POLY, ReducedGB::R, Rideal, T, and x.
Referenced by minimalize().