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

◆ insert() [2/2]

void s_pair_heap::insert ( s_pair * p,
int len )

Definition at line 205 of file spair.cpp.

206{
207 int i = 0;
208 while (len >= spair_heap_size[i]) i++;
209 heap[i] = merge(p, heap[i]);
210 n_in_heap[i] += len;
211 // std::cerr << "n_in_heap[" << i << "]=" << n_in_heap[i] << std::endl;
212 p = nullptr;
213 while (n_in_heap[i] >= spair_heap_size[i])
214 {
215 i++;
216 heap[i] = merge(heap[i - 1], heap[i]);
217 n_in_heap[i] += n_in_heap[i - 1];
218 heap[i - 1] = nullptr;
219 n_in_heap[i - 1] = 0;
220 }
221 if (i > top_of_heap) top_of_heap = i;
222 nelems += len;
223}
s_pair * heap[NHEAP]
Definition spair.hpp:108
int n_in_heap[NHEAP]
Definition spair.hpp:109
s_pair * merge(s_pair *f, s_pair *g) const
Definition spair.cpp:123
int top_of_heap
Definition spair.hpp:110
int p
static const int spair_heap_size[NHEAP]
Definition spair.cpp:8

References heap, merge(), n_in_heap, nelems, p, spair_heap_size, and top_of_heap.