Solving Constraint Integer Programs

pub_misc.h File Reference

Detailed Description

public data structures and miscellaneous methods

Tobias Achterberg
Gerald Gamrath
Stefan Heinz
Gregor Hendel
Michael Winkler
Kati Wolter

This file contains a bunch of data structures and miscellaneous methods:

Definition in file pub_misc.h.

#include <math.h>
#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/type_retcode.h"
#include "scip/type_misc.h"
#include "scip/type_message.h"
#include "scip/type_var.h"
#include "scip/pub_misc_select.h"
#include "scip/pub_misc_sort.h"
#include "scip/pub_misc_linear.h"

Go to the source code of this file.


#define SCIPhashSignature64(a)   (UINT64_C(0x8000000000000000)>>((UINT32_C(0x9e3779b9) * ((uint32_t)(a)))>>26))
#define SCIPhashTwo(a, b)   ((uint32_t)((((uint64_t)(a) + 0xd37e9a1ce2148403ULL) * ((uint64_t)(b) + 0xe5fcc163aef32782ULL) )>>32))
#define SCIPhashFour(a, b, c, d)
#define SCIPcombineTwoInt(a, b)   (((uint64_t) (a) << 32) | (uint64_t) (b) )
#define SCIPcombineThreeInt(a, b, c)   (((uint64_t) (a) << 43) + ((uint64_t) (b) << 21) + ((uint64_t) (c)) )
#define SCIPcombineFourInt(a, b, c, d)   (((uint64_t) (a) << 48) + ((uint64_t) (b) << 32) + ((uint64_t) (c) << 16) + ((uint64_t) (d)) )
#define SCIPisFinite(x)   ((x) == (x))


SCIP_Real SCIPstudentTGetCriticalValue (SCIP_CONFIDENCELEVEL clevel, int df)
SCIP_Real SCIPcomputeTwoSampleTTestValue (SCIP_Real meanx, SCIP_Real meany, SCIP_Real variancex, SCIP_Real variancey, SCIP_Real countx, SCIP_Real county)
SCIP_Real SCIPerf (SCIP_Real x)
SCIP_Real SCIPnormalGetCriticalValue (SCIP_CONFIDENCELEVEL clevel)
SCIP_Real SCIPnormalCDF (SCIP_Real mean, SCIP_Real variance, SCIP_Real value)
int SCIPregressionGetNObservations (SCIP_REGRESSION *regression)
SCIP_Real SCIPregressionGetSlope (SCIP_REGRESSION *regression)
SCIP_Real SCIPregressionGetIntercept (SCIP_REGRESSION *regression)
void SCIPregressionRemoveObservation (SCIP_REGRESSION *regression, SCIP_Real x, SCIP_Real y)
void SCIPregressionAddObservation (SCIP_REGRESSION *regression, SCIP_Real x, SCIP_Real y)
void SCIPregressionReset (SCIP_REGRESSION *regression)
SCIP_RETCODE SCIPregressionCreate (SCIP_REGRESSION **regression)
void SCIPregressionFree (SCIP_REGRESSION **regression)
void SCIPgmlWriteNode (FILE *file, unsigned int id, const char *label, const char *nodetype, const char *fillcolor, const char *bordercolor)
void SCIPgmlWriteNodeWeight (FILE *file, unsigned int id, const char *label, const char *nodetype, const char *fillcolor, const char *bordercolor, SCIP_Real weight)
void SCIPgmlWriteEdge (FILE *file, unsigned int source, unsigned int target, const char *label, const char *color)
void SCIPgmlWriteArc (FILE *file, unsigned int source, unsigned int target, const char *label, const char *color)
void SCIPgmlWriteOpening (FILE *file, SCIP_Bool directed)
void SCIPgmlWriteClosing (FILE *file)
SCIP_RETCODE SCIPsparseSolCreate (SCIP_SPARSESOL **sparsesol, SCIP_VAR **vars, int nvars, SCIP_Bool cleared)
void SCIPsparseSolFree (SCIP_SPARSESOL **sparsesol)
SCIP_VAR ** SCIPsparseSolGetVars (SCIP_SPARSESOL *sparsesol)
int SCIPsparseSolGetNVars (SCIP_SPARSESOL *sparsesol)
SCIP_LongintSCIPsparseSolGetLbs (SCIP_SPARSESOL *sparsesol)
SCIP_LongintSCIPsparseSolGetUbs (SCIP_SPARSESOL *sparsesol)
void SCIPsparseSolGetFirstSol (SCIP_SPARSESOL *sparsesol, SCIP_Longint *sol, int nvars)
SCIP_Bool SCIPsparseSolGetNextSol (SCIP_SPARSESOL *sparsesol, SCIP_Longint *sol, int nvars)
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)
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)
static INLINE uint32_t SCIPrealHashCode (double x)
SCIP_RETCODE SCIPhashtableCreate (SCIP_HASHTABLE **hashtable, BMS_BLKMEM *blkmem, int tablesize, SCIP_DECL_HASHGETKEY((*hashgetkey)), SCIP_DECL_HASHKEYEQ((*hashkeyeq)), SCIP_DECL_HASHKEYVAL((*hashkeyval)), void *userptr)
void SCIPhashtableFree (SCIP_HASHTABLE **hashtable)
void SCIPhashtableClear (SCIP_HASHTABLE *hashtable)
SCIP_RETCODE SCIPhashtableInsert (SCIP_HASHTABLE *hashtable, void *element)
SCIP_RETCODE SCIPhashtableSafeInsert (SCIP_HASHTABLE *hashtable, void *element)
void * SCIPhashtableRetrieve (SCIP_HASHTABLE *hashtable, void *key)
SCIP_Bool SCIPhashtableExists (SCIP_HASHTABLE *hashtable, void *element)
SCIP_RETCODE SCIPhashtableRemove (SCIP_HASHTABLE *hashtable, void *element)
void SCIPhashtableRemoveAll (SCIP_HASHTABLE *hashtable)
SCIP_Longint SCIPhashtableGetNElements (SCIP_HASHTABLE *hashtable)
int SCIPhashtableGetNEntries (SCIP_HASHTABLE *hashtable)
void * SCIPhashtableGetEntry (SCIP_HASHTABLE *hashtable, int entryidx)
SCIP_Real SCIPhashtableGetLoad (SCIP_HASHTABLE *hashtable)
void SCIPhashtablePrintStatistics (SCIP_HASHTABLE *hashtable, SCIP_MESSAGEHDLR *messagehdlr)
int SCIPcalcMultihashSize (int minsize)
SCIP_RETCODE SCIPmultihashCreate (SCIP_MULTIHASH **multihash, BMS_BLKMEM *blkmem, int tablesize, SCIP_DECL_HASHGETKEY((*hashgetkey)), SCIP_DECL_HASHKEYEQ((*hashkeyeq)), SCIP_DECL_HASHKEYVAL((*hashkeyval)), void *userptr)
void SCIPmultihashFree (SCIP_MULTIHASH **multihash)
SCIP_RETCODE SCIPmultihashInsert (SCIP_MULTIHASH *multihash, void *element)
SCIP_RETCODE SCIPmultihashSafeInsert (SCIP_MULTIHASH *multihash, void *element)
void * SCIPmultihashRetrieve (SCIP_MULTIHASH *multihash, void *key)
void * SCIPmultihashRetrieveNext (SCIP_MULTIHASH *multihash, SCIP_MULTIHASHLIST **multihashlist, void *key)
SCIP_Bool SCIPmultihashExists (SCIP_MULTIHASH *multihash, void *element)
SCIP_RETCODE SCIPmultihashRemove (SCIP_MULTIHASH *multihash, void *element)
void SCIPmultihashRemoveAll (SCIP_MULTIHASH *multihash)
SCIP_Longint SCIPmultihashGetNElements (SCIP_MULTIHASH *multihash)
SCIP_Real SCIPmultihashGetLoad (SCIP_MULTIHASH *multihash)
void SCIPmultihashPrintStatistics (SCIP_MULTIHASH *multihash, SCIP_MESSAGEHDLR *messagehdlr)
SCIP_RETCODE SCIPhashmapCreate (SCIP_HASHMAP **hashmap, BMS_BLKMEM *blkmem, int mapsize)
void SCIPhashmapFree (SCIP_HASHMAP **hashmap)
SCIP_RETCODE SCIPhashmapInsert (SCIP_HASHMAP *hashmap, void *origin, void *image)
SCIP_RETCODE SCIPhashmapInsertInt (SCIP_HASHMAP *hashmap, void *origin, int image)
SCIP_RETCODE SCIPhashmapInsertReal (SCIP_HASHMAP *hashmap, void *origin, SCIP_Real image)
void * SCIPhashmapGetImage (SCIP_HASHMAP *hashmap, void *origin)
int SCIPhashmapGetImageInt (SCIP_HASHMAP *hashmap, void *origin)
SCIP_Real SCIPhashmapGetImageReal (SCIP_HASHMAP *hashmap, void *origin)
SCIP_RETCODE SCIPhashmapSetImage (SCIP_HASHMAP *hashmap, void *origin, void *image)
SCIP_RETCODE SCIPhashmapSetImageInt (SCIP_HASHMAP *hashmap, void *origin, int image)
SCIP_RETCODE SCIPhashmapSetImageReal (SCIP_HASHMAP *hashmap, void *origin, SCIP_Real image)
SCIP_Bool SCIPhashmapExists (SCIP_HASHMAP *hashmap, void *origin)
SCIP_RETCODE SCIPhashmapRemove (SCIP_HASHMAP *hashmap, void *origin)
void SCIPhashmapPrintStatistics (SCIP_HASHMAP *hashmap, SCIP_MESSAGEHDLR *messagehdlr)
SCIP_Bool SCIPhashmapIsEmpty (SCIP_HASHMAP *hashmap)
int SCIPhashmapGetNElements (SCIP_HASHMAP *hashmap)
int SCIPhashmapGetNEntries (SCIP_HASHMAP *hashmap)
SCIP_HASHMAPENTRYSCIPhashmapGetEntry (SCIP_HASHMAP *hashmap, int entryidx)
void * SCIPhashmapEntryGetOrigin (SCIP_HASHMAPENTRY *entry)
void * SCIPhashmapEntryGetImage (SCIP_HASHMAPENTRY *entry)
int SCIPhashmapEntryGetImageInt (SCIP_HASHMAPENTRY *entry)
SCIP_Real SCIPhashmapEntryGetImageReal (SCIP_HASHMAPENTRY *entry)
void SCIPhashmapEntrySetImage (SCIP_HASHMAPENTRY *entry, void *image)
void SCIPhashmapEntrySetImageInt (SCIP_HASHMAPENTRY *entry, int image)
void SCIPhashmapEntrySetImageReal (SCIP_HASHMAPENTRY *entry, SCIP_Real image)
SCIP_RETCODE SCIPhashmapRemoveAll (SCIP_HASHMAP *hashmap)
SCIP_RETCODE SCIPhashsetCreate (SCIP_HASHSET **hashset, BMS_BLKMEM *blkmem, int size)
void SCIPhashsetFree (SCIP_HASHSET **hashset, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPhashsetInsert (SCIP_HASHSET *hashset, BMS_BLKMEM *blkmem, void *element)
SCIP_Bool SCIPhashsetExists (SCIP_HASHSET *hashset, void *element)
SCIP_RETCODE SCIPhashsetRemove (SCIP_HASHSET *hashset, void *element)
void SCIPhashsetPrintStatistics (SCIP_HASHSET *hashset, SCIP_MESSAGEHDLR *messagehdlr)
SCIP_Bool SCIPhashsetIsEmpty (SCIP_HASHSET *hashset)
int SCIPhashsetGetNElements (SCIP_HASHSET *hashset)
int SCIPhashsetGetNSlots (SCIP_HASHSET *hashset)
void ** SCIPhashsetGetSlots (SCIP_HASHSET *hashset)
void SCIPhashsetRemoveAll (SCIP_HASHSET *hashset)
SCIP_RETCODE SCIPactivityCreate (SCIP_RESOURCEACTIVITY **activity, SCIP_VAR *var, int duration, int demand)
void SCIPactivityFree (SCIP_RESOURCEACTIVITY **activity)
int SCIPactivityGetDuration (SCIP_RESOURCEACTIVITY *activity)
int SCIPactivityGetDemand (SCIP_RESOURCEACTIVITY *activity)
int SCIPactivityGetEnergy (SCIP_RESOURCEACTIVITY *activity)
SCIP_RETCODE SCIPprofileCreate (SCIP_PROFILE **profile, int capacity)
void SCIPprofileFree (SCIP_PROFILE **profile)
void SCIPprofilePrint (SCIP_PROFILE *profile, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
int SCIPprofileGetCapacity (SCIP_PROFILE *profile)
int SCIPprofileGetNTimepoints (SCIP_PROFILE *profile)
int * SCIPprofileGetTimepoints (SCIP_PROFILE *profile)
int * SCIPprofileGetLoads (SCIP_PROFILE *profile)
int SCIPprofileGetTime (SCIP_PROFILE *profile, int pos)
int SCIPprofileGetLoad (SCIP_PROFILE *profile, int pos)
SCIP_Bool SCIPprofileFindLeft (SCIP_PROFILE *profile, int timepoint, int *pos)
SCIP_RETCODE SCIPprofileInsertCore (SCIP_PROFILE *profile, int left, int right, int height, int *pos, SCIP_Bool *infeasible)
SCIP_RETCODE SCIPprofileDeleteCore (SCIP_PROFILE *profile, int left, int right, int height)
int SCIPprofileGetEarliestFeasibleStart (SCIP_PROFILE *profile, int est, int lst, int duration, int height, SCIP_Bool *infeasible)
int SCIPprofileGetLatestFeasibleStart (SCIP_PROFILE *profile, int lb, int ub, int duration, int height, SCIP_Bool *infeasible)
SCIP_RETCODE SCIPdigraphResize (SCIP_DIGRAPH *digraph, int nnodes)
SCIP_RETCODE SCIPdigraphSetSizes (SCIP_DIGRAPH *digraph, int *sizes)
void SCIPdigraphFree (SCIP_DIGRAPH **digraph)
SCIP_RETCODE SCIPdigraphAddArc (SCIP_DIGRAPH *digraph, int startnode, int endnode, void *data)
SCIP_RETCODE SCIPdigraphAddArcSafe (SCIP_DIGRAPH *digraph, int startnode, int endnode, void *data)
SCIP_RETCODE SCIPdigraphSetNSuccessors (SCIP_DIGRAPH *digraph, int node, int nsuccessors)
int SCIPdigraphGetNNodes (SCIP_DIGRAPH *digraph)
void * SCIPdigraphGetNodeData (SCIP_DIGRAPH *digraph, int node)
void SCIPdigraphSetNodeData (SCIP_DIGRAPH *digraph, void *dataptr, int node)
int SCIPdigraphGetNArcs (SCIP_DIGRAPH *digraph)
int SCIPdigraphGetNSuccessors (SCIP_DIGRAPH *digraph, int node)
int * SCIPdigraphGetSuccessors (SCIP_DIGRAPH *digraph, int node)
void ** SCIPdigraphGetSuccessorsData (SCIP_DIGRAPH *digraph, int node)
SCIP_RETCODE SCIPdigraphComputeUndirectedComponents (SCIP_DIGRAPH *digraph, int minsize, int *components, int *ncomponents)
SCIP_RETCODE SCIPdigraphComputeDirectedComponents (SCIP_DIGRAPH *digraph, int compidx, int *strongcomponents, int *strongcompstartidx, int *nstrongcomponents)
SCIP_RETCODE SCIPdigraphTopoSortComponents (SCIP_DIGRAPH *digraph)
int SCIPdigraphGetNComponents (SCIP_DIGRAPH *digraph)
void SCIPdigraphGetComponent (SCIP_DIGRAPH *digraph, int compidx, int **nodes, int *nnodes)
void SCIPdigraphFreeComponents (SCIP_DIGRAPH *digraph)
void SCIPdigraphPrint (SCIP_DIGRAPH *digraph, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
void SCIPdigraphPrintGml (SCIP_DIGRAPH *digraph, FILE *file)
void SCIPdigraphPrintComponents (SCIP_DIGRAPH *digraph, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
SCIP_RETCODE SCIPbtnodeCreate (SCIP_BT *tree, SCIP_BTNODE **node, void *dataptr)
void SCIPbtnodeFree (SCIP_BT *tree, SCIP_BTNODE **node)
void * SCIPbtnodeGetData (SCIP_BTNODE *node)
SCIP_BTNODESCIPbtnodeGetLeftchild (SCIP_BTNODE *node)
SCIP_BTNODESCIPbtnodeGetRightchild (SCIP_BTNODE *node)
SCIP_Bool SCIPbtnodeIsRoot (SCIP_BTNODE *node)
SCIP_Bool SCIPbtnodeIsLeaf (SCIP_BTNODE *node)
SCIP_Bool SCIPbtnodeIsLeftchild (SCIP_BTNODE *node)
SCIP_Bool SCIPbtnodeIsRightchild (SCIP_BTNODE *node)
void SCIPbtnodeSetData (SCIP_BTNODE *node, void *dataptr)
void SCIPbtnodeSetParent (SCIP_BTNODE *node, SCIP_BTNODE *parent)
void SCIPbtnodeSetLeftchild (SCIP_BTNODE *node, SCIP_BTNODE *left)
void SCIPbtnodeSetRightchild (SCIP_BTNODE *node, SCIP_BTNODE *right)
SCIP_RETCODE SCIPbtCreate (SCIP_BT **tree, BMS_BLKMEM *blkmem)
void SCIPbtFree (SCIP_BT **tree)
void SCIPbtPrintGml (SCIP_BT *tree, FILE *file)
SCIP_Bool SCIPbtIsEmpty (SCIP_BT *tree)
void SCIPbtSetRoot (SCIP_BT *tree, SCIP_BTNODE *root)
void SCIPdisjointsetClear (SCIP_DISJOINTSET *djset)
int SCIPdisjointsetFind (SCIP_DISJOINTSET *djset, int element)
void SCIPdisjointsetUnion (SCIP_DISJOINTSET *djset, int p, int q, SCIP_Bool forcerepofp)
int SCIPdisjointsetGetComponentCount (SCIP_DISJOINTSET *djset)
int SCIPdisjointsetGetSize (SCIP_DISJOINTSET *djset)
SCIP_Real SCIPcalcMachineEpsilon (void)
SCIP_Real SCIPnextafter (SCIP_Real from, SCIP_Real to)
SCIP_Longint SCIPcalcGreComDiv (SCIP_Longint val1, SCIP_Longint val2)
SCIP_Longint SCIPcalcSmaComMul (SCIP_Longint val1, SCIP_Longint val2)
SCIP_Longint SCIPcalcBinomCoef (int n, int m)
SCIP_Bool SCIPrealToRational (SCIP_Real val, SCIP_Real mindelta, SCIP_Real maxdelta, SCIP_Longint maxdnom, SCIP_Longint *nominator, SCIP_Longint *denominator)
SCIP_RETCODE SCIPcalcIntegralScalar (SCIP_Real *vals, int nvals, SCIP_Real mindelta, SCIP_Real maxdelta, SCIP_Longint maxdnom, SCIP_Real maxscale, SCIP_Real *intscalar, SCIP_Bool *success)
SCIP_Bool SCIPfindSimpleRational (SCIP_Real lb, SCIP_Real ub, SCIP_Longint maxdnom, SCIP_Longint *nominator, SCIP_Longint *denominator)
SCIP_Real SCIPselectSimpleValue (SCIP_Real lb, SCIP_Real ub, SCIP_Longint maxdnom)
SCIP_Real SCIPrelDiff (SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPcomputeGap (SCIP_Real eps, SCIP_Real inf, SCIP_Real primalbound, SCIP_Real dualbound)
int SCIPgetRandomInt (int minrandval, int maxrandval, unsigned int *seedp)
int SCIPrandomGetInt (SCIP_RANDNUMGEN *randgen, int minrandval, int maxrandval)
SCIP_RETCODE SCIPrandomGetSubset (SCIP_RANDNUMGEN *randgen, void **set, int nelems, void **subset, int nsubelems)
SCIP_Real SCIPrandomGetReal (SCIP_RANDNUMGEN *randgen, SCIP_Real minrandval, SCIP_Real maxrandval)
SCIP_Real SCIPgetRandomReal (SCIP_Real minrandval, SCIP_Real maxrandval, unsigned int *seedp)
SCIP_RETCODE SCIPgetRandomSubset (void **set, int nelems, void **subset, int nsubelems, unsigned int randseed)
void SCIPswapInts (int *value1, int *value2)
void SCIPswapReals (SCIP_Real *value1, SCIP_Real *value2)
void SCIPswapPointers (void **pointer1, void **pointer2)
void SCIPpermuteIntArray (int *array, int begin, int end, unsigned int *randseed)
void SCIPrandomPermuteIntArray (SCIP_RANDNUMGEN *randgen, int *array, int begin, int end)
void SCIPrandomPermuteArray (SCIP_RANDNUMGEN *randgen, void **array, int begin, int end)
void SCIPpermuteArray (void **array, int begin, int end, unsigned int *randseed)
SCIP_RETCODE SCIPcomputeArraysIntersection (int *array1, int narray1, int *array2, int narray2, int *intersectarray, int *nintersectarray)
SCIP_RETCODE SCIPcomputeArraysSetminus (int *array1, int narray1, int *array2, int narray2, int *setminusarray, int *nsetminusarray)
int SCIPmemccpy (char *dest, const char *src, char stop, unsigned int cnt)
void SCIPprintSysError (const char *message)
char * SCIPstrtok (char *s, const char *delim, char **ptrptr)
void SCIPescapeString (char *t, int bufsize, const char *s)
int SCIPsnprintf (char *t, int len, const char *s,...)
int SCIPstrncpy (char *t, const char *s, int size)
SCIP_Bool SCIPstrToIntValue (const char *str, int *value, char **endptr)
SCIP_Bool SCIPstrToRealValue (const char *str, SCIP_Real *value, char **endptr)
void SCIPstrCopySection (const char *str, char startchar, char endchar, char *token, int size, char **endptr)
SCIP_Bool SCIPfileExists (const char *filename)
void SCIPsplitFilename (char *filename, char **path, char **name, char **extension, char **compression)