Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

circular FIFO queue

Functions

SCIP_RETCODE SCIPqueueCreate (SCIP_QUEUE **queue, int initsize, SCIP_Real sizefac)
 
void SCIPqueueFree (SCIP_QUEUE **queue)
 
void SCIPqueueClear (SCIP_QUEUE *queue)
 
SCIP_RETCODE SCIPqueueInsert (SCIP_QUEUE *queue, void *elem)
 
SCIP_RETCODE SCIPqueueInsertUInt (SCIP_QUEUE *queue, unsigned int elem)
 
void * SCIPqueueRemove (SCIP_QUEUE *queue)
 
unsigned int SCIPqueueRemoveUInt (SCIP_QUEUE *queue)
 
void * SCIPqueueFirst (SCIP_QUEUE *queue)
 
unsigned int SCIPqueueFirstUInt (SCIP_QUEUE *queue)
 
SCIP_Bool SCIPqueueIsEmpty (SCIP_QUEUE *queue)
 
int SCIPqueueNElems (SCIP_QUEUE *queue)
 

Function Documentation

◆ SCIPqueueCreate()

SCIP_RETCODE SCIPqueueCreate ( SCIP_QUEUE **  queue,
int  initsize,
SCIP_Real  sizefac 
)

creates a (circular) queue, best used if the size will be fixed or will not be increased that much

Parameters
queuepointer to the new queue
initsizeinitial number of available element slots
sizefacmemory growing factor applied, if more element slots are needed

Definition at line 996 of file misc.c.

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

Referenced by createReopttree(), SCIPexpriterInit(), and SCIPincludeConshdlrNonlinear().

◆ SCIPqueueFree()

void SCIPqueueFree ( SCIP_QUEUE **  queue)

frees queue, but not the data elements themselves

Parameters
queuepointer to a queue

Definition at line 1020 of file misc.c.

References BMSfreeMemory, BMSfreeMemoryArray, and NULL.

Referenced by deinit(), freeReoptTree(), and SCIP_DECL_CONSFREE().

◆ SCIPqueueClear()

void SCIPqueueClear ( SCIP_QUEUE queue)

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

Parameters
queuequeue

Definition at line 1031 of file misc.c.

References SCIP_Queue::firstfree, SCIP_Queue::firstused, and NULL.

Referenced by clearReoptnodes(), and SCIPexpriterInit().

◆ SCIPqueueInsert()

SCIP_RETCODE SCIPqueueInsert ( SCIP_QUEUE queue,
void *  elem 
)

inserts pointer element at the end of the queue

Parameters
queuequeue
elemelement to be inserted

Definition at line 1082 of file misc.c.

References SCIP_Queue::firstfree, SCIP_Queue::firstused, NULL, SCIP_QUEUEELEMENT::ptr, queueCheckMarker(), queueCheckSize(), SCIP_CALL, SCIP_OKAY, SCIP_Queue::size, and SCIP_Queue::slots.

Referenced by doBfsNext(), SCIPexpriterInit(), and SCIPtightenExprIntervalNonlinear().

◆ SCIPqueueInsertUInt()

SCIP_RETCODE SCIPqueueInsertUInt ( SCIP_QUEUE queue,
unsigned int  elem 
)

inserts unsigned integer element at the end of the queue

Parameters
queuequeue
elemelement to be inserted

Definition at line 1108 of file misc.c.

References SCIP_Queue::firstfree, SCIP_Queue::firstused, NULL, queueCheckMarker(), queueCheckSize(), SCIP_CALL, SCIP_OKAY, SCIP_Queue::size, SCIP_Queue::slots, and SCIP_QUEUEELEMENT::uinteger.

Referenced by clearReoptnodes(), createReopttree(), deleteChildrenBelow(), dryBranch(), reopttreeCheckMemory(), SCIPreoptDeleteNode(), and shrinkNode().

◆ SCIPqueueRemove()

void * SCIPqueueRemove ( SCIP_QUEUE queue)

removes and returns the first element of the queue, or NULL if no element exists

removes and returns the first pointer element of the queue, or NULL if no element exists

Parameters
queuequeue

Definition at line 1133 of file misc.c.

References SCIP_Queue::firstfree, SCIP_Queue::firstused, NULL, SCIP_QUEUEELEMENT::ptr, SCIP_Queue::size, and SCIP_Queue::slots.

Referenced by doBfsNext(), and reversePropQueue().

◆ SCIPqueueRemoveUInt()

unsigned int SCIPqueueRemoveUInt ( SCIP_QUEUE queue)

removes and returns the first unsigned integer element of the queue, or UNIT_MAX if no element exists

removes and returns the first unsigned integer element of the queue, or UINT_MAX if no element exists

Parameters
queuequeue

Definition at line 1167 of file misc.c.

References SCIP_Queue::firstfree, SCIP_Queue::firstused, NULL, SCIP_Queue::size, SCIP_Queue::slots, and SCIP_QUEUEELEMENT::uinteger.

Referenced by addNode(), SCIPreoptApplyCompression(), and SCIPreoptSplitRoot().

◆ SCIPqueueFirst()

void * SCIPqueueFirst ( SCIP_QUEUE queue)

returns the first element of the queue without removing it, or NULL if no element exists

Parameters
queuequeue

Definition at line 1201 of file misc.c.

References SCIP_Queue::firstfree, SCIP_Queue::firstused, NULL, SCIP_QUEUEELEMENT::ptr, SCIP_Queue::size, and SCIP_Queue::slots.

◆ SCIPqueueFirstUInt()

unsigned int SCIPqueueFirstUInt ( SCIP_QUEUE queue)

returns the first unsigned integer element of the queue without removing it, or UINT_MAX if no element exists

Parameters
queuequeue

Definition at line 1219 of file misc.c.

References SCIP_Queue::firstfree, SCIP_Queue::firstused, NULL, SCIP_Queue::size, SCIP_Queue::slots, and SCIP_QUEUEELEMENT::uinteger.

◆ SCIPqueueIsEmpty()

SCIP_Bool SCIPqueueIsEmpty ( SCIP_QUEUE queue)

returns whether the queue is empty

Parameters
queuequeue

Definition at line 1237 of file misc.c.

References SCIP_Queue::firstfree, SCIP_Queue::firstused, NULL, and SCIP_Queue::size.

Referenced by doBfsNext(), propConss(), propExprDomains(), reopttreeCheckMemory(), and reversePropQueue().

◆ SCIPqueueNElems()

int SCIPqueueNElems ( SCIP_QUEUE queue)

returns the number of elements in the queue

Parameters
queuequeue

Definition at line 1250 of file misc.c.

References SCIP_Queue::firstfree, SCIP_Queue::firstused, NULL, and SCIP_Queue::size.

Referenced by clearReoptnodes(), createReoptnode(), and createReopttree().