LAL  7.5.0.1-ec27e42
LALHeap.h File Reference

Prototypes

LALHeap * XLALHeapCreate (LALHeapDtorFcn dtor, int max_size, int min_or_max_heap, LALHeapCmpFcn cmp)
 Create a heap. More...
 
LALHeap * XLALHeapCreate2 (LALHeapDtorFcn dtor, int max_size, int min_or_max_heap, LALHeapCmpParamFcn cmp, void *cmp_param)
 Create a heap with a parameterised comparison function. More...
 
void XLALHeapDestroy (LALHeap *h)
 Destroy a heap and its elements. More...
 
int XLALHeapClear (LALHeap *h)
 Clear a heap. More...
 
int XLALHeapSize (const LALHeap *h)
 Return the size of a heap. More...
 
int XLALHeapMaxSize (const LALHeap *h)
 Return the maximum size of a heap. More...
 
int XLALHeapIsFull (const LALHeap *h)
 Return >0 if a limited-size heap is full, 0 otherwise (or if heap has unlimited size), or <0 on error. More...
 
const void * XLALHeapRoot (const LALHeap *h)
 Return the root element of a heap. More...
 
int XLALHeapResize (LALHeap *h, int max_size)
 Change the maximum size of a heap; if the heap is contracted, excess elements are destroyed. More...
 
int XLALHeapAdd (LALHeap *h, void **x)
 Add a new element to a heap; if the heap is of fixed size and full, the root element is removed. More...
 
void * XLALHeapExtractRoot (LALHeap *h)
 Remove the root element of a heap. More...
 
int XLALHeapRemoveRoot (LALHeap *h)
 Remove and destroy the root element of a heap. More...
 
int XLALHeapExchangeRoot (LALHeap *h, void **x)
 Exchange the root element of a non-empty heap with the new element in *x More...
 
int XLALHeapVisit (const LALHeap *h, LALHeapVisitFcn visit, void *visit_param)
 Visit each element in the heap in the order given by the comparison function. More...
 
int XLALHeapModify (LALHeap *h, LALHeapModifyFcn modify, void *modify_param)
 Visit (and possibly modify) each element in the heap in the order given by the comparison function. More...
 
const void ** XLALHeapElements (const LALHeap *h)
 Allocate and return an array containing all elements in the heap. More...
 

Go to the source code of this file.

Typedefs

typedef void(* LALHeapDtorFcn) (void *x)
 Function which free memory associated with heap element x More...
 
typedef int(* LALHeapCmpFcn) (const void *x, const void *y)
 Function which compares heap elements x and y More...
 
typedef int(* LALHeapCmpParamFcn) (void *param, const void *x, const void *y)
 Function which compares heap elements x and y, with a parameter param. More...
 
typedef int(* LALHeapVisitFcn) (void *param, const void *x)
 Function to call when visiting heap element x, with a parameter param. More...
 
typedef int(* LALHeapModifyFcn) (void *param, void *x)
 Function to call when visiting (and possibly modify) heap element x, with a parameter param. More...