Definition at line 397 of file res-a2-gb.cpp.
398{
399 gbvector head;
402
404 int count = 0;
405
406 gbvectorHeap fb(
GR,
F);
407 gbvectorHeap fsyzb(
GR,
Fsyz);
408 fb.add(f);
409 fsyzb.add(fsyz);
410 const gbvector *lead;
411 while ((lead = fb.get_lead_term()) != nullptr)
412 {
414 GR->gbvector_get_lead_exponents(
F, lead, div_totalexp);
416 originalR->get_quotient_monomials()->search_expvector(div_totalexp,
417 b))
418 {
420 GR->reduce_lead_term_heap(
F,
422 lead,
423 div_totalexp,
425 fb,
426 fsyzb,
427 g,
428 nullptr);
429 count++;
430 }
431 else if (monideals[lead->
comp]->mi_search->search_expvector(div_totalexp,
432 b))
433 {
434 gb_elem *q =
reinterpret_cast<gb_elem *
>(b->
basis_ptr());
435 GR->reduce_lead_term_heap(
436 F,
Fsyz, lead, div_totalexp, head.
next, fb, fsyzb, q->
f, q->
fsyz);
437 count++;
438 }
439 else
440 {
441 result->next = fb.remove_lead_term();
444 }
445 }
446
448 {
449 buffer o;
450 o << "." << count;
452 }
454
455 fsyz = fsyzb.value();
457}
exponents::Exponents exponents_t
const PolynomialRing * originalR
VALGRIND_MAKE_MEM_DEFINED & result(result)
#define newarray_atomic(T, len)
void emit_wrapped(const char *s)
References gbvectorHeap::add(), int_bag::basis_elem(), int_bag::basis_ptr(), gbvector::comp, emit_wrapped(), 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(), buffer::str(), and gbvectorHeap::value().
Referenced by gb_reduce().