Definition at line 1402 of file res-a0.cpp.
1411{
1412
1415
1416 res2term *lastterm = fsyz;
1417 while (lastterm->
next !=
nullptr) lastterm = lastterm->
next;
1418
1419 res2term head;
1420 res2term *red = &head;
1421 res2_pair *
result =
nullptr;
1422 res2_pair *q;
1423 ring_elem rg;
1424
1427
1428 while (f != nullptr)
1429 {
1430 res2term *lead = f;
1432 lead->
next =
nullptr;
1434 M->to_expvector(REDUCE_mon, REDUCE_exp);
1436 {
1437
1438 Nterm *r = rg;
1440 ring_elem c =
K->negate(lead->
coeff);
1441 res2term *h =
1442 R->ring_mult_by_term(r->
next, c, REDUCE_mon, lead->
comp);
1447 }
1449 {
1450 if (q->
degree ==
p->degree + 1)
1451
1452 {
1455 lastterm = lastterm->
next;
1457 {
1458
1459
1460
1461 pivot = lastterm;
1463 }
1466 continue;
1467 }
1468 else
1469 {
1470 ring_elem c =
K->negate(lead->
coeff);
1472 res2term *h =
R->mult_by_term(q->
syz->
next, c, REDUCE_mon);
1473 lastterm->
next =
R->new_term(c, lead->
monom, q);
1474 lastterm = lastterm->
next;
1478 }
1479 }
1480 else
1481 {
1484 }
1485 }
1486 red->
next =
nullptr;
1489 {
1490 buffer o;
1493 }
1495}
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, res2term::coeff, res2term::comp, res2_pair::degree, emit_wrapped(), exp_size, find_divisor(), find_ring_divisor(), K, M, M2_gbTrace, res2_pair::mi, Nterm::monom, res2term::monom, monom_size, monomial, Nterm::next, res2term::next, p, R, result(), buffer::str(), res2_pair::syz, SYZ2_S_PAIR, res2_pair::syz_type, and total_reduce_count.
Referenced by handle_pair_by_degree().