Scippy

SCIP

Solving Constraint Integer Programs

struct_paramset.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program and library */
4 /* SCIP --- Solving Constraint Integer Programs */
5 /* */
6 /* Copyright (C) 2002-2014 Konrad-Zuse-Zentrum */
7 /* fuer Informationstechnik Berlin */
8 /* */
9 /* SCIP is distributed under the terms of the ZIB Academic License. */
10 /* */
11 /* You should have received a copy of the ZIB Academic License */
12 /* along with SCIP; see the file COPYING. If not email to scip@zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file struct_paramset.h
17  * @brief datastructures for handling parameter settings
18  * @author Tobias Achterberg
19  * @author Timo Berthold
20  */
21 
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
23 
24 #ifndef __SCIP_STRUCT_PARAMSET_H__
25 #define __SCIP_STRUCT_PARAMSET_H__
26 
27 
28 #include "scip/def.h"
29 #include "scip/type_misc.h"
30 #include "scip/type_paramset.h"
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 /** data for SCIP_Bool parameters */
38 {
39  SCIP_Bool* valueptr; /**< pointer to store the current parameter value, or NULL */
40  SCIP_Bool curvalue; /**< stores the current parameter value if it is not stored in *valueptr */
41  SCIP_Bool defaultvalue; /**< default value of the parameter */
42 };
44 
45 /** data for int parameters */
47 {
48  int* valueptr; /**< pointer to store the current parameter value, or NULL */
49  int curvalue; /**< stores the current parameter value if it is not stored in *valueptr */
50  int defaultvalue; /**< default value of the parameter */
51  int minvalue; /**< minimum value for parameter */
52  int maxvalue; /**< maximum value for parameter */
53 };
55 
56 /** data for SCIP_Longint parameters */
58 {
59  SCIP_Longint curvalue; /**< stores the current parameter value if it is not stored in *valueptr */
60  SCIP_Longint defaultvalue; /**< default value of the parameter */
61  SCIP_Longint minvalue; /**< minimum value for parameter */
62  SCIP_Longint maxvalue; /**< maximum value for parameter */
63  SCIP_Longint* valueptr; /**< pointer to store the current parameter value, or NULL */
64 };
66 
67 /** data for SCIP_Real parameters */
69 {
70  SCIP_Real curvalue; /**< stores the current parameter value if it is not stored in *valueptr */
71  SCIP_Real defaultvalue; /**< default value of the parameter */
72  SCIP_Real minvalue; /**< minimum value for parameter */
73  SCIP_Real maxvalue; /**< maximum value for parameter */
74  SCIP_Real* valueptr; /**< pointer to store the current parameter value, or NULL */
75 };
77 
78 /** data for char parameters */
80 {
81  char* valueptr; /**< pointer to store the current parameter value, or NULL */
82  char* allowedvalues; /**< array with possible parameter values, or NULL if not restricted */
83  char curvalue; /**< stores the current parameter value if it is not stored in *valueptr */
84  char defaultvalue; /**< default value of the parameter */
85 };
87 
88 /** data for char* parameters */
90 {
91  char** valueptr; /**< pointer to store the current parameter value, or NULL */
92  char* curvalue; /**< stores the current parameter value if it is not stored in *valueptr */
93  char* defaultvalue; /**< default value of the parameter */
94 };
96 
97 /** single parameter */
98 struct SCIP_Param
99 {
100  union
101  {
102  SCIP_BOOLPARAM boolparam; /**< data for SCIP_Bool parameters */
103  SCIP_INTPARAM intparam; /**< data for int parameters */
104  SCIP_LONGINTPARAM longintparam; /**< data for SCIP_Longint parameters */
105  SCIP_REALPARAM realparam; /**< data for SCIP_Real parameters */
106  SCIP_CHARPARAM charparam; /**< data for char parameters */
107  SCIP_STRINGPARAM stringparam; /**< data for char* parameters */
108  } data;
109  char* name; /**< name of the parameter */
110  char* desc; /**< description of the parameter */
111  SCIP_DECL_PARAMCHGD ((*paramchgd)); /**< change information method of parameter */
112  SCIP_PARAMDATA* paramdata; /**< locally defined parameter specific data */
113  unsigned int isadvanced:1; /**< is this parameter an advanced parameter? */
114  unsigned int isfixed:1; /**< is this parameter fixed? */
115  SCIP_PARAMTYPE paramtype; /**< type of this parameter */
116 };
117 
118 /** set of parameters */
120 {
121  SCIP_HASHTABLE* hashtable; /**< hash table to store the parameters */
122  SCIP_PARAM** params; /**< array with parameters */
123  int nparams; /**< number of parameters */
124  int paramssize; /**< size of params array */
125 };
126 
127 #ifdef __cplusplus
128 }
129 #endif
130 
131 #endif
132