Definition at line 519 of file gb-sugarless.cpp.
520{
521 gb_elem *q;
522
523 gbvector head;
527 int count = 0;
528
529 gbvectorHeap fb(
GR,
F);
530 gbvectorHeap fsyzb(
GR,
Fsyz);
531 fb.add(f);
532 fsyzb.add(fsyz);
533 const gbvector *lead;
534
535 while ((lead = fb.get_lead_term()) != nullptr)
536 {
537 GR->gbvector_get_lead_exponents(
F, lead, div_totalexp);
538#ifdef DEVELOPMENT
539#warning "quotient ring stuff"
540#endif
543 originalR->get_quotient_monomials()->search_expvector(div_totalexp,
544 b))
545 {
547 GR->reduce_lead_term_heap(
F,
549 lead,
550 div_totalexp,
552 fb,
553 fsyzb,
554 g,
555 nullptr);
556 count++;
557 }
559 {
560 GR->reduce_lead_term_heap(
561 F,
Fsyz, lead, div_totalexp, head.
next, fb, fsyzb, q->
f, q->
fsyz);
562 count++;
563 }
564 else
565 {
566 result->next = fb.remove_lead_term();
569 }
570 }
571
573 {
574 buffer o;
575 o << "." << count;
577 }
579
580 fsyz = fsyzb.value();
582 return 1;
583}
exponents::Exponents exponents_t
int search(const int *exp, int comp, gb_elem *&result)
const PolynomialRing * originalR
VALGRIND_MAKE_MEM_DEFINED & result(result)
#define newarray_atomic(T, len)
References gbvectorHeap::add(), int_bag::basis_elem(), gbvector::comp, emit(), F, gb_elem::f, freemem(), Fsyz, gb_elem::fsyz, gbvectorHeap::get_lead_term(), GR, M, M2_gbTrace, newarray_atomic, gbvector::next, originalR, gbvectorHeap::remove_lead_term(), result(), search(), buffer::str(), and gbvectorHeap::value().
Referenced by gb_reduce().