/* PQ.H xref: input: output: stdout does - priority queue (PQ). - allows several PQ's. */ /************************************************************/ typedef struct { double a; /* left */ double b; /* right */ double i; /* estimate */ double e; /* error estimate */ double v; /* |error estimate| */ } INTERVAL; /* integration interval */ typedef INTERVAL PQITEM; /* PQ item = interval */ typedef struct { int n, maxn; /* size, max size */ PQITEM* q; /* pointer to queue items */ } PQDESC; /* PQ descriptor */ typedef PQDESC* PQUEUE; PQUEUE pq_construct (int maxn); void pq_destruct (PQUEUE p); int pq_insert (PQUEUE p, PQITEM x); PQITEM pq_remove (PQUEUE p); PQITEM pq_replace (PQUEUE p, PQITEM x);