Scippy

SCIP

Solving Constraint Integer Programs

Priority Queue

Detailed Description

Functions

SCIP_RETCODE SCIPpqueueCreate (SCIP_PQUEUE **pqueue, int initsize, SCIP_Real sizefac, SCIP_DECL_SORTPTRCOMP((*ptrcomp)))
 
void SCIPpqueueFree (SCIP_PQUEUE **pqueue)
 
void SCIPpqueueClear (SCIP_PQUEUE *pqueue)
 
SCIP_RETCODE SCIPpqueueInsert (SCIP_PQUEUE *pqueue, void *elem)
 
void * SCIPpqueueRemove (SCIP_PQUEUE *pqueue)
 
void * SCIPpqueueFirst (SCIP_PQUEUE *pqueue)
 
int SCIPpqueueNElems (SCIP_PQUEUE *pqueue)
 
void ** SCIPpqueueElems (SCIP_PQUEUE *pqueue)
 

Function Documentation

SCIP_RETCODE SCIPpqueueCreate ( SCIP_PQUEUE **  pqueue,
int  initsize,
SCIP_Real  sizefac,
SCIP_DECL_SORTPTRCOMP((*ptrcomp))   
)

creates priority queue

Parameters
pqueuepointer to a priority queue
initsizeinitial number of available element slots
sizefacmemory growing factor applied, if more element slots are needed

Definition at line 752 of file misc.c.

References BMSallocMemory, MAX, NULL, pqueueResize(), SCIP_ALLOC, SCIP_CALL, and SCIP_OKAY.

Referenced by initData(), nodepairqueueCreate(), and SCIPconflictCreate().

void SCIPpqueueFree ( SCIP_PQUEUE **  pqueue)

frees priority queue, but not the data elements themselves

Parameters
pqueuepointer to a priority queue

Definition at line 777 of file misc.c.

References BMSfreeMemory, BMSfreeMemoryArray, and NULL.

Referenced by nodepairqueueFree(), SCIP_DECL_PROPEXITSOL(), and SCIPconflictFree().

void SCIPpqueueClear ( SCIP_PQUEUE pqueue)

clears the priority queue, but doesn't free the data elements themselves

Parameters
pqueuepriority queue

Definition at line 788 of file misc.c.

References SCIP_PQueue::len, and NULL.

Referenced by conflictClear().

SCIP_RETCODE SCIPpqueueInsert ( SCIP_PQUEUE pqueue,
void *  elem 
)

inserts element into priority queue

Parameters
pqueuepriority queue
elemelement to be inserted

Definition at line 798 of file misc.c.

References SCIP_PQueue::len, NULL, PQ_PARENT, pqueueResize(), SCIP_CALL, SCIP_OKAY, and SCIP_PQueue::slots.

Referenced by conflictQueueBound(), nodepairqueueCreate(), propagateVbounds(), and SCIP_DECL_EVENTEXEC().

void* SCIPpqueueRemove ( SCIP_PQUEUE pqueue)

removes and returns best element from the priority queue

Parameters
pqueuepriority queue

Definition at line 825 of file misc.c.

References SCIP_PQueue::len, NULL, PQ_LEFTCHILD, PQ_PARENT, PQ_RIGHTCHILD, and SCIP_PQueue::slots.

Referenced by conflictFirstCand(), conflictRemoveCand(), nodepairqueueRemove(), and propagateVbounds().

void* SCIPpqueueFirst ( SCIP_PQUEUE pqueue)

returns the best element of the queue without removing it

Parameters
pqueuepriority queue

Definition at line 866 of file misc.c.

References SCIP_PQueue::len, NULL, and SCIP_PQueue::slots.

Referenced by conflictFirstCand(), and nodepairqueueIsEmpty().

int SCIPpqueueNElems ( SCIP_PQUEUE pqueue)
void** SCIPpqueueElems ( SCIP_PQUEUE pqueue)

returns the elements of the queue; changing the returned array may destroy the queue's ordering!

Parameters
pqueuepriority queue

Definition at line 891 of file misc.c.

References SCIP_PQueue::len, NULL, and SCIP_PQueue::slots.

Referenced by conflictAddConflictset(), and conflictResolveBound().