Scippy

    SCIP

    Solving Constraint Integer Programs

    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)), SCIP_DECL_PQUEUEELEMCHGPOS((*elemchgpos)))
     
    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))  ,
    SCIP_DECL_PQUEUEELEMCHGPOS((*elemchgpos))   
    )

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

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

    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 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 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 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 SCIP_PQueue::len, NULL, SCIPpqueueDelPos(), and SCIP_PQueue::slots.

    Referenced by conflictFirstCand(), 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 SCIP_PQueue::len, NULL, and SCIP_PQueue::slots.

    Referenced by 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 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().