Definition at line 1200 of file res-a0.cpp.
1209{
1210
1213
1214 res2term *lastterm = (fsyz->
next ==
nullptr ? fsyz : fsyz->
next);
1215 res2term head;
1216 res2term *red = &head;
1217 res2_pair *
result =
nullptr;
1218 res2_pair *q;
1219 ring_elem rg;
1220
1221 int count = 0;
1223
1224 while (f != nullptr)
1225 {
1227 M->to_expvector(REDUCE_mon, REDUCE_exp);
1229 {
1230
1231 Nterm *r = rg;
1233 R->ring_subtract_multiple_to(f, f->
coeff, REDUCE_mon, f->
comp, rg);
1235 count++;
1236 }
1238 {
1240 {
1242 {
1245 lastterm = lastterm->
next;
1247 {
1248
1249 pivot = lastterm;
1251 }
1253 {
1254
1255
1256
1257
1258
1259 auto_reduce_node *au = new auto_reduce_node;
1261 reinterpret_cast<auto_reduce_node *
>(q->
pivot_term);
1262 au->
p = pivot->
comp;
1263 au->
pivot = lastterm;
1264 q->
pivot_term =
reinterpret_cast<res2term *
>(au);
1265 }
1267 {
1268
1269
1271 }
1272 }
1276 continue;
1277 }
1278 else
1279 {
1281 lastterm = lastterm->
next;
1283 R->subtract_multiple_to(f, f->
coeff, REDUCE_mon, q->
syz);
1285 count++;
1286 }
1287 }
1288 else
1289 {
1293 }
1294 }
1295 red->
next =
nullptr;
1298 {
1299 buffer o;
1300 o << count;
1302 }
1304}
exponents::Exponents exponents_t
int find_ring_divisor(const int *exp, ring_elem &result) const
int find_divisor(const MonomialIdeal *mi, const int *exp, res2_pair *&result)
VALGRIND_MAKE_MEM_DEFINED & result(result)
#define ALLOCATE_EXPONENTS(byte_len)
#define ALLOCATE_MONOMIAL(byte_len)
void emit_wrapped(const char *s)
References ALLOCATE_EXPONENTS, ALLOCATE_MONOMIAL, auto_reduce, res2term::coeff, res2term::comp, emit_wrapped(), exp_size, find_divisor(), find_ring_divisor(), K, M, M2_gbTrace, res2_pair::mi, Nterm::monom, res2term::monom, monom_size, monomial, auto_reduce_node::next, res2term::next, auto_reduce_node::p, auto_reduce_node::pivot, res2_pair::pivot_term, R, result(), buffer::str(), res2_pair::syz, SYZ2_MAYBE_MINIMAL, SYZ2_S_PAIR, res2_pair::syz_type, and total_reduce_count.
Referenced by handle_pair().