16 #include <ObjexxFCL/FArray1A.hh>
19 namespace ObjexxFCL { }
using namespace ObjexxFCL;
88 FArray1A_float coheap,
92 heap.dimension( SRange( -2, star ) );
93 coheap.dimension( SRange( 0, star ) );
129 FArray1A_float coheap,
135 heap.dimension( SRange( -2, star ) );
136 coheap.dimension( SRange( 0, star ) );
139 if ( heap(-1) < 1 )
return;
141 int temp_val = heap(0);
142 float temp_coval = coheap(0);
146 if ( heap(-1) == 0 ) {
152 heap(0) = heap(heap(-1));
153 coheap(0) = coheap(heap(-1));
192 FArray1A_float coheap,
198 heap.dimension( SRange( -2, star ) );
199 coheap.dimension( SRange( 0, star ) );
201 if ( heap(-1) >= heap(-2) ) {
203 if ( coheap(0) < coval )
heap_replace(heap,coheap,val,coval);
208 heap(heap(-1)) = val;
209 coheap(heap(-1)) = coval;
243 FArray1A_float coheap,
248 heap.dimension( SRange( -2, star ) );
249 coheap.dimension( SRange( 0, star ) );
287 FArray1A_float coheap,
291 heap.dimension( SRange( -2, star ) );
292 coheap.dimension( SRange( 0, star ) );
293 float coiv,cocv,cocv2;
294 int indx,child,iv,cv,cv2,last;
298 if ( last <= 0 )
return;
299 if ( indx > last )
return;
304 while ( indx < last ) {
307 if ( child > last )
goto L20;
310 cocv = coheap(child);
312 if ( child < last ) {
313 cv2 = heap (child+1);
314 cocv2 = coheap(child+1);
316 if ( cocv2 < cocv ) {
324 if ( coiv <= cocv )
goto L20;
362 FArray1A_float coheap,
366 heap.dimension( SRange( -2, star ) );
367 coheap.dimension( SRange( 0, star ) );
370 int indx,parent,value,pv;
375 covalue = coheap(indx);
377 while ( indx != 0 ) {
378 parent =
static_cast< int >((indx-1)/2);
380 copv = coheap(parent);
381 if ( copv < covalue )
goto L20;
388 coheap(indx) = covalue;