Scippy

SCIP

Solving Constraint Integer Programs

struct_var.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-2025 Zuse Institute Berlin (ZIB) */
7/* */
8/* Licensed under the Apache License, Version 2.0 (the "License"); */
9/* you may not use this file except in compliance with the License. */
10/* You may obtain a copy of the License at */
11/* */
12/* http://www.apache.org/licenses/LICENSE-2.0 */
13/* */
14/* Unless required by applicable law or agreed to in writing, software */
15/* distributed under the License is distributed on an "AS IS" BASIS, */
16/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
17/* See the License for the specific language governing permissions and */
18/* limitations under the License. */
19/* */
20/* You should have received a copy of the Apache-2.0 license */
21/* along with SCIP; see the file LICENSE. If not visit scipopt.org. */
22/* */
23/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
24
25/**@file struct_var.h
26 * @ingroup INTERNALAPI
27 * @brief datastructures for problem variables
28 * @author Tobias Achterberg
29 */
30
31/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
32
33#ifndef __SCIP_STRUCT_VAR_H__
34#define __SCIP_STRUCT_VAR_H__
35
36
37#include "scip/def.h"
38#include "scip/type_history.h"
39#include "scip/type_event.h"
40#include "scip/type_var.h"
41#include "scip/type_implics.h"
42#include "scip/type_cons.h"
43#include "scip/type_prop.h"
44#include "scip/type_lp.h"
45#include "scip/rational.h"
46#include "scip/type_lpexact.h"
47#include "scip/intervalarith.h"
48
49#ifdef __cplusplus
50extern "C" {
51#endif
52
53/** hole in a domain */
55{
56 SCIP_Real left; /**< left bound of open interval defining the hole (left,right) */
57 SCIP_Real right; /**< right bound of open interval defining the hole (left,right) */
58};
59
60/** list of domain holes */
62{
63 SCIP_HOLE hole; /**< this hole */
64 SCIP_HOLELIST* next; /**< next hole in list */
65};
66
67/** change in a hole list */
69{
70 SCIP_HOLELIST** ptr; /**< changed list pointer */
71 SCIP_HOLELIST* newlist; /**< new value of list pointer */
72 SCIP_HOLELIST* oldlist; /**< old value of list pointer */
73};
74
75/** data for branching decision bound changes */
76struct SCIP_BranchingData
77{
78 SCIP_Real lpsolval; /**< sol val of var in last LP prior to bound change, or SCIP_INVALID if unknown */
79};
80
81/** data for inferred bound changes */
82struct SCIP_InferenceData
83{
84 SCIP_VAR* var; /**< variable that was changed (parent of var, or var itself) */
85 union
86 {
87 SCIP_CONS* cons; /**< constraint that inferred this bound change, or NULL */
88 SCIP_PROP* prop; /**< propagator that inferred this bound change, or NULL */
89 } reason;
90 int info; /**< user information for inference to help resolving the conflict */
91};
92
93/** change in one bound of a variable */
95{
96 SCIP_Real newbound; /**< new value for bound */
97 SCIP_RATIONAL* newboundexact; /**< new value for exact bound, or NULL if not needed */
98 union
99 {
100 SCIP_BRANCHINGDATA branchingdata; /**< data for branching decisions */
101 SCIP_INFERENCEDATA inferencedata; /**< data for inferred bound changes */
103 SCIP_Longint certificateindex; /**< line in certificate for this bound change (-1 if not used) */
104 SCIP_VAR* var; /**< active variable to change the bounds for */
105 unsigned int boundchgtype:2; /**< bound change type: branching decision or inferred bound change */
106 unsigned int boundtype:1; /**< type of bound for var: lower or upper bound */
107 unsigned int inferboundtype:1; /**< type of bound for inference var (see inference data): lower or upper bound */
108 unsigned int applied:1; /**< was this bound change applied at least once? */
109 unsigned int redundant:1; /**< is this bound change redundant? */
110};
111
112/** bound change index representing the time of the bound change in path from root to current node */
114{
115 int depth; /**< depth of node where the bound change was created */
116 int pos; /**< position of bound change in node's domchg array */
117};
118
119/** bound change information to track bound changes from root node to current node */
121{
122 SCIP_Real oldbound; /**< old value for bound */
123 SCIP_Real newbound; /**< new value for bound */
124 SCIP_Longint oldcertificateindex;/**< certificate line for old bound (-1 if certificate is not used) */
125 SCIP_VAR* var; /**< active variable that changed the bounds */
126 SCIP_INFERENCEDATA inferencedata; /**< data for inferred bound changes */
127 SCIP_BDCHGIDX bdchgidx; /**< bound change index in path from root to current node */
128 unsigned int pos:27; /**< position in the variable domain change array */
129 unsigned int boundchgtype:2; /**< bound change type: branching decision or inferred bound change */
130 unsigned int boundtype:1; /**< type of bound for var: lower or upper bound */
131 unsigned int inferboundtype:1; /**< type of bound for inference var (see inference data): lower or upper bound */
132 unsigned int redundant:1; /**< does the bound change info belong to a redundant bound change? */
133};
134
135/** tracks changes of the variables' domains (static arrays, bound changes only) */
137{
138 unsigned int nboundchgs:30; /**< number of bound changes (must be first structure entry!) */
139 unsigned int domchgtype:2; /**< type of domain change data (must be first structure entry!) */
140 SCIP_BOUNDCHG* boundchgs; /**< array with changes in bounds of variables */
141};
142
143/** tracks changes of the variables' domains (static arrays, bound and hole changes) */
145{
146 unsigned int nboundchgs:30; /**< number of bound changes (must be first structure entry!) */
147 unsigned int domchgtype:2; /**< type of domain change data (must be first structure entry!) */
148 SCIP_BOUNDCHG* boundchgs; /**< array with changes in bounds of variables */
149 SCIP_HOLECHG* holechgs; /**< array with changes in hole lists */
150 int nholechgs; /**< number of hole list changes */
151};
152
153/** tracks changes of the variables' domains (dynamic arrays) */
155{
156 unsigned int nboundchgs:30; /**< number of bound changes (must be first structure entry!) */
157 unsigned int domchgtype:2; /**< type of domain change data (must be first structure entry!) */
158 SCIP_BOUNDCHG* boundchgs; /**< array with changes in bounds of variables */
159 SCIP_HOLECHG* holechgs; /**< array with changes in hole lists */
160 int nholechgs; /**< number of hole list changes */
161 int boundchgssize; /**< size of bound changes array */
162 int holechgssize; /**< size of hole changes array */
163};
164
165/** tracks changes of the variables' domains */
167{
168 SCIP_DOMCHGBOUND domchgbound; /**< bound changes */
169 SCIP_DOMCHGBOTH domchgboth; /**< bound and hole changes */
170 SCIP_DOMCHGDYN domchgdyn; /**< bound and hole changes with dynamic arrays */
171};
172
173/** domain of a variable */
175{
176 SCIP_Real lb; /**< lower bounds of variables */
177 SCIP_Real ub; /**< upper bounds of variables */
178 SCIP_HOLELIST* holelist; /**< list of holes */
179};
180
181/** exact domain of a variable */
183{
184 SCIP_RATIONAL* lb; /**< exact lower bound of variables */
185 SCIP_RATIONAL* ub; /**< exact upper bound of variables */
186 SCIP_Longint lbcertificateidx; /**< certificate index of lower bound (-1 if not set or no certificate active) */
187 SCIP_Longint ubcertificateidx; /**< certificate index of upper bound (-1 if not set or no certificate active) */
188};
189
190/** original variable information */
192{
193 SCIP_DOM origdom; /**< domain of variable in original problem */
194 SCIP_VAR* transvar; /**< pointer to representing transformed variable */
195};
196
197/** loose variable information
198 *
199 * bounds on the absolute values of the coefficients with which the variable appears in aggregations (after flattening the aggregation graph)
200 */
202{
203 SCIP_Real minaggrcoef; /**< lower bound on absolute coefficient the variable has in aggregations */
204 SCIP_Real maxaggrcoef; /**< upper bound on absolute coefficient the variable has in aggregations */
205};
206
207/** aggregation information: x = a*y + c */
209{
210 SCIP_Real scalar; /**< multiplier a in aggregation */
211 SCIP_Real constant; /**< constant shift c in aggregation */
212 SCIP_VAR* var; /**< variable y in aggregation */
213};
214
215/** exact aggregation information: x = a*y + c */
217{
218 SCIP_RATIONAL* scalar; /**< multiplier a in aggregation */
219 SCIP_RATIONAL* constant; /**< constant shift c in aggregation */
220};
221
222/** multiple aggregation information: x = a_1*y_1 + ... + a_k*y_k + c */
224{
225 SCIP_Real constant; /**< constant shift c in multiple aggregation */
226 SCIP_Real* scalars; /**< multipliers a in multiple aggregation */
227 SCIP_VAR** vars; /**< variables y in multiple aggregation */
228 int nvars; /**< number of variables in aggregation */
229 int varssize; /**< size of vars and scalars arrays */
230};
231
232/** multiple aggregation information: x = a_1*y_1 + ... + a_k*y_k + c */
234{
235 SCIP_RATIONAL* constant; /**< constant shift c in multiple aggregation */
236 SCIP_RATIONAL** scalars; /**< multipliers a in multiple aggregation */
237};
238
239/** negation information: x' = c - x */
241{
242 SCIP_Real constant; /**< constant shift c in negation */
243};
244
245/** exact variable domains and further information */
247{
248 SCIP_RATIONAL* obj; /**< exact rational objective */
249 SCIP_INTERVAL objinterval; /**< interval approximation of obj (for faster performance) */
250 SCIP_DOMEXACT locdom; /**< exact local bounds */
251 SCIP_DOMEXACT glbdom; /**< exact global bound */
252 SCIP_DOMEXACT origdom; /**< original domain */
253 SCIP_AGGREGATEEXACT aggregate; /**< exact aggregation data */
254 SCIP_MULTAGGREXACT multaggr; /**< exact aggregation data */
255 SCIP_COLEXACT* colexact; /**< column in exact lp */
256 SCIP_VARSTATUS varstatusexact; /**< status in exact lp */
257 int certificateindex; /**< original probindex (needed for certificate), or -1 */
258};
259
260/** variable of the problem */
262{
263 SCIP_Real obj; /**< objective function value of variable (might be changed temporarily in probing mode)*/
264 SCIP_Real unchangedobj; /**< unchanged objective function value of variable (ignoring temporary changes in probing mode) */
265 SCIP_Real branchfactor; /**< factor to weigh variable's branching score with */
266 SCIP_Real rootsol; /**< last primal solution of variable in root node, or zero */
267 SCIP_Real bestrootsol; /**< best primal solution of variable in root node, or zero, w.r.t. root LP value and root reduced cost */
268 SCIP_Real bestrootredcost; /**< best reduced costs of variable in root node, or zero, w.r.t. root LP value and root solution value */
269 SCIP_Real bestrootlpobjval; /**< best root LP objective value, or SCIP_INVALID, w.r.t. root solution value and root reduced cost */
270 SCIP_Real relaxsol; /**< primal solution of variable in current relaxation solution, or SCIP_INVALID */
271 SCIP_Real nlpsol; /**< primal solution of variable in current NLP solution, or SCIP_INVALID */
272 SCIP_Real primsolavg; /**< weighted average of all values of variable in primal feasible solutions */
273 SCIP_Real conflictlb; /**< maximal lower bound of variable in the current conflict */
274 SCIP_Real conflictub; /**< minimal upper bound of variable in the current conflict */
275 SCIP_Real conflictrelaxedlb; /**< maximal relaxed lower bound of variable in the current conflict (conflictrelaxedlb <= conflictlb) */
276 SCIP_Real conflictrelaxedub; /**< minimal relaxed upper bound of variable in the current conflict (conflictrelaxedub >= conflictub) */
277 SCIP_Real lazylb; /**< global lower bound that is ensured by constraints and has not to be added to the LP */
278 SCIP_Real lazyub; /**< global upper bound that is ensured by constraints and has not to be added to the LP */
279 SCIP_DOM glbdom; /**< domain of variable in global problem */
280 SCIP_DOM locdom; /**< domain of variable in current subproblem */
281 union
282 {
283 SCIP_ORIGINAL original; /**< original variable information */
284 SCIP_LOOSE loose; /**< loose variable information */
285 SCIP_NEGATE negate; /**< negation variable information */
286 SCIP_AGGREGATE aggregate; /**< aggregation variable information */
287 SCIP_MULTAGGR multaggr; /**< multi-aggregation variable information */
288 SCIP_COL* col; /**< LP column for column variable */
290 SCIP_VARDATAEXACT* exactdata; /**< exact variable data (obj, lb, ub, ...) */
291 char* name; /**< name of the variable */
292 SCIP_DECL_VARCOPY ((*varcopy)); /**< copies variable data if wanted to subscip, or NULL */
293 SCIP_DECL_VARDELORIG ((*vardelorig)); /**< frees user data of original variable */
294 SCIP_DECL_VARTRANS ((*vartrans)); /**< creates transformed user data by transforming original user data */
295 SCIP_DECL_VARDELTRANS ((*vardeltrans)); /**< frees user data of transformed variable */
296 SCIP_VARDATA* vardata; /**< user data for this specific variable */
297 SCIP_VAR** parentvars; /**< parent variables in the aggregation tree */
298 SCIP_VAR* negatedvar; /**< pointer to the variables negation: x' = lb + ub - x, or NULL if not created */
299 SCIP_VBOUNDS* vlbs; /**< variable lower bounds x >= b*y + d */
300 SCIP_VBOUNDS* vubs; /**< variable upper bounds x <= b*y + d */
301 SCIP_IMPLICS* implics; /**< implications y >=/<= b following from x <= 0 and x >= 1 (x binary), or NULL if x is not binary */
302 SCIP_CLIQUELIST* cliquelist; /**< list of cliques the variable and its negation is member of */
303 SCIP_EVENTFILTER* eventfilter; /**< event filter for events concerning this variable; not for ORIGINAL vars */
304 SCIP_BDCHGINFO* lbchginfos; /**< bound change informations for lower bound changes from root to current node */
305 SCIP_BDCHGINFO* ubchginfos; /**< bound change informations for upper bound changes from root to current node */
306 SCIP_HISTORY* history; /**< branching and inference history information */
307 SCIP_HISTORY* historycrun; /**< branching and inference history information for current run */
308 SCIP_VALUEHISTORY* valuehistory; /**< branching and inference history information which are value based, or NULL if not used */
309 SCIP_Longint closestvblpcount; /**< LP count for which the closestvlbidx/closestvubidx entries are valid */
310 int index; /**< consecutively numbered variable identifier */
311 int probindex; /**< array position in problems vars array, or -1 if not assigned to a problem */
312 int pseudocandindex; /**< array position in pseudo branching candidates array, or -1 */
313 int eventqueueindexobj; /**< array position in event queue of objective change event, or -1 */
314 int eventqueueindexlb; /**< array position in event queue of lower bound change event, or -1 */
315 int eventqueueindexub; /**< array position in event queue of upper bound change event, or -1 */
316 int parentvarssize; /**< available slots in parentvars array */
317 int nparentvars; /**< number of parent variables in aggregation tree (used slots of parentvars) */
318 int nuses; /**< number of times, this variable is referenced */
319 int nlocksdown[NLOCKTYPES]; /**< array of variable locks for rounding down; if zero, rounding down is always feasible */
320 int nlocksup[NLOCKTYPES]; /**< array of variable locks for rounding up; if zero, rounding up is always feasible */
321 int branchpriority; /**< priority of the variable for branching */
322 int lbchginfossize; /**< available slots in lbchginfos array */
323 int nlbchginfos; /**< number of lower bound changes from root node to current node */
324 int ubchginfossize; /**< available slots in ubchginfos array */
325 int nubchginfos; /**< number of upper bound changes from root node to current node */
326 int conflictlbcount; /**< number of last conflict, the lower bound was member of */
327 int conflictubcount; /**< number of last conflict, the upper bound was member of */
328 int closestvlbidx; /**< index of closest VLB variable in current LP solution, or -1 */
329 int closestvubidx; /**< index of closest VUB variable in current LP solution, or -1 */
330 unsigned int initial:1; /**< TRUE iff var's column should be present in the initial root LP */
331 unsigned int removable:1; /**< TRUE iff var's column is removable from the LP (due to aging or cleanup) */
332 unsigned int deletable:1; /**< TRUE iff the variable is removable from the problem */
333 unsigned int deleted:1; /**< TRUE iff variable was marked for deletion from the problem */
334 unsigned int donotaggr:1; /**< TRUE iff variable is not allowed to be aggregated */
335 unsigned int donotmultaggr:1; /**< TRUE iff variable is not allowed to be multi-aggregated */
336 unsigned int vartype:2; /**< type of variable: binary, integer, continuous */
337 unsigned int varimpltype:2; /**< implied integral type of variable: none, weak or strong */
338 unsigned int varstatus:3; /**< status of variable: original, loose, column, fixed, aggregated, multiaggregated, negated */
339 unsigned int pseudocostflag:2; /**< temporary flag used in pseudo cost update */
340 unsigned int branchdirection:2; /**< preferred branching direction of the variable (downwards, upwards, auto) */
341 unsigned int eventqueueimpl:1; /**< is an IMPLADDED event on this variable currently in the event queue? */
342 unsigned int delglobalstructs:1; /**< is variable marked to be removed from global structures (cliques etc.)? */
343 unsigned int relaxationonly:1; /**< TRUE if variable has been introduced only to define a relaxation */
344#ifndef NDEBUG
345 SCIP* scip; /**< SCIP data structure */
346#endif
347};
348
349#ifdef __cplusplus
350}
351#endif
352
353#endif
common defines and data types used in all packages of SCIP
#define SCIP_Longint
Definition: def.h:141
#define SCIP_Real
Definition: def.h:156
interval arithmetics for provable bounds
wrapper for rational number arithmetic
SCIP_RATIONAL * scalar
Definition: struct_var.h:218
SCIP_RATIONAL * constant
Definition: struct_var.h:219
SCIP_VAR * var
Definition: struct_var.h:212
SCIP_Real scalar
Definition: struct_var.h:210
SCIP_Real constant
Definition: struct_var.h:211
SCIP_BDCHGIDX bdchgidx
Definition: struct_var.h:127
SCIP_Real newbound
Definition: struct_var.h:123
SCIP_INFERENCEDATA inferencedata
Definition: struct_var.h:126
unsigned int boundchgtype
Definition: struct_var.h:129
unsigned int boundtype
Definition: struct_var.h:130
SCIP_VAR * var
Definition: struct_var.h:125
unsigned int redundant
Definition: struct_var.h:132
unsigned int inferboundtype
Definition: struct_var.h:131
SCIP_Longint oldcertificateindex
Definition: struct_var.h:124
SCIP_Real oldbound
Definition: struct_var.h:122
unsigned int pos
Definition: struct_var.h:128
SCIP_RATIONAL * newboundexact
Definition: struct_var.h:97
union SCIP_BoundChg::@23 data
SCIP_Longint certificateindex
Definition: struct_var.h:103
SCIP_Real newbound
Definition: struct_var.h:96
unsigned int applied
Definition: struct_var.h:108
unsigned int boundtype
Definition: struct_var.h:106
SCIP_INFERENCEDATA inferencedata
Definition: struct_var.h:101
unsigned int redundant
Definition: struct_var.h:109
SCIP_VAR * var
Definition: struct_var.h:104
SCIP_BRANCHINGDATA branchingdata
Definition: struct_var.h:100
unsigned int inferboundtype
Definition: struct_var.h:107
unsigned int boundchgtype
Definition: struct_var.h:105
SCIP_BOUNDCHG * boundchgs
Definition: struct_var.h:148
unsigned int nboundchgs
Definition: struct_var.h:146
SCIP_HOLECHG * holechgs
Definition: struct_var.h:149
unsigned int domchgtype
Definition: struct_var.h:147
SCIP_BOUNDCHG * boundchgs
Definition: struct_var.h:140
unsigned int domchgtype
Definition: struct_var.h:139
unsigned int nboundchgs
Definition: struct_var.h:138
SCIP_BOUNDCHG * boundchgs
Definition: struct_var.h:158
SCIP_HOLECHG * holechgs
Definition: struct_var.h:159
unsigned int nboundchgs
Definition: struct_var.h:156
unsigned int domchgtype
Definition: struct_var.h:157
SCIP_RATIONAL * ub
Definition: struct_var.h:185
SCIP_Longint lbcertificateidx
Definition: struct_var.h:186
SCIP_RATIONAL * lb
Definition: struct_var.h:184
SCIP_Longint ubcertificateidx
Definition: struct_var.h:187
SCIP_Real lb
Definition: struct_var.h:176
SCIP_Real ub
Definition: struct_var.h:177
SCIP_HOLELIST * holelist
Definition: struct_var.h:178
SCIP_HOLELIST ** ptr
Definition: struct_var.h:70
SCIP_HOLELIST * oldlist
Definition: struct_var.h:72
SCIP_HOLELIST * newlist
Definition: struct_var.h:71
SCIP_Real right
Definition: struct_var.h:57
SCIP_Real left
Definition: struct_var.h:56
SCIP_HOLELIST * next
Definition: struct_var.h:64
SCIP_HOLE hole
Definition: struct_var.h:63
SCIP_Real minaggrcoef
Definition: struct_var.h:203
SCIP_Real maxaggrcoef
Definition: struct_var.h:204
SCIP_RATIONAL ** scalars
Definition: struct_var.h:236
SCIP_RATIONAL * constant
Definition: struct_var.h:235
SCIP_VAR ** vars
Definition: struct_var.h:227
SCIP_Real constant
Definition: struct_var.h:225
SCIP_Real * scalars
Definition: struct_var.h:226
SCIP_Real constant
Definition: struct_var.h:242
SCIP_DOM origdom
Definition: struct_var.h:193
SCIP_VAR * transvar
Definition: struct_var.h:194
SCIP_INTERVAL objinterval
Definition: struct_var.h:249
SCIP_DOMEXACT glbdom
Definition: struct_var.h:251
SCIP_RATIONAL * obj
Definition: struct_var.h:248
SCIP_DOMEXACT origdom
Definition: struct_var.h:252
SCIP_COLEXACT * colexact
Definition: struct_var.h:255
SCIP_MULTAGGREXACT multaggr
Definition: struct_var.h:254
SCIP_VARSTATUS varstatusexact
Definition: struct_var.h:256
SCIP_AGGREGATEEXACT aggregate
Definition: struct_var.h:253
SCIP_DOMEXACT locdom
Definition: struct_var.h:250
SCIP_Real lazylb
Definition: struct_var.h:277
SCIP_VARDATA * vardata
Definition: struct_var.h:296
SCIP_EVENTFILTER * eventfilter
Definition: struct_var.h:303
int nubchginfos
Definition: struct_var.h:325
SCIP_Real lazyub
Definition: struct_var.h:278
SCIP_ORIGINAL original
Definition: struct_var.h:283
SCIP_VBOUNDS * vlbs
Definition: struct_var.h:299
SCIP_AGGREGATE aggregate
Definition: struct_var.h:286
SCIP_IMPLICS * implics
Definition: struct_var.h:301
SCIP_VAR ** parentvars
Definition: struct_var.h:297
SCIP_BDCHGINFO * lbchginfos
Definition: struct_var.h:304
SCIP_Real rootsol
Definition: struct_var.h:266
SCIP_DECL_VARDELTRANS((*vardeltrans))
SCIP_VAR * negatedvar
Definition: struct_var.h:298
int eventqueueindexobj
Definition: struct_var.h:313
SCIP * scip
Definition: struct_var.h:345
unsigned int varstatus
Definition: struct_var.h:338
int nlocksdown[NLOCKTYPES]
Definition: struct_var.h:319
SCIP_Real bestrootsol
Definition: struct_var.h:267
SCIP_HISTORY * historycrun
Definition: struct_var.h:307
unsigned int relaxationonly
Definition: struct_var.h:343
unsigned int donotmultaggr
Definition: struct_var.h:335
int closestvubidx
Definition: struct_var.h:329
SCIP_DOM glbdom
Definition: struct_var.h:279
unsigned int vartype
Definition: struct_var.h:336
unsigned int varimpltype
Definition: struct_var.h:337
SCIP_Real branchfactor
Definition: struct_var.h:265
int pseudocandindex
Definition: struct_var.h:312
int conflictubcount
Definition: struct_var.h:327
SCIP_Real unchangedobj
Definition: struct_var.h:264
unsigned int eventqueueimpl
Definition: struct_var.h:341
SCIP_Real conflictrelaxedub
Definition: struct_var.h:276
SCIP_BDCHGINFO * ubchginfos
Definition: struct_var.h:305
unsigned int pseudocostflag
Definition: struct_var.h:339
SCIP_Real conflictub
Definition: struct_var.h:274
SCIP_Real bestrootredcost
Definition: struct_var.h:268
char * name
Definition: struct_var.h:291
SCIP_DECL_VARTRANS((*vartrans))
int eventqueueindexlb
Definition: struct_var.h:314
int eventqueueindexub
Definition: struct_var.h:315
SCIP_Real conflictrelaxedlb
Definition: struct_var.h:275
unsigned int deletable
Definition: struct_var.h:332
SCIP_VARDATAEXACT * exactdata
Definition: struct_var.h:290
unsigned int initial
Definition: struct_var.h:330
SCIP_DOM locdom
Definition: struct_var.h:280
unsigned int removable
Definition: struct_var.h:331
SCIP_CLIQUELIST * cliquelist
Definition: struct_var.h:302
SCIP_COL * col
Definition: struct_var.h:288
unsigned int deleted
Definition: struct_var.h:333
SCIP_MULTAGGR multaggr
Definition: struct_var.h:287
SCIP_Real obj
Definition: struct_var.h:263
int probindex
Definition: struct_var.h:311
SCIP_Real nlpsol
Definition: struct_var.h:271
int nlocksup[NLOCKTYPES]
Definition: struct_var.h:320
int nlbchginfos
Definition: struct_var.h:323
unsigned int branchdirection
Definition: struct_var.h:340
unsigned int delglobalstructs
Definition: struct_var.h:342
union SCIP_Var::@24 data
int lbchginfossize
Definition: struct_var.h:322
SCIP_HISTORY * history
Definition: struct_var.h:306
int index
Definition: struct_var.h:310
SCIP_VBOUNDS * vubs
Definition: struct_var.h:300
int nparentvars
Definition: struct_var.h:317
SCIP_DECL_VARDELORIG((*vardelorig))
unsigned int donotaggr
Definition: struct_var.h:334
int parentvarssize
Definition: struct_var.h:316
int nuses
Definition: struct_var.h:318
int closestvlbidx
Definition: struct_var.h:328
SCIP_LOOSE loose
Definition: struct_var.h:284
SCIP_DECL_VARCOPY((*varcopy))
SCIP_NEGATE negate
Definition: struct_var.h:285
SCIP_Real primsolavg
Definition: struct_var.h:272
SCIP_Real conflictlb
Definition: struct_var.h:273
SCIP_Real relaxsol
Definition: struct_var.h:270
SCIP_Longint closestvblpcount
Definition: struct_var.h:309
SCIP_Real bestrootlpobjval
Definition: struct_var.h:269
int ubchginfossize
Definition: struct_var.h:324
SCIP_VALUEHISTORY * valuehistory
Definition: struct_var.h:308
int branchpriority
Definition: struct_var.h:321
int conflictlbcount
Definition: struct_var.h:326
type definitions for constraints and constraint handlers
type definitions for managing events
type definitions for branching and inference history
type definitions for implications, variable bounds, and cliques
type definitions for LP management
type definitions for exact LP management
type definitions for propagators
type definitions for problem variables
struct SCIP_VarData SCIP_VARDATA
Definition: type_var.h:167
#define NLOCKTYPES
Definition: type_var.h:138
struct SCIP_BranchingData SCIP_BRANCHINGDATA
Definition: type_var.h:153
enum SCIP_Varstatus SCIP_VARSTATUS
Definition: type_var.h:59
struct SCIP_InferenceData SCIP_INFERENCEDATA
Definition: type_var.h:154
SCIP_DOMCHGBOUND domchgbound
Definition: struct_var.h:168
SCIP_DOMCHGDYN domchgdyn
Definition: struct_var.h:170
SCIP_DOMCHGBOTH domchgboth
Definition: struct_var.h:169