Macaulay2 Engine
Loading...
Searching...
No Matches

◆ add()

void gbvectorHeap::add ( gbvector * p)

Definition at line 1532 of file gbring.cpp.

1533{
1534 mLead = -1;
1535 int len = GR->gbvector_n_terms(p);
1536 int i = 0;
1537 while (len >= heap_size[i]) i++;
1538 GR->gbvector_add_to(F, heap[i], p);
1539 len = GR->gbvector_n_terms(heap[i]);
1540 p = nullptr;
1541 while (len >= heap_size[i])
1542 {
1543 i++;
1544 GR->gbvector_add_to(F, heap[i], heap[i - 1]);
1545 len = GR->gbvector_n_terms(heap[i]);
1546 heap[i - 1] = nullptr;
1547 }
1548 if (i > top_of_heap) top_of_heap = i;
1549}
gbvector * heap[GEOHEAP_SIZE]
Definition gbring.hpp:693
const FreeModule * F
Definition gbring.hpp:691
int top_of_heap
Definition gbring.hpp:695
GBRing * GR
Definition gbring.hpp:690
const int heap_size[GEOHEAP_SIZE]
Definition engine.cpp:53
int p

References F, GR, heap, heap_size, mLead, p, and top_of_heap.

Referenced by gb2_comp::gb_geo_reduce(), GB_comp::gb_geo_reduce(), GBinhom_comp::gb_geo_reduce(), GBKernelComputation::geo_reduce(), MarkedGB::geo_remainder(), GBRing::reduce_marked_lead_term_heap(), PolyRing::translate_gbvector_from_vec(), and PolyRing::translate_gbvector_from_vec_QQ().