Definition at line 463 of file gb-homog2.cpp.
464{
465 gbvector head;
468
470 int count = 0;
471
472 gbvectorHeap fb(
_GR,
_F);
474 fb.add(f);
475 fsyzb.add(fsyz);
476 const gbvector *lead;
477 while ((lead = fb.get_lead_term()) != nullptr)
478 {
480 _GR->gbvector_get_lead_exponents(
_F, lead, div_totalexp);
482 originalR->get_quotient_monomials()->search_expvector(div_totalexp,
483 b))
484 {
486 _GR->reduce_lead_term_heap(
_F,
488 lead,
489 div_totalexp,
491 fb,
492 fsyzb,
493 g,
494 nullptr);
495 count++;
496 }
497 else if (_monideals[lead->
comp]->mi_search->search_expvector(div_totalexp,
498 b))
499 {
500 gb_elem *q =
reinterpret_cast<gb_elem *
>(b->
basis_ptr());
501 _GR->reduce_lead_term_heap(
_F,
503 lead,
504 div_totalexp,
506 fb,
507 fsyzb,
510 count++;
511 }
512 else
513 {
514 result->next = fb.remove_lead_term();
517 }
518 }
519
521 {
522 buffer o;
523 o << "." << count;
525 }
527
528 fsyz = fsyzb.value();
530}
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 _F, _Fsyz, _GR, _M, gbvectorHeap::add(), int_bag::basis_elem(), int_bag::basis_ptr(), gbvector::comp, emit_wrapped(), gb_elem::f, freemem(), gb_elem::fsyz, gbvectorHeap::get_lead_term(), M2_gbTrace, newarray_atomic, gbvector::next, originalR, gbvectorHeap::remove_lead_term(), result(), buffer::str(), and gbvectorHeap::value().
Referenced by gb_reduce().