SCIP Doxygen Documentation
Loading...
Searching...
No Matches

Detailed Description

priority queue with O(1) access to the minimum element

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 SCIPpqueueDelPos (SCIP_PQUEUE *pqueue, int pos)
void * SCIPpqueueRemove (SCIP_PQUEUE *pqueue)
void * SCIPpqueueFirst (SCIP_PQUEUE *pqueue)
int SCIPpqueueNElems (SCIP_PQUEUE *pqueue)
void ** SCIPpqueueElems (SCIP_PQUEUE *pqueue)
int SCIPpqueueFind (SCIP_PQUEUE *pqueue, void *elem)

Function Documentation

◆ SCIPpqueueCreate()

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
-data element comparator callback to act on position change of elem in priority queue, or NULL

Definition at line 1297 of file misc.c.

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

Referenced by initData(), initProblem(), nodepairqueueCreate(), SCIPbendersActivate(), SCIPconflictCreate(), and subtreeSumGapStoreNode().

◆ SCIPpqueueFree()

void SCIPpqueueFree ( SCIP_PQUEUE ** pqueue)

frees priority queue, but not the data elements themselves

Parameters
pqueuepointer to a priority queue

Definition at line 1324 of file misc.c.

References assert(), BMSfreeMemory, BMSfreeMemoryArray, and NULL.

Referenced by freeProblem(), nodepairqueueFree(), SCIP_DECL_PROPEXITSOL(), SCIPbendersDeactivate(), SCIPconflictFree(), and subtreeSumGapDelSubtrees().

◆ SCIPpqueueClear()

void SCIPpqueueClear ( SCIP_PQUEUE * pqueue)

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

Parameters
pqueuepriority queue

Definition at line 1335 of file misc.c.

References assert(), SCIP_PQueue::len, and NULL.

Referenced by conflictClear(), conflictClearResolution(), SCIPconflictAnalyzeResolution(), SCIPconflictClearQueues(), and slackReducingContinuousBdchgQueue().

◆ SCIPpqueueInsert()

SCIP_RETCODE SCIPpqueueInsert ( SCIP_PQUEUE * pqueue,
void * elem )

◆ SCIPpqueueDelPos()

void SCIPpqueueDelPos ( SCIP_PQUEUE * pqueue,
int pos )

delete element at specified position, maintaining the heap property

Parameters
pqueuepriority queue
posposition of element that should be deleted

Definition at line 1435 of file misc.c.

References assert(), SCIP_PQueue::len, NULL, PQ_LEFTCHILD, PQ_PARENT, PQ_RIGHTCHILD, pqueueElemChgPos(), SCIPpqueueNElems(), and SCIP_PQueue::slots.

Referenced by SCIPpqueueRemove(), and subtreeSumGapRemoveNode().

◆ SCIPpqueueRemove()

void * SCIPpqueueRemove ( SCIP_PQUEUE * pqueue)

removes and returns best element from the priority queue

Parameters
pqueuepriority queue

Definition at line 1495 of file misc.c.

References assert(), SCIP_PQueue::len, NULL, SCIPpqueueDelPos(), and SCIP_PQueue::slots.

Referenced by conflictFirstCand(), conflictFirstCand(), conflictRemoveCand(), conflictRemoveCand(), createSolveSubproblemIndexList(), executeResolutionStep(), nodepairqueueRemove(), propagateVbounds(), and solveProblem().

◆ SCIPpqueueFirst()

void * SCIPpqueueFirst ( SCIP_PQUEUE * pqueue)

returns the best element of the queue without removing it

Parameters
pqueuepriority queue

Definition at line 1515 of file misc.c.

References assert(), SCIP_PQueue::len, NULL, and SCIP_PQueue::slots.

Referenced by conflictFirstCand(), conflictFirstCand(), nodepairqueueIsEmpty(), subtreeSumGapComputeFromScratchEfficiently(), and subtreeSumGapRemoveNode().

◆ SCIPpqueueNElems()

◆ SCIPpqueueElems()

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 1540 of file misc.c.

References assert(), SCIP_PQueue::len, NULL, and SCIP_PQueue::slots.

Referenced by conflictAddConflictset(), conflictResolveBound(), existsResolvablebdchginfo(), subtreeSumGapDelSubtrees(), subtreeSumGapRemoveNode(), and subtreeSumGapStoreNode().

◆ SCIPpqueueFind()

int SCIPpqueueFind ( SCIP_PQUEUE * pqueue,
void * elem )

return the position of elem in the priority queue, or -1 if element is not found

Parameters
pqueuepriority queue
elemelement to be inserted

Definition at line 1551 of file misc.c.

References SCIPpqueueNElems(), and SCIP_PQueue::slots.

Referenced by propagateVbounds().