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

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

Referenced by createReopttree(), graph_trail(), reduce_daSlackPrune(), reduce_simple_sap(), reduce_sl(), and SCIPprobdataWriteSolution().

◆ SCIPqueueFree()

void SCIPqueueFree ( SCIP_QUEUE **  queue)

frees queue, but not the data elements themselves

Parameters
queuepointer to a queue

Definition at line 956 of file misc.c.

References BMSfreeMemory, BMSfreeMemoryArray, and NULL.

Referenced by freeReoptTree(), graph_trail(), reduce_daSlackPrune(), reduce_simple_sap(), reduce_sl(), and SCIPprobdataWriteSolution().

◆ SCIPqueueClear()

void SCIPqueueClear ( SCIP_QUEUE queue)

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

Parameters
queuequeue

Definition at line 967 of file misc.c.

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

Referenced by clearReoptnodes().

◆ 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 1018 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 graph_trail(), reduce_daSlackPrune(), reduce_simple_sap(), reduce_sl(), and SCIPprobdataWriteSolution().

◆ 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 1044 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 1069 of file misc.c.

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

Referenced by graph_trail(), reduce_daSlackPrune(), reduce_simple_sap(), reduce_sl(), and SCIPprobdataWriteSolution().

◆ 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 1103 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 1137 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 1155 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 1173 of file misc.c.

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

Referenced by graph_trail(), reduce_daSlackPrune(), reduce_simple_sap(), reduce_sl(), reopttreeCheckMemory(), and SCIPprobdataWriteSolution().

◆ SCIPqueueNElems()

int SCIPqueueNElems ( SCIP_QUEUE queue)

returns the number of elements in the queue

Parameters
queuequeue

Definition at line 1186 of file misc.c.

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

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