Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

methods for managing data trees

Author
Mohammed Ghannam

Definition in file datatree.c.

#include <stdio.h>
#include <assert.h>
#include <string.h>
#include "scip/datatree.h"
#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/set.h"
#include "scip/stat.h"
#include "scip/pub_datatree.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/syncstore.h"
#include "scip/struct_datatree.h"

Go to the source code of this file.

Macros

#define DATATREE_DEFAULT_CAPACITY   4
 

Functions

static SCIP_RETCODE datatreeExpand (SCIP_DATATREE *datatree, SCIP_SET *set, BMS_BLKMEM *blkmem)
 
static const char * datatreeValueTypeToString (SCIP_DATATREE_VALUETYPE type)
 
SCIP_RETCODE SCIPdatatreeCreate (SCIP_DATATREE **datatree, BMS_BLKMEM *blkmem, int capacity)
 
void SCIPdatatreeFree (SCIP_DATATREE **datatree, BMS_BLKMEM *blkmem)
 
SCIP_RETCODE SCIPdatatreeInsertBool (SCIP_DATATREE *datatree, SCIP_SET *set, BMS_BLKMEM *blkmem, const char *name, SCIP_Bool value)
 
SCIP_RETCODE SCIPdatatreeInsertLong (SCIP_DATATREE *datatree, SCIP_SET *set, BMS_BLKMEM *blkmem, const char *name, SCIP_Longint value)
 
SCIP_RETCODE SCIPdatatreeInsertReal (SCIP_DATATREE *datatree, SCIP_SET *set, BMS_BLKMEM *blkmem, const char *name, SCIP_Real value)
 
SCIP_RETCODE SCIPdatatreeInsertString (SCIP_DATATREE *datatree, SCIP_SET *set, BMS_BLKMEM *blkmem, const char *name, const char *value)
 
SCIP_RETCODE SCIPdatatreeInsertBoolArray (SCIP_DATATREE *datatree, SCIP_SET *set, BMS_BLKMEM *blkmem, const char *name, const SCIP_Bool *values, int nvalues)
 
SCIP_RETCODE SCIPdatatreeInsertLongArray (SCIP_DATATREE *datatree, SCIP_SET *set, BMS_BLKMEM *blkmem, const char *name, const SCIP_Longint *values, int nvalues)
 
SCIP_RETCODE SCIPdatatreeInsertRealArray (SCIP_DATATREE *datatree, SCIP_SET *set, BMS_BLKMEM *blkmem, const char *name, const SCIP_Real *values, int nvalues)
 
SCIP_RETCODE SCIPdatatreeInsertStringArray (SCIP_DATATREE *datatree, SCIP_SET *set, BMS_BLKMEM *blkmem, const char *name, const char *const *values, int nvalues)
 
SCIP_RETCODE SCIPdatatreeInsertTree (SCIP_DATATREE *datatree, SCIP_SET *set, BMS_BLKMEM *blkmem, const char *name, SCIP_DATATREE *value)
 
SCIP_RETCODE SCIPdatatreeWriteJson (SCIP_DATATREE *datatree, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
 
SCIP_RETCODE SCIPdatatreeGetBool (SCIP_DATATREE *datatree, const char *name, SCIP_Bool *value)
 
SCIP_RETCODE SCIPdatatreeGetLong (SCIP_DATATREE *datatree, const char *name, SCIP_Longint *value)
 
SCIP_RETCODE SCIPdatatreeGetReal (SCIP_DATATREE *datatree, const char *name, SCIP_Real *value)
 
SCIP_RETCODE SCIPdatatreeGetString (SCIP_DATATREE *datatree, const char *name, const char **value)
 
SCIP_RETCODE SCIPdatatreeGetBoolArray (SCIP_DATATREE *datatree, const char *name, SCIP_Bool **values, int *nvalues)
 
SCIP_RETCODE SCIPdatatreeGetLongArray (SCIP_DATATREE *datatree, const char *name, SCIP_Longint **values, int *nvalues)
 
SCIP_RETCODE SCIPdatatreeGetRealArray (SCIP_DATATREE *datatree, const char *name, SCIP_Real **values, int *nvalues)
 
SCIP_RETCODE SCIPdatatreeGetStringArray (SCIP_DATATREE *datatree, const char *name, char ***values, int *nvalues)
 
SCIP_RETCODE SCIPdatatreeGetTree (SCIP_DATATREE *datatree, const char *name, SCIP_DATATREE **value)
 

Macro Definition Documentation

◆ DATATREE_DEFAULT_CAPACITY

#define DATATREE_DEFAULT_CAPACITY   4

default capacity of a table store

Definition at line 50 of file datatree.c.

Function Documentation

◆ datatreeExpand()

static SCIP_RETCODE datatreeExpand ( SCIP_DATATREE datatree,
SCIP_SET set,
BMS_BLKMEM blkmem 
)
static

ensure a SCIP_DATATREE object can store an additional item

This function ensures that a SCIP_DATATREE object can store an additional item by increasing the itemssize, if necessary.

Parameters
datatreedata tree
setglobal SCIP settings
blkmemblock memory

Definition at line 58 of file datatree.c.

References BMSreallocBlockMemoryArray, SCIP_Datatree::items, SCIP_Datatree::itemssize, SCIP_Datatree::nitems, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().

Referenced by SCIPdatatreeInsertBool(), SCIPdatatreeInsertBoolArray(), SCIPdatatreeInsertLong(), SCIPdatatreeInsertLongArray(), SCIPdatatreeInsertReal(), SCIPdatatreeInsertRealArray(), SCIPdatatreeInsertString(), SCIPdatatreeInsertStringArray(), and SCIPdatatreeInsertTree().

◆ datatreeValueTypeToString()

◆ SCIPdatatreeCreate()

SCIP_RETCODE SCIPdatatreeCreate ( SCIP_DATATREE **  datatree,
BMS_BLKMEM blkmem,
int  capacity 
)

creates a new SCIP_DATATREE with a given capacity for items

Parameters
datatreebuffer to store pointer to created datatree
blkmemblock memory
capacityinitial capacity

Definition at line 112 of file datatree.c.

References BMSallocBlockMemory, BMSallocBlockMemoryArray, DATATREE_DEFAULT_CAPACITY, NULL, SCIP_ALLOC, and SCIP_OKAY.

Referenced by SCIPcreateDatatree(), SCIPcreateDatatreeInTree(), and SCIPtableOutput().

◆ SCIPdatatreeFree()

◆ SCIPdatatreeInsertBool()

SCIP_RETCODE SCIPdatatreeInsertBool ( SCIP_DATATREE datatree,
SCIP_SET set,
BMS_BLKMEM blkmem,
const char *  name,
SCIP_Bool  value 
)

inserts a SCIP_Bool value into a SCIP_DATATREE object

Parameters
datatreedata tree
setglobal SCIP settings
blkmemblock memory
namename of entry
valuevalue of entry

Definition at line 192 of file datatree.c.

References SCIP_DATATREEVALUEUNION::as_bool, BMSduplicateBlockMemoryArray, SCIP_DATATREEVALUE::data, datatreeExpand(), SCIP_Datatree::items, SCIP_DATATREEITEM::name, SCIP_Datatree::nitems, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_DATATREE_BOOL, SCIP_OKAY, SCIP_DATATREEVALUE::type, and SCIP_DATATREEITEM::value.

Referenced by SCIPinsertDatatreeBool().

◆ SCIPdatatreeInsertLong()

SCIP_RETCODE SCIPdatatreeInsertLong ( SCIP_DATATREE datatree,
SCIP_SET set,
BMS_BLKMEM blkmem,
const char *  name,
SCIP_Longint  value 
)

inserts a long value into a SCIP_DATATREE object

Parameters
datatreedata tree
setglobal SCIP settings
blkmemblock memory
namename of entry
valuevalue of entry

Definition at line 223 of file datatree.c.

References SCIP_DATATREEVALUEUNION::as_long, BMSduplicateBlockMemoryArray, SCIP_DATATREEVALUE::data, datatreeExpand(), SCIP_Datatree::items, SCIP_DATATREEITEM::name, SCIP_Datatree::nitems, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_DATATREE_LONG, SCIP_OKAY, SCIP_DATATREEVALUE::type, and SCIP_DATATREEITEM::value.

Referenced by SCIPinsertDatatreeInt(), SCIPinsertDatatreeLong(), and SCIPprobCollectStatistics().

◆ SCIPdatatreeInsertReal()

SCIP_RETCODE SCIPdatatreeInsertReal ( SCIP_DATATREE datatree,
SCIP_SET set,
BMS_BLKMEM blkmem,
const char *  name,
SCIP_Real  value 
)

inserts a SCIP_Real value into a SCIP_DATATREE object

Parameters
datatreedata tree
setglobal SCIP settings
blkmemblock memory
namename of entry
valuevalue of entry

Definition at line 254 of file datatree.c.

References SCIP_DATATREEVALUEUNION::as_real, BMSduplicateBlockMemoryArray, SCIP_DATATREEVALUE::data, datatreeExpand(), SCIP_Datatree::items, SCIP_DATATREEITEM::name, SCIP_Datatree::nitems, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_DATATREE_REAL, SCIP_OKAY, SCIP_DATATREEVALUE::type, and SCIP_DATATREEITEM::value.

Referenced by SCIPinsertDatatreeReal(), and SCIPprobCollectStatistics().

◆ SCIPdatatreeInsertString()

SCIP_RETCODE SCIPdatatreeInsertString ( SCIP_DATATREE datatree,
SCIP_SET set,
BMS_BLKMEM blkmem,
const char *  name,
const char *  value 
)

inserts a string value into a SCIP_DATATREE object

Parameters
datatreedata tree
setglobal SCIP settings
blkmemblock memory
namename of entry
valuevalue of entry

Definition at line 285 of file datatree.c.

References SCIP_DATATREEVALUEUNION::as_string, BMSduplicateBlockMemoryArray, SCIP_DATATREEVALUE::data, datatreeExpand(), SCIP_Datatree::items, SCIP_DATATREEITEM::name, SCIP_Datatree::nitems, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_DATATREE_STRING, SCIP_OKAY, SCIP_DATATREEVALUE::type, and SCIP_DATATREEITEM::value.

Referenced by SCIPinsertDatatreeString(), and SCIPprobCollectStatistics().

◆ SCIPdatatreeInsertBoolArray()

SCIP_RETCODE SCIPdatatreeInsertBoolArray ( SCIP_DATATREE datatree,
SCIP_SET set,
BMS_BLKMEM blkmem,
const char *  name,
const SCIP_Bool values,
int  nvalues 
)

inserts a SCIP_Bool array into a SCIP_DATATREE object

Parameters
datatreedata tree
setglobal SCIP settings
blkmemblock memory
namename of entry
valuesvalues of entry
nvaluesnumber of values

Definition at line 316 of file datatree.c.

References SCIP_DATATREEVALUEUNION::as_boolarray, BMSduplicateBlockMemoryArray, SCIP_DATATREEVALUE::data, datatreeExpand(), SCIP_Datatree::items, SCIP_DATATREEITEM::name, SCIP_Datatree::nitems, NULL, SCIP_DATATREEVALUE::nvalues, SCIP_ALLOC, SCIP_CALL, SCIP_DATATREE_BOOLARRAY, SCIP_OKAY, SCIP_DATATREEVALUE::type, and SCIP_DATATREEITEM::value.

Referenced by SCIPinsertDatatreeBoolArray().

◆ SCIPdatatreeInsertLongArray()

SCIP_RETCODE SCIPdatatreeInsertLongArray ( SCIP_DATATREE datatree,
SCIP_SET set,
BMS_BLKMEM blkmem,
const char *  name,
const SCIP_Longint values,
int  nvalues 
)

inserts a SCIP_Longint array into a SCIP_DATATREE object

Parameters
datatreedata tree
setglobal SCIP settings
blkmemblock memory
namename of entry
valuesvalues of entry
nvaluesnumber of values

Definition at line 351 of file datatree.c.

References SCIP_DATATREEVALUEUNION::as_longarray, BMSduplicateBlockMemoryArray, SCIP_DATATREEVALUE::data, datatreeExpand(), SCIP_Datatree::items, SCIP_DATATREEITEM::name, SCIP_Datatree::nitems, NULL, SCIP_DATATREEVALUE::nvalues, SCIP_ALLOC, SCIP_CALL, SCIP_DATATREE_LONGARRAY, SCIP_OKAY, SCIP_DATATREEVALUE::type, and SCIP_DATATREEITEM::value.

Referenced by SCIPinsertDatatreeIntArray(), and SCIPinsertDatatreeLongArray().

◆ SCIPdatatreeInsertRealArray()

SCIP_RETCODE SCIPdatatreeInsertRealArray ( SCIP_DATATREE datatree,
SCIP_SET set,
BMS_BLKMEM blkmem,
const char *  name,
const SCIP_Real values,
int  nvalues 
)

inserts a SCIP_Real array into a SCIP_DATATREE object

Parameters
datatreedata tree
setglobal SCIP settings
blkmemblock memory
namename of entry
valuesvalues of entry
nvaluesnumber of values

Definition at line 386 of file datatree.c.

References SCIP_DATATREEVALUEUNION::as_realarray, BMSduplicateBlockMemoryArray, SCIP_DATATREEVALUE::data, datatreeExpand(), SCIP_Datatree::items, SCIP_DATATREEITEM::name, SCIP_Datatree::nitems, NULL, SCIP_DATATREEVALUE::nvalues, SCIP_ALLOC, SCIP_CALL, SCIP_DATATREE_REALARRAY, SCIP_OKAY, SCIP_DATATREEVALUE::type, and SCIP_DATATREEITEM::value.

Referenced by SCIPinsertDatatreeRealArray().

◆ SCIPdatatreeInsertStringArray()

SCIP_RETCODE SCIPdatatreeInsertStringArray ( SCIP_DATATREE datatree,
SCIP_SET set,
BMS_BLKMEM blkmem,
const char *  name,
const char *const *  values,
int  nvalues 
)

inserts a string array into a SCIP_DATATREE object

Parameters
datatreedata tree
setglobal SCIP settings
blkmemblock memory
namename of entry
valuesvalues of entry
nvaluesnumber of values

Definition at line 421 of file datatree.c.

References SCIP_DATATREEVALUEUNION::as_stringarray, BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, SCIP_DATATREEVALUE::data, datatreeExpand(), SCIP_Datatree::items, SCIP_DATATREEITEM::name, SCIP_Datatree::nitems, NULL, SCIP_DATATREEVALUE::nvalues, SCIP_ALLOC, SCIP_CALL, SCIP_DATATREE_STRINGARRAY, SCIP_OKAY, SCIP_DATATREEVALUE::type, and SCIP_DATATREEITEM::value.

Referenced by SCIPinsertDatatreeStringArray().

◆ SCIPdatatreeInsertTree()

SCIP_RETCODE SCIPdatatreeInsertTree ( SCIP_DATATREE datatree,
SCIP_SET set,
BMS_BLKMEM blkmem,
const char *  name,
SCIP_DATATREE value 
)

inserts a datatree value into a SCIP_DATATREE object

Parameters
datatreedata tree
setglobal SCIP settings
blkmemblock memory
namename of entry
valuevalue of entry

Definition at line 461 of file datatree.c.

References SCIP_DATATREEVALUEUNION::as_dtree, BMSduplicateBlockMemoryArray, SCIP_DATATREEVALUE::data, datatreeExpand(), SCIP_Datatree::items, SCIP_DATATREEITEM::name, SCIP_Datatree::nitems, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_DATATREE_DATATREE, SCIP_OKAY, SCIP_DATATREEVALUE::type, and SCIP_DATATREEITEM::value.

Referenced by SCIPcreateDatatreeInTree(), and SCIPinsertDatatreeTree().

◆ SCIPdatatreeWriteJson()