Scippy

SCIP

Solving Constraint Integer Programs

disp_default.c
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-2018 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 disp_default.c
17  * @brief default display columns
18  * @author Tobias Achterberg
19  */
20 
21 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
22 
23 #include <assert.h>
24 #include <string.h>
25 
26 #include "scip/disp_default.h"
27 #include "scip/concurrent.h"
28 #include "scip/syncstore.h"
29 
30 
31 #define DISP_NAME_SOLFOUND "solfound"
32 #define DISP_DESC_SOLFOUND "letter that indicates the heuristic which found the solution"
33 #define DISP_HEAD_SOLFOUND " "
34 #define DISP_WIDT_SOLFOUND 1
35 #define DISP_PRIO_SOLFOUND 80000
36 #define DISP_POSI_SOLFOUND 0
37 #define DISP_STRI_SOLFOUND FALSE
38 
39 #define DISP_NAME_CONCSOLFOUND "concsolfound"
40 #define DISP_DESC_CONCSOLFOUND "indicator that a new solution was found in concurrent solve"
41 #define DISP_HEAD_CONCSOLFOUND " "
42 #define DISP_WIDT_CONCSOLFOUND 1
43 #define DISP_PRIO_CONCSOLFOUND 80000
44 #define DISP_POSI_CONCSOLFOUND 0
45 #define DISP_STRI_CONCSOLFOUND FALSE
46 
47 #define DISP_NAME_TIME "time"
48 #define DISP_DESC_TIME "total solution time"
49 #define DISP_HEAD_TIME "time"
50 #define DISP_WIDT_TIME 5
51 #define DISP_PRIO_TIME 4000
52 #define DISP_POSI_TIME 50
53 #define DISP_STRI_TIME TRUE
54 
55 #define DISP_NAME_NNODES "nnodes"
56 #define DISP_DESC_NNODES "number of processed nodes"
57 #define DISP_HEAD_NNODES "node"
58 #define DISP_WIDT_NNODES 7
59 #define DISP_PRIO_NNODES 100000
60 #define DISP_POSI_NNODES 100
61 #define DISP_STRI_NNODES TRUE
62 
63 #define DISP_NAME_NODESLEFT "nodesleft"
64 #define DISP_DESC_NODESLEFT "number of unprocessed nodes"
65 #define DISP_HEAD_NODESLEFT "left"
66 #define DISP_WIDT_NODESLEFT 7
67 #define DISP_PRIO_NODESLEFT 90000
68 #define DISP_POSI_NODESLEFT 200
69 #define DISP_STRI_NODESLEFT TRUE
70 
71 
72 #define DISP_NAME_LPITERATIONS "lpiterations"
73 #define DISP_DESC_LPITERATIONS "number of simplex iterations"
74 #define DISP_HEAD_LPITERATIONS "LP iter"
75 #define DISP_WIDT_LPITERATIONS 7
76 #define DISP_PRIO_LPITERATIONS 30000
77 #define DISP_POSI_LPITERATIONS 1000
78 #define DISP_STRI_LPITERATIONS TRUE
79 
80 #define DISP_NAME_LPAVGITERS "lpavgiterations"
81 #define DISP_DESC_LPAVGITERS "average number of LP iterations since the last output line"
82 #define DISP_HEAD_LPAVGITERS "LP it/n"
83 #define DISP_WIDT_LPAVGITERS 7
84 #define DISP_PRIO_LPAVGITERS 25000
85 #define DISP_POSI_LPAVGITERS 1400
86 #define DISP_STRI_LPAVGITERS TRUE
87 
88 #define DISP_NAME_LPCOND "lpcond"
89 #define DISP_DESC_LPCOND "estimate on condition number of LP solution"
90 #define DISP_HEAD_LPCOND "LP cond"
91 #define DISP_WIDT_LPCOND 7
92 #define DISP_PRIO_LPCOND 0
93 #define DISP_POSI_LPCOND 1450
94 #define DISP_STRI_LPCOND TRUE
95 
96 #define DISP_NAME_MEMUSED "memused"
97 #define DISP_DESC_MEMUSED "total number of bytes used in block memory"
98 #define DISP_HEAD_MEMUSED "umem"
99 #define DISP_WIDT_MEMUSED 5
100 #define DISP_PRIO_MEMUSED 0
101 #define DISP_POSI_MEMUSED 1500
102 #define DISP_STRI_MEMUSED TRUE
103 
104 #define DISP_NAME_CONCMEMUSED "concmemused"
105 #define DISP_DESC_CONCMEMUSED "total number of bytes used in block memory"
106 #define DISP_HEAD_CONCMEMUSED "mem"
107 #define DISP_WIDT_CONCMEMUSED 5
108 #define DISP_PRIO_CONCMEMUSED 20000
109 #define DISP_POSI_CONCMEMUSED 1500
110 #define DISP_STRI_CONCMEMUSED TRUE
111 
112 #define DISP_NAME_MEMTOTAL "memtotal"
113 #define DISP_DESC_MEMTOTAL "total number of bytes in block memory"
114 #define DISP_HEAD_MEMTOTAL "mem"
115 #define DISP_WIDT_MEMTOTAL 5
116 #define DISP_PRIO_MEMTOTAL 20000
117 #define DISP_POSI_MEMTOTAL 1500
118 #define DISP_STRI_MEMTOTAL TRUE
119 
120 #define DISP_NAME_DEPTH "depth"
121 #define DISP_DESC_DEPTH "depth of current node"
122 #define DISP_HEAD_DEPTH "depth"
123 #define DISP_WIDT_DEPTH 5
124 #define DISP_PRIO_DEPTH 500
125 #define DISP_POSI_DEPTH 2000
126 #define DISP_STRI_DEPTH TRUE
127 
128 #define DISP_NAME_MAXDEPTH "maxdepth"
129 #define DISP_DESC_MAXDEPTH "maximal depth of all processed nodes"
130 #define DISP_HEAD_MAXDEPTH "mdpt"
131 #define DISP_WIDT_MAXDEPTH 5
132 #define DISP_PRIO_MAXDEPTH 5000
133 #define DISP_POSI_MAXDEPTH 2100
134 #define DISP_STRI_MAXDEPTH TRUE
135 
136 #define DISP_NAME_PLUNGEDEPTH "plungedepth"
137 #define DISP_DESC_PLUNGEDEPTH "current plunging depth"
138 #define DISP_HEAD_PLUNGEDEPTH "pdpt"
139 #define DISP_WIDT_PLUNGEDEPTH 5
140 #define DISP_PRIO_PLUNGEDEPTH 10
141 #define DISP_POSI_PLUNGEDEPTH 2200
142 #define DISP_STRI_PLUNGEDEPTH TRUE
143 
144 #define DISP_NAME_NFRAC "nfrac"
145 #define DISP_DESC_NFRAC "number of fractional variables in the current solution"
146 #define DISP_HEAD_NFRAC "frac"
147 #define DISP_WIDT_NFRAC 5
148 #define DISP_PRIO_NFRAC 700
149 #define DISP_POSI_NFRAC 2500
150 #define DISP_STRI_NFRAC TRUE
151 
152 #define DISP_NAME_NEXTERNCANDS "nexternbranchcands"
153 #define DISP_DESC_NEXTERNCANDS "number of extern branching variables in the current node"
154 #define DISP_HEAD_NEXTERNCANDS "extbr"
155 #define DISP_WIDT_NEXTERNCANDS 5
156 #define DISP_PRIO_NEXTERNCANDS 650
157 #define DISP_POSI_NEXTERNCANDS 2600
158 #define DISP_STRI_NEXTERNCANDS TRUE
159 
160 #define DISP_NAME_VARS "vars"
161 #define DISP_DESC_VARS "number of variables in the problem"
162 #define DISP_HEAD_VARS "vars"
163 #define DISP_WIDT_VARS 5
164 #define DISP_PRIO_VARS 3000
165 #define DISP_POSI_VARS 3000
166 #define DISP_STRI_VARS TRUE
167 
168 #define DISP_NAME_CONSS "conss"
169 #define DISP_DESC_CONSS "number of globally valid constraints in the problem"
170 #define DISP_HEAD_CONSS "cons"
171 #define DISP_WIDT_CONSS 5
172 #define DISP_PRIO_CONSS 3100
173 #define DISP_POSI_CONSS 3100
174 #define DISP_STRI_CONSS TRUE
175 
176 #define DISP_NAME_CURCONSS "curconss"
177 #define DISP_DESC_CURCONSS "number of enabled constraints in current node"
178 #define DISP_HEAD_CURCONSS "ccons"
179 #define DISP_WIDT_CURCONSS 5
180 #define DISP_PRIO_CURCONSS 600
181 #define DISP_POSI_CURCONSS 3200
182 #define DISP_STRI_CURCONSS TRUE
183 
184 #define DISP_NAME_CURCOLS "curcols"
185 #define DISP_DESC_CURCOLS "number of LP columns in current node"
186 #define DISP_HEAD_CURCOLS "cols"
187 #define DISP_WIDT_CURCOLS 5
188 #define DISP_PRIO_CURCOLS 800
189 #define DISP_POSI_CURCOLS 3300
190 #define DISP_STRI_CURCOLS TRUE
191 
192 #define DISP_NAME_CURROWS "currows"
193 #define DISP_DESC_CURROWS "number of LP rows in current node"
194 #define DISP_HEAD_CURROWS "rows"
195 #define DISP_WIDT_CURROWS 5
196 #define DISP_PRIO_CURROWS 900
197 #define DISP_POSI_CURROWS 3400
198 #define DISP_STRI_CURROWS TRUE
199 
200 #define DISP_NAME_CUTS "cuts"
201 #define DISP_DESC_CUTS "total number of cuts applied to the LPs"
202 #define DISP_HEAD_CUTS "cuts"
203 #define DISP_WIDT_CUTS 5
204 #define DISP_PRIO_CUTS 2100
205 #define DISP_POSI_CUTS 3500
206 #define DISP_STRI_CUTS TRUE
207 
208 #define DISP_NAME_SEPAROUNDS "separounds"
209 #define DISP_DESC_SEPAROUNDS "number of separation rounds performed at the current node"
210 #define DISP_HEAD_SEPAROUNDS "sepa"
211 #define DISP_WIDT_SEPAROUNDS 4
212 #define DISP_PRIO_SEPAROUNDS 100
213 #define DISP_POSI_SEPAROUNDS 3600
214 #define DISP_STRI_SEPAROUNDS TRUE
215 
216 #define DISP_NAME_POOLSIZE "poolsize"
217 #define DISP_DESC_POOLSIZE "number of LP rows in the cut pool"
218 #define DISP_HEAD_POOLSIZE "pool"
219 #define DISP_WIDT_POOLSIZE 5
220 #define DISP_PRIO_POOLSIZE 50
221 #define DISP_POSI_POOLSIZE 3700
222 #define DISP_STRI_POOLSIZE TRUE
223 
224 #define DISP_NAME_CONFLICTS "conflicts"
225 #define DISP_DESC_CONFLICTS "total number of conflicts found in conflict analysis"
226 #define DISP_HEAD_CONFLICTS "confs"
227 #define DISP_WIDT_CONFLICTS 5
228 #define DISP_PRIO_CONFLICTS 2000
229 #define DISP_POSI_CONFLICTS 4000
230 #define DISP_STRI_CONFLICTS TRUE
231 
232 #define DISP_NAME_STRONGBRANCHS "strongbranchs"
233 #define DISP_DESC_STRONGBRANCHS "total number of strong branching calls"
234 #define DISP_HEAD_STRONGBRANCHS "strbr"
235 #define DISP_WIDT_STRONGBRANCHS 5
236 #define DISP_PRIO_STRONGBRANCHS 1000
237 #define DISP_POSI_STRONGBRANCHS 5000
238 #define DISP_STRI_STRONGBRANCHS TRUE
239 
240 #define DISP_NAME_PSEUDOOBJ "pseudoobj"
241 #define DISP_DESC_PSEUDOOBJ "current pseudo objective value"
242 #define DISP_HEAD_PSEUDOOBJ "pseudoobj"
243 #define DISP_WIDT_PSEUDOOBJ 14
244 #define DISP_PRIO_PSEUDOOBJ 300
245 #define DISP_POSI_PSEUDOOBJ 6000
246 #define DISP_STRI_PSEUDOOBJ TRUE
247 
248 #define DISP_NAME_LPOBJ "lpobj"
249 #define DISP_DESC_LPOBJ "current LP objective value"
250 #define DISP_HEAD_LPOBJ "lpobj"
251 #define DISP_WIDT_LPOBJ 14
252 #define DISP_PRIO_LPOBJ 300
253 #define DISP_POSI_LPOBJ 6500
254 #define DISP_STRI_LPOBJ TRUE
255 
256 #define DISP_NAME_CURDUALBOUND "curdualbound"
257 #define DISP_DESC_CURDUALBOUND "dual bound of current node"
258 #define DISP_HEAD_CURDUALBOUND "curdualbound"
259 #define DISP_WIDT_CURDUALBOUND 14
260 #define DISP_PRIO_CURDUALBOUND 400
261 #define DISP_POSI_CURDUALBOUND 7000
262 #define DISP_STRI_CURDUALBOUND TRUE
263 
264 #define DISP_NAME_ESTIMATE "estimate"
265 #define DISP_DESC_ESTIMATE "estimated value of feasible solution in current node"
266 #define DISP_HEAD_ESTIMATE "estimate"
267 #define DISP_WIDT_ESTIMATE 14
268 #define DISP_PRIO_ESTIMATE 200
269 #define DISP_POSI_ESTIMATE 7500
270 #define DISP_STRI_ESTIMATE TRUE
271 
272 #define DISP_NAME_AVGDUALBOUND "avgdualbound"
273 #define DISP_DESC_AVGDUALBOUND "average dual bound of all unprocessed nodes"
274 #define DISP_HEAD_AVGDUALBOUND "avgdualbound"
275 #define DISP_WIDT_AVGDUALBOUND 14
276 #define DISP_PRIO_AVGDUALBOUND 40
277 #define DISP_POSI_AVGDUALBOUND 8000
278 #define DISP_STRI_AVGDUALBOUND TRUE
279 
280 #define DISP_NAME_DUALBOUND "dualbound"
281 #define DISP_DESC_DUALBOUND "current global dual bound"
282 #define DISP_HEAD_DUALBOUND "dualbound"
283 #define DISP_WIDT_DUALBOUND 14
284 #define DISP_PRIO_DUALBOUND 70000
285 #define DISP_POSI_DUALBOUND 9000
286 #define DISP_STRI_DUALBOUND TRUE
287 
288 #define DISP_NAME_CONCDUALBOUND "concdualbound"
289 #define DISP_DESC_CONCDUALBOUND "current global dual bound in concurrent solve"
290 #define DISP_HEAD_CONCDUALBOUND "dualbound"
291 #define DISP_WIDT_CONCDUALBOUND 14
292 #define DISP_PRIO_CONCDUALBOUND 70000
293 #define DISP_POSI_CONCDUALBOUND 9000
294 #define DISP_STRI_CONCDUALBOUND TRUE
295 
296 #define DISP_NAME_PRIMALBOUND "primalbound"
297 #define DISP_DESC_PRIMALBOUND "current primal bound"
298 #define DISP_HEAD_PRIMALBOUND "primalbound"
299 #define DISP_WIDT_PRIMALBOUND 14
300 #define DISP_PRIO_PRIMALBOUND 80000
301 #define DISP_POSI_PRIMALBOUND 10000
302 #define DISP_STRI_PRIMALBOUND TRUE
303 
304 #define DISP_NAME_CONCPRIMALBOUND "concprimalbound"
305 #define DISP_DESC_CONCPRIMALBOUND "current primal bound in concurrent solve"
306 #define DISP_HEAD_CONCPRIMALBOUND "primalbound"
307 #define DISP_WIDT_CONCPRIMALBOUND 14
308 #define DISP_PRIO_CONCPRIMALBOUND 80000
309 #define DISP_POSI_CONCPRIMALBOUND 10000
310 #define DISP_STRI_CONCPRIMALBOUND TRUE
311 
312 #define DISP_NAME_CUTOFFBOUND "cutoffbound"
313 #define DISP_DESC_CUTOFFBOUND "current cutoff bound"
314 #define DISP_HEAD_CUTOFFBOUND "cutoffbound"
315 #define DISP_WIDT_CUTOFFBOUND 14
316 #define DISP_PRIO_CUTOFFBOUND 10
317 #define DISP_POSI_CUTOFFBOUND 10100
318 #define DISP_STRI_CUTOFFBOUND TRUE
319 
320 #define DISP_NAME_GAP "gap"
321 #define DISP_DESC_GAP "current (relative) gap using |primal-dual|/MIN(|dual|,|primal|)"
322 #define DISP_HEAD_GAP "gap"
323 #define DISP_WIDT_GAP 8
324 #define DISP_PRIO_GAP 60000
325 #define DISP_POSI_GAP 20000
326 #define DISP_STRI_GAP TRUE
327 
328 #define DISP_NAME_CONCGAP "concgap"
329 #define DISP_DESC_CONCGAP "current (relative) gap in concurrent solve using |primal-dual|/MIN(|dual|,|primal|)"
330 #define DISP_HEAD_CONCGAP "gap"
331 #define DISP_WIDT_CONCGAP 8
332 #define DISP_PRIO_CONCGAP 60000
333 #define DISP_POSI_CONCGAP 20000
334 #define DISP_STRI_CONCGAP TRUE
335 
336 #define DISP_NAME_PRIMALGAP "primalgap"
337 #define DISP_DESC_PRIMALGAP "current (relative) gap using |primal-dual|/|primal|"
338 #define DISP_HEAD_PRIMALGAP "primgap"
339 #define DISP_WIDT_PRIMALGAP 8
340 #define DISP_PRIO_PRIMALGAP 20000
341 #define DISP_POSI_PRIMALGAP 21000
342 #define DISP_STRI_PRIMALGAP TRUE
343 
344 #define DISP_NAME_NSOLS "nsols"
345 #define DISP_DESC_NSOLS "current number of solutions found"
346 #define DISP_HEAD_NSOLS "nsols"
347 #define DISP_WIDT_NSOLS 5
348 #define DISP_PRIO_NSOLS 0
349 #define DISP_POSI_NSOLS 30000
350 #define DISP_STRI_NSOLS TRUE
351 
352 /* display for the number of leaves passing the objective limit */
353 #define DISP_NAME_NOBJLEAVES "nobjleaves"
354 #define DISP_DESC_NOBJLEAVES "current number of encountered objective limit leaves"
355 #define DISP_HEAD_NOBJLEAVES "objleav"
356 #define DISP_WIDT_NOBJLEAVES 7
357 #define DISP_PRIO_NOBJLEAVES 0
358 #define DISP_POSI_NOBJLEAVES 31000
359 #define DISP_STRI_NOBJLEAVES TRUE
360 
361 
362 /* display for number of encountered infeasible leaf nodes */
363 #define DISP_NAME_NINFEASLEAVES "ninfeasleaves"
364 #define DISP_DESC_NINFEASLEAVES "number of encountered infeasible leaves"
365 #define DISP_HEAD_NINFEASLEAVES "infleav"
366 #define DISP_WIDT_NINFEASLEAVES 7
367 #define DISP_PRIO_NINFEASLEAVES 0
368 #define DISP_POSI_NINFEASLEAVES 32000
369 #define DISP_STRI_NINFEASLEAVES TRUE
370 
371 /*
372  * Callback methods
373  */
374 
375 /** copy method for display plugins (called when SCIP copies plugins) */
376 static
377 SCIP_DECL_DISPCOPY(dispCopyDefault)
378 { /*lint --e{715}*/
379  assert(scip != NULL);
380  assert(disp != NULL);
381 
382  /* call inclusion method of dialog (unless it has already been included by the copy call of the first default column) */
383  if( SCIPfindDisp(scip, SCIPdispGetName(disp)) == NULL )
384  {
386  }
387 
388  return SCIP_OKAY;
389 }
390 
391 /** solving process initialization method of display column (called when branch and bound process is about to begin) */
392 static
393 SCIP_DECL_DISPINITSOL(SCIPdispInitsolSolFound)
394 { /*lint --e{715}*/
395 
396  assert(disp != NULL);
397  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_SOLFOUND) == 0);
398  assert(scip != NULL);
399 
401 
402  return SCIP_OKAY;
403 }
404 
405 /** output method of display column to output file stream 'file' for character of best solution */
406 static
407 SCIP_DECL_DISPOUTPUT(SCIPdispOutputSolFound)
408 { /*lint --e{715}*/
409  SCIP_SOL* sol;
410  SCIP_DISPDATA* dispdata;
411 
412  assert(disp != NULL);
413  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_SOLFOUND) == 0);
414  assert(scip != NULL);
415 
416  sol = SCIPgetBestSol(scip);
417  if( sol == NULL )
418  SCIPdispSetData(disp, NULL);
419 
420  dispdata = SCIPdispGetData(disp);
421  if( sol != (SCIP_SOL*)dispdata && SCIPisFeasLE(scip, SCIPgetSolTransObj(scip, sol), SCIPgetUpperbound(scip)) )
422  {
423  SCIP_HEUR* heur;
424  char c;
425 
426  heur = SCIPgetSolHeur(scip, sol);
427 
428  if( heur == NULL )
429  {
430  if( SCIPsolIsOriginal(sol) )
431  c = '#';
432  else
433  c = '*';
434  }
435  else
436  c = SCIPheurGetDispchar(heur);
437 
438  SCIPinfoMessage(scip, file, "%c", c);
439 
440  SCIPdispSetData(disp, (SCIP_DISPDATA*)sol);
441  }
442  else
443  SCIPinfoMessage(scip, file, " ");
444 
445  return SCIP_OKAY;
446 }
447 
448 /** solving process initialization method of display column (called when branch and bound process is about to begin) */
449 static
450 SCIP_DECL_DISPINITSOL(SCIPdispInitsolConcSolFound)
451 { /*lint --e{715}*/
452  SCIP_Real* bestupper;
453 
454  assert(disp != NULL);
455  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_CONCSOLFOUND) == 0);
456  assert(scip != NULL);
457 
458  SCIP_CALL( SCIPallocBlockMemory(scip, &bestupper) );
459  *bestupper = SCIPinfinity(scip);
460 
461  SCIPdispSetData(disp, (SCIP_DISPDATA*) bestupper);
462 
463  return SCIP_OKAY;
464 }
465 
466 /** solving process initialization method of display column (called when branch and bound process is about to begin) */
467 static
468 SCIP_DECL_DISPINITSOL(SCIPdispExitsolConcSolFound)
469 { /*lint --e{715}*/
470  SCIP_Real* bestupper;
471 
472  assert(disp != NULL);
473  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_CONCSOLFOUND) == 0);
474  assert(scip != NULL);
475 
476  bestupper = (SCIP_Real*) SCIPdispGetData(disp);
477  SCIPfreeBlockMemory(scip, &bestupper);
478 
479  SCIPdispSetData(disp, NULL);
480 
481  return SCIP_OKAY;
482 }
483 
484 /** output method of display column to output file stream 'file' for character of best solution */
485 static
486 SCIP_DECL_DISPOUTPUT(SCIPdispOutputConcSolFound)
487 { /*lint --e{715}*/
488  SCIP_Real* bestupper;
489  SCIP_Real newbestupper;
490  SCIP_SYNCSTORE* syncstore;
491 
492  assert(disp != NULL);
493  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_CONCSOLFOUND) == 0);
494  assert(scip != NULL);
495 
496  bestupper = (SCIP_Real*) SCIPdispGetData(disp);
497 
498  syncstore = SCIPgetSyncstore(scip);
499  assert(syncstore != NULL);
500  newbestupper = SCIPsyncstoreGetLastUpperbound(syncstore);
501 
502  if( SCIPsyncstoreGetLastNSols(syncstore) > 0 && SCIPisFeasLT(scip, newbestupper, *bestupper) )
503  {
504  SCIPinfoMessage(scip, file, "$");
505  *bestupper = newbestupper;
506  }
507  else
508  SCIPinfoMessage(scip, file, " ");
509 
510  return SCIP_OKAY;
511 }
512 
513 /** output method of display column to output file stream 'file' for solving time */
514 static
515 SCIP_DECL_DISPOUTPUT(SCIPdispOutputSolvingTime)
516 { /*lint --e{715}*/
517  assert(disp != NULL);
518  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_TIME) == 0);
519  assert(scip != NULL);
520 
522 
523  return SCIP_OKAY;
524 }
525 
526 /** output method of display column to output file stream 'file' for number of nodes */
527 static
528 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNNodes)
529 { /*lint --e{715}*/
530  assert(disp != NULL);
531  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_NNODES) == 0);
532  assert(scip != NULL);
533 
535 
536  return SCIP_OKAY;
537 }
538 
539 /** output method of display column to output file stream 'file' for number of open nodes */
540 static
541 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNNodesLeft)
542 { /*lint --e{715}*/
543  assert(disp != NULL);
544  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_NODESLEFT) == 0);
545  assert(scip != NULL);
546 
548 
549  return SCIP_OKAY;
550 }
551 
552 /** output method of display column to output file stream 'file' */
553 static
554 SCIP_DECL_DISPOUTPUT(dispOutputNObjLeaves)
555 {
556  assert(disp != NULL);
557  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_NOBJLEAVES) == 0);
558  assert(scip != NULL);
559 
560  /* ouput number of leaves that hit the objective */
562 
563  return SCIP_OKAY;
564 }
565 
566 /** output method of display column to output file stream 'file' */
567 static
568 SCIP_DECL_DISPOUTPUT(dispOutputNInfeasLeaves)
569 {
570  assert(disp != NULL);
571  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_NINFEASLEAVES) == 0);
572  assert(scip != NULL);
573 
574  /* output number of encountered infeasible leaf nodes */
576 
577  return SCIP_OKAY;
578 }
579 
580 /** output method of display column to output file stream 'file' for number of LP iterations */
581 static
582 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNLPIterations)
583 { /*lint --e{715}*/
584  assert(disp != NULL);
585  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_LPITERATIONS) == 0);
586  assert(scip != NULL);
587 
589 
590  return SCIP_OKAY;
591 }
592 
593 /** output method of display column to output file stream 'file' for number of average LP iterations */
594 static
595 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNLPAvgIters)
596 { /*lint --e{715}*/
597  assert(disp != NULL);
598  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_LPAVGITERS) == 0);
599  assert(scip != NULL);
600 
601  /**@todo Currently we are using the total number of nodes to compute the average LP iterations number. The reason for
602  * that is, that for the LP iterations only the total number (over all runs) are stored in the statistics. It
603  * would be nicer if the statistic also stores the number of LP iterations for the current run similar to the
604  * nodes.
605  */
606 
607  if( SCIPgetNNodes(scip) < 2 )
608  SCIPinfoMessage(scip, file, " - ");
609  else
610  SCIPinfoMessage(scip, file, "%6.1f ",
612 
613  return SCIP_OKAY;
614 }
615 
616 
617 /** output method of display column to output file stream 'file' for estimate on LP condition */
618 static
619 SCIP_DECL_DISPOUTPUT(SCIPdispOutputLPCondition)
620 { /*lint --e{715}*/
621  SCIP_LPI* lpi;
622  SCIP_Real cond;
623 
624  assert(disp != NULL);
625  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_LPCOND) == 0);
626  assert(scip != NULL);
627 
628  /* note that after diving mode, the LPI may only have the basis information, but SCIPlpiWasSolved() can be false; in
629  * this case, we will (depending on the LP solver) probably not obtain the quality measure; one solution would be to
630  * store the results of SCIPlpiGetRealSolQuality() within the SCIP_LP after each LP solve; this would have the added
631  * advantage, that we reduce direct access to the LPI, but it sounds potentially expensive
632  */
633  SCIP_CALL( SCIPgetLPI(scip, &lpi) );
634  if( lpi == NULL )
635  {
636  SCIPinfoMessage(scip, file, " - ");
637  return SCIP_OKAY;
638  }
639 
641 
642  if( cond == SCIP_INVALID ) /*lint !e777*/
643  SCIPinfoMessage(scip, file, " n/a ", cond);
644  else
645  SCIPinfoMessage(scip, file, "%.1e", cond);
646 
647  return SCIP_OKAY;
648 }
649 
650 /** output method of display column to output file stream 'file' for depth */
651 static
652 SCIP_DECL_DISPOUTPUT(SCIPdispOutputDepth)
653 { /*lint --e{715}*/
654  assert(disp != NULL);
655  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_DEPTH) == 0);
656  assert(scip != NULL);
657 
659 
660  return SCIP_OKAY;
661 }
662 
663 /** output method of display column to output file stream 'file' for used memory */
664 static
665 SCIP_DECL_DISPOUTPUT(SCIPdispOutputMemUsed)
666 { /*lint --e{715}*/
667  assert(disp != NULL);
668  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_MEMUSED) == 0);
669  assert(scip != NULL);
670 
672 
673  return SCIP_OKAY;
674 }
675 
676 /** output method of display column to output file stream 'file' for used memory */
677 static
678 SCIP_DECL_DISPOUTPUT(SCIPdispOutputConcMemUsed)
679 { /*lint --e{715}*/
680  SCIP_SYNCSTORE* syncstore;
681  assert(disp != NULL);
682  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_CONCMEMUSED) == 0);
683  assert(scip != NULL);
684 
685  syncstore = SCIPgetSyncstore(scip);
686  assert(syncstore != NULL);
687 
689 
690  return SCIP_OKAY;
691 }
692 
693 /** output method of display column to output file stream 'file' for allocated and used memory */
694 static
695 SCIP_DECL_DISPOUTPUT(SCIPdispOutputMemUsedTotal)
696 { /*lint --e{715}*/
697  assert(disp != NULL);
698  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_MEMTOTAL) == 0);
699  assert(scip != NULL);
700 
702 
703  return SCIP_OKAY;
704 }
705 
706 /** output method of display column to output file stream 'file' for maximal depth */
707 static
708 SCIP_DECL_DISPOUTPUT(SCIPdispOutputMaxDepth)
709 { /*lint --e{715}*/
710  assert(disp != NULL);
711  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_MAXDEPTH) == 0);
712  assert(scip != NULL);
713 
715 
716  return SCIP_OKAY;
717 }
718 
719 /** output method of display column to output file stream 'file' for plunging depth */
720 static
721 SCIP_DECL_DISPOUTPUT(SCIPdispOutputPlungeDepth)
722 { /*lint --e{715}*/
723  assert(disp != NULL);
724  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_PLUNGEDEPTH) == 0);
725  assert(scip != NULL);
726 
728 
729  return SCIP_OKAY;
730 }
731 
732 /** output method of display column to output file stream 'file' for number of LP branch candidates */
733 static
734 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNFrac)
735 { /*lint --e{715}*/
736  assert(disp != NULL);
737  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_NFRAC) == 0);
738  assert(scip != NULL);
739 
742  else
743  SCIPinfoMessage(scip, file, " - ");
744 
745  return SCIP_OKAY;
746 }
747 
748 /** output method of display column to output file stream 'file' for number of external branch candidates */
749 static
750 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNExternCands)
751 { /*lint --e{715}*/
752  assert(disp != NULL);
753  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_NEXTERNCANDS) == 0);
754  assert(scip != NULL);
755 
757 
758  return SCIP_OKAY;
759 }
760 
761 /** output method of display column to output file stream 'file' for number of variables */
762 static
763 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNVars)
764 { /*lint --e{715}*/
765  assert(disp != NULL);
766  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_VARS) == 0);
767  assert(scip != NULL);
768 
770 
771  return SCIP_OKAY;
772 }
773 
774 /** output method of display column to output file stream 'file' for number of constraints */
775 static
776 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNConss)
777 { /*lint --e{715}*/
778  assert(disp != NULL);
779  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_CONSS) == 0);
780  assert(scip != NULL);
781 
783 
784  return SCIP_OKAY;
785 }
786 
787 /** output method of display column to output file stream 'file' for number of enabled constraints */
788 static
789 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNCurConss)
790 { /*lint --e{715}*/
791  assert(disp != NULL);
792  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_CURCONSS) == 0);
793  assert(scip != NULL);
794 
796 
797  return SCIP_OKAY;
798 }
799 
800 /** output method of display column to output file stream 'file' for number of columns in the LP */
801 static
802 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNCurCols)
803 { /*lint --e{715}*/
804  assert(disp != NULL);
805  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_CURCOLS) == 0);
806  assert(scip != NULL);
807 
809 
810  return SCIP_OKAY;
811 }
812 
813 /** output method of display column to output file stream 'file' for number of rows in the LP */
814 static
815 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNCurRows)
816 { /*lint --e{715}*/
817  assert(disp != NULL);
818  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_CURROWS) == 0);
819  assert(scip != NULL);
820 
822 
823  return SCIP_OKAY;
824 }
825 
826 /** output method of display column to output file stream 'file' for number of applied cuts */
827 static
828 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNAppliedCuts)
829 { /*lint --e{715}*/
830  assert(disp != NULL);
831  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_CUTS) == 0);
832  assert(scip != NULL);
833 
835 
836  return SCIP_OKAY;
837 }
838 
839 /** output method of display column to output file stream 'file' for number of separation rounds */
840 static
841 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNSepaRounds)
842 { /*lint --e{715}*/
843  assert(disp != NULL);
844  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_SEPAROUNDS) == 0);
845  assert(scip != NULL);
846 
848 
849  return SCIP_OKAY;
850 }
851 
852 /** output method of display column to output file stream 'file' for number of current rows in the cut pool */
853 static
854 SCIP_DECL_DISPOUTPUT(SCIPdispOutputCutPoolSize)
855 { /*lint --e{715}*/
856  assert(disp != NULL);
857  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_POOLSIZE) == 0);
858  assert(scip != NULL);
859 
861 
862  return SCIP_OKAY;
863 }
864 
865 /** output method of display column to output file stream 'file' for number of conflicts */
866 static
867 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNConflicts)
868 { /*lint --e{715}*/
869  assert(disp != NULL);
870  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_CONFLICTS) == 0);
871  assert(scip != NULL);
872 
874 
875  return SCIP_OKAY;
876 }
877 
878 /** output method of display column to output file stream 'file' for number of strong branchings */
879 static
880 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNStrongbranchs)
881 { /*lint --e{715}*/
882  assert(disp != NULL);
883  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_STRONGBRANCHS) == 0);
884  assert(scip != NULL);
885 
887 
888  return SCIP_OKAY;
889 }
890 
891 /** output method of display column to output file stream 'file' for pseudo objective value */
892 static
893 SCIP_DECL_DISPOUTPUT(SCIPdispOutputPseudoObjval)
894 { /*lint --e{715}*/
895  SCIP_Real pseudoobj;
896 
897  assert(disp != NULL);
898  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_PSEUDOOBJ) == 0);
899  assert(scip != NULL);
900 
901  pseudoobj = SCIPgetPseudoObjval(scip);
902 
903  if( SCIPisInfinity(scip, -pseudoobj) )
904  SCIPinfoMessage(scip, file, " -- ");
905  else if( SCIPisInfinity(scip, pseudoobj) )
906  SCIPinfoMessage(scip, file, " cutoff ");
907  else
908  SCIPinfoMessage(scip, file, "%13.6e ", pseudoobj);
909 
910  return SCIP_OKAY;
911 }
912 
913 /** output method of display column to output file stream 'file' for LP objective value */
914 static
915 SCIP_DECL_DISPOUTPUT(SCIPdispOutputLPObjval)
916 { /*lint --e{715}*/
917  SCIP_Real lpobj;
918 
919  assert(disp != NULL);
920  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_LPOBJ) == 0);
921  assert(scip != NULL);
922 
924  SCIPinfoMessage(scip, file, " -- ");
925  else
926  {
927  lpobj = SCIPgetLPObjval(scip);
928 
929  if( SCIPisInfinity(scip, -lpobj) )
930  SCIPinfoMessage(scip, file, " -- ");
931  else if( SCIPisInfinity(scip, lpobj) )
932  SCIPinfoMessage(scip, file, " cutoff ");
933  else
934  SCIPinfoMessage(scip, file, "%13.6e ", lpobj);
935  }
936 
937  return SCIP_OKAY;
938 }
939 
940 /** output method of display column to output file stream 'file' for the current dualbound */
941 static
942 SCIP_DECL_DISPOUTPUT(SCIPdispOutputCurDualbound)
943 { /*lint --e{715}*/
944  SCIP_Real curdualbound;
945 
946  assert(disp != NULL);
947  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_CURDUALBOUND) == 0);
948  assert(scip != NULL);
949 
950  curdualbound = SCIPgetLocalDualbound(scip);
951 
952  if( SCIPisInfinity(scip, (SCIP_Real) SCIPgetObjsense(scip) * curdualbound ) )
953  SCIPinfoMessage(scip, file, " cutoff ");
954  else if( SCIPisInfinity(scip, -1.0 * (SCIP_Real) SCIPgetObjsense(scip) * curdualbound ) )
955  SCIPinfoMessage(scip, file, " -- ");
956  else
957  SCIPinfoMessage(scip, file, "%13.6e ", curdualbound);
958 
959  return SCIP_OKAY;
960 }
961 
962 /** output method of display column to output file stream 'file' for estimate of best primal solution w.r.t. original
963  * problem contained in current subtree */
964 static
965 SCIP_DECL_DISPOUTPUT(SCIPdispOutputLocalOrigEstimate)
966 { /*lint --e{715}*/
967  SCIP_Real estimate;
968 
969  assert(disp != NULL);
970  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_ESTIMATE) == 0);
971  assert(scip != NULL);
972 
973  estimate = SCIPgetLocalOrigEstimate(scip);
974  if( SCIPisInfinity(scip, REALABS(estimate)) )
975  SCIPinfoMessage(scip, file, " -- ");
976  else
977  SCIPinfoMessage(scip, file, "%13.6e ", estimate);
978 
979  return SCIP_OKAY;
980 }
981 
982 /** output method of display column to output file stream 'file' for average dualbound */
983 static
984 SCIP_DECL_DISPOUTPUT(SCIPdispOutputAvgDualbound)
985 { /*lint --e{715}*/
986  SCIP_Real avgdualbound;
987 
988  assert(disp != NULL);
989  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_AVGDUALBOUND) == 0);
990  assert(scip != NULL);
991 
992  avgdualbound = SCIPgetAvgDualbound(scip);
993  if( SCIPisInfinity(scip, REALABS(avgdualbound)) )
994  SCIPinfoMessage(scip, file, " -- ");
995  else
996  SCIPinfoMessage(scip, file, "%13.6e ", avgdualbound);
997 
998  return SCIP_OKAY;
999 }
1000 
1001 /** output method of display column to output file stream 'file' for dualbound */
1002 static
1003 SCIP_DECL_DISPOUTPUT(SCIPdispOutputDualbound)
1004 { /*lint --e{715}*/
1005  SCIP_Real dualbound;
1006 
1007  assert(disp != NULL);
1008  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_DUALBOUND) == 0);
1009  assert(scip != NULL);
1010 
1011  dualbound = SCIPgetDualbound(scip);
1012 
1013  if( SCIPisInfinity(scip, (SCIP_Real) SCIPgetObjsense(scip) * dualbound ) )
1014  SCIPinfoMessage(scip, file, " cutoff ");
1015  else if( SCIPisInfinity(scip, -1.0 * (SCIP_Real) SCIPgetObjsense(scip) * dualbound ) )
1016  SCIPinfoMessage(scip, file, " -- ");
1017  else
1018  SCIPinfoMessage(scip, file, "%13.6e ", dualbound);
1019 
1020  return SCIP_OKAY;
1021 }
1022 
1023 /** output method of display column to output file stream 'file' for primalbound */
1024 static
1025 SCIP_DECL_DISPOUTPUT(SCIPdispOutputPrimalbound)
1026 { /*lint --e{715}*/
1027  SCIP_Real primalbound;
1028 
1029  assert(disp != NULL);
1030  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_PRIMALBOUND) == 0);
1031  assert(scip != NULL);
1032 
1033  primalbound = SCIPgetPrimalbound(scip);
1034  if( SCIPisInfinity(scip, REALABS(primalbound)) )
1035  SCIPinfoMessage(scip, file, " -- ");
1036  else
1037  SCIPinfoMessage(scip, file, "%13.6e%c", primalbound, SCIPisPrimalboundSol(scip) ? ' ' : '*');
1038 
1039  return SCIP_OKAY;
1040 }
1041 
1042 /** output method of display column to output file stream 'file' for dualbound */
1043 static
1044 SCIP_DECL_DISPOUTPUT(SCIPdispOutputConcDualbound)
1045 { /*lint --e{715}*/
1046  SCIP_Real dualbound;
1047 
1048  assert(disp != NULL);
1049  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_CONCDUALBOUND) == 0);
1050  assert(scip != NULL);
1051 
1052  dualbound = SCIPgetConcurrentDualbound(scip);
1053 
1054  if( SCIPisInfinity(scip, (SCIP_Real) SCIPgetObjsense(scip) * dualbound ) )
1055  SCIPinfoMessage(scip, file, " cutoff ");
1056  else if( SCIPisInfinity(scip, -1.0 * (SCIP_Real) SCIPgetObjsense(scip) * dualbound ) )
1057  SCIPinfoMessage(scip, file, " -- ");
1058  else
1059  SCIPinfoMessage(scip, file, "%13.6e ", dualbound);
1060 
1061  return SCIP_OKAY;
1062 }
1063 
1064 /** output method of display column to output file stream 'file' for primalbound */
1065 static
1066 SCIP_DECL_DISPOUTPUT(SCIPdispOutputConcPrimalbound)
1067 { /*lint --e{715}*/
1068  SCIP_Real primalbound;
1069 
1070  assert(disp != NULL);
1071  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_CONCPRIMALBOUND) == 0);
1072  assert(scip != NULL);
1073 
1074  primalbound = SCIPgetConcurrentPrimalbound(scip);
1075  if( SCIPisInfinity(scip, REALABS(primalbound)) )
1076  SCIPinfoMessage(scip, file, " -- ");
1077  else
1078  SCIPinfoMessage(scip, file, "%13.6e ", primalbound);
1079 
1080  return SCIP_OKAY;
1081 }
1082 
1083 /** output method of display column to output file stream 'file' for cutoffbound */
1084 static
1085 SCIP_DECL_DISPOUTPUT(SCIPdispOutputCutoffbound)
1086 { /*lint --e{715}*/
1087  SCIP_Real cutoffbound;
1088 
1089  assert(disp != NULL);
1090  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_CUTOFFBOUND) == 0);
1091  assert(scip != NULL);
1092 
1093  cutoffbound = SCIPgetCutoffbound(scip);
1094  if( SCIPisInfinity(scip, REALABS(cutoffbound)) )
1095  SCIPinfoMessage(scip, file, " -- ");
1096  else
1097  SCIPinfoMessage(scip, file, "%13.6e ", SCIPretransformObj(scip, cutoffbound));
1098 
1099  return SCIP_OKAY;
1100 }
1101 
1102 /** output method of display column to output file stream 'file' for gap */
1103 static
1104 SCIP_DECL_DISPOUTPUT(SCIPdispOutputGap)
1105 { /*lint --e{715}*/
1106  SCIP_Real gap;
1107 
1108  assert(disp != NULL);
1109  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_GAP) == 0);
1110  assert(scip != NULL);
1111 
1112  gap = SCIPgetGap(scip);
1113 
1114  if( SCIPisInfinity(scip, gap) )
1115  SCIPinfoMessage(scip, file, " Inf ");
1116  else if( gap >= 100.00 )
1117  SCIPinfoMessage(scip, file, " Large ");
1118  else
1119  SCIPinfoMessage(scip, file, "%7.2f%%", 100.0*gap);
1120 
1121  return SCIP_OKAY;
1122 }
1123 
1124 /** output method of display column to output file stream 'file' for gap */
1125 static
1126 SCIP_DECL_DISPOUTPUT(SCIPdispOutputConcGap)
1127 { /*lint --e{715}*/
1128  SCIP_Real gap;
1129 
1130  assert(disp != NULL);
1131  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_CONCGAP) == 0);
1132  assert(scip != NULL);
1133 
1134  gap = SCIPgetConcurrentGap(scip);
1135 
1136  if( SCIPisInfinity(scip, gap) )
1137  SCIPinfoMessage(scip, file, " Inf ");
1138  else if( gap >= 100.00 )
1139  SCIPinfoMessage(scip, file, " Large ");
1140  else
1141  SCIPinfoMessage(scip, file, "%7.2f%%", 100.0*gap);
1142 
1143  return SCIP_OKAY;
1144 }
1145 
1146 /** output method of display column to output file stream 'file' for primalgap */
1147 static
1148 SCIP_DECL_DISPOUTPUT(SCIPdispOutputPrimalgap)
1149 { /*lint --e{715}*/
1150  SCIP_Real primalbound;
1151  SCIP_Real dualbound;
1152  SCIP_Real gap;
1153 
1154  assert(disp != NULL);
1155  assert(strcmp(SCIPdispGetName(disp), DISP_NAME_PRIMALGAP) == 0);
1156  assert(scip != NULL);
1157 
1159  {
1160  /* in case we could not prove whether the problem is unbounded or infeasible, we want to terminate with
1161  * gap = +inf instead of gap = 0
1162  */
1164  gap = SCIPinfinity(scip);
1165  else
1166  gap = 0.0;
1167  }
1168  else
1169  {
1170  primalbound = SCIPgetPrimalbound(scip);
1171  dualbound = SCIPgetDualbound(scip);
1172 
1173  if( SCIPisEQ(scip, primalbound, dualbound) )
1174  gap = 0.0;
1175  else if( SCIPisZero(scip, primalbound)
1176  || SCIPisInfinity(scip, REALABS(primalbound))
1177  || primalbound * dualbound < 0.0 )
1178  gap = SCIPinfinity(scip);
1179  else
1180  gap = REALABS((primalbound - dualbound))/REALABS(primalbound + SCIPepsilon(scip));
1181  }
1182 
1183  if( SCIPisInfinity(scip, gap) )
1184  SCIPinfoMessage(scip, file, " Inf ");
1185  else if( gap >= 100.00 )
1186  SCIPinfoMessage(scip, file, " Large ");
1187  else
1188  SCIPinfoMessage(scip, file, "%7.2f%%", 100.0*gap);
1189 
1190  return SCIP_OKAY;
1191 }
1192 
1193 /** output method of display column to output file stream 'file' for number of found solutions */
1194 static
1195 SCIP_DECL_DISPOUTPUT(SCIPdispOutputNSols)
1196 { /*lint --e{715}*/
1197  SCIPinfoMessage(scip, file, "%5" SCIP_LONGINT_FORMAT, SCIPgetNSolsFound(scip));
1198 
1199  return SCIP_OKAY;
1200 }
1201 
1202 /*
1203  * default display columns specific interface methods
1204  */
1205 
1206 /** includes the default display columns in SCIP */
1208  SCIP* scip /**< SCIP data structure */
1209  )
1210 {
1211  SCIP_DISP* tmpdisp;
1212 
1213  tmpdisp = SCIPfindDisp(scip, DISP_NAME_SOLFOUND);
1214 
1215  /* since the default display columns are always included all at once in this method,
1216  * they should all be included already if the first one is */
1217  if( tmpdisp != NULL )
1218  {
1219  assert(SCIPfindDisp(scip, DISP_NAME_CONCSOLFOUND) != NULL );
1220  assert(SCIPfindDisp(scip, DISP_NAME_TIME) != NULL );
1221  assert(SCIPfindDisp(scip, DISP_NAME_NNODES) != NULL );
1222  assert(SCIPfindDisp(scip, DISP_NAME_NODESLEFT) != NULL );
1223  assert(SCIPfindDisp(scip, DISP_NAME_LPITERATIONS) != NULL );
1224  assert(SCIPfindDisp(scip, DISP_NAME_LPAVGITERS) != NULL );
1225  assert(SCIPfindDisp(scip, DISP_NAME_LPCOND) != NULL );
1226  assert(SCIPfindDisp(scip, DISP_NAME_MEMUSED) != NULL );
1227  assert(SCIPfindDisp(scip, DISP_NAME_CONCMEMUSED) != NULL );
1228  assert(SCIPfindDisp(scip, DISP_NAME_MEMTOTAL) != NULL );
1229  assert(SCIPfindDisp(scip, DISP_NAME_DEPTH) != NULL );
1230  assert(SCIPfindDisp(scip, DISP_NAME_MAXDEPTH) != NULL );
1231  assert(SCIPfindDisp(scip, DISP_NAME_PLUNGEDEPTH) != NULL );
1232  assert(SCIPfindDisp(scip, DISP_NAME_NFRAC) != NULL );
1233  assert(SCIPfindDisp(scip, DISP_NAME_NEXTERNCANDS) != NULL );
1234  assert(SCIPfindDisp(scip, DISP_NAME_VARS) != NULL );
1235  assert(SCIPfindDisp(scip, DISP_NAME_CONSS) != NULL );
1236  assert(SCIPfindDisp(scip, DISP_NAME_CURCONSS) != NULL );
1237  assert(SCIPfindDisp(scip, DISP_NAME_CURCOLS) != NULL );
1238  assert(SCIPfindDisp(scip, DISP_NAME_CURROWS) != NULL );
1239  assert(SCIPfindDisp(scip, DISP_NAME_CUTS) != NULL );
1240  assert(SCIPfindDisp(scip, DISP_NAME_SEPAROUNDS) != NULL );
1241  assert(SCIPfindDisp(scip, DISP_NAME_POOLSIZE) != NULL );
1242  assert(SCIPfindDisp(scip, DISP_NAME_CONFLICTS) != NULL );
1243  assert(SCIPfindDisp(scip, DISP_NAME_STRONGBRANCHS) != NULL );
1244  assert(SCIPfindDisp(scip, DISP_NAME_PSEUDOOBJ) != NULL );
1245  assert(SCIPfindDisp(scip, DISP_NAME_LPOBJ) != NULL );
1246  assert(SCIPfindDisp(scip, DISP_NAME_CURDUALBOUND) != NULL );
1247  assert(SCIPfindDisp(scip, DISP_NAME_ESTIMATE) != NULL );
1248  assert(SCIPfindDisp(scip, DISP_NAME_AVGDUALBOUND) != NULL );
1249  assert(SCIPfindDisp(scip, DISP_NAME_DUALBOUND) != NULL );
1250  assert(SCIPfindDisp(scip, DISP_NAME_CONCDUALBOUND) != NULL );
1251  assert(SCIPfindDisp(scip, DISP_NAME_PRIMALBOUND) != NULL );
1252  assert(SCIPfindDisp(scip, DISP_NAME_CONCPRIMALBOUND) != NULL );
1253  assert(SCIPfindDisp(scip, DISP_NAME_CUTOFFBOUND) != NULL );
1254  assert(SCIPfindDisp(scip, DISP_NAME_GAP) != NULL );
1255  assert(SCIPfindDisp(scip, DISP_NAME_CONCGAP) != NULL );
1256  assert(SCIPfindDisp(scip, DISP_NAME_PRIMALGAP) != NULL );
1257  assert(SCIPfindDisp(scip, DISP_NAME_NSOLS) != NULL );
1258  assert(SCIPfindDisp(scip, DISP_NAME_NOBJLEAVES) != NULL );
1259  assert(SCIPfindDisp(scip, DISP_NAME_NINFEASLEAVES) != NULL );
1260 
1261  return SCIP_OKAY;
1262  }
1263 
1266  dispCopyDefault,
1267  NULL, NULL, NULL, SCIPdispInitsolSolFound, NULL, SCIPdispOutputSolFound, NULL,
1269 
1270  assert(SCIPfindDisp(scip, DISP_NAME_CONCSOLFOUND) == NULL);
1273  dispCopyDefault,
1274  NULL, NULL, NULL, SCIPdispInitsolConcSolFound, SCIPdispExitsolConcSolFound, SCIPdispOutputConcSolFound, NULL,
1276  tmpdisp = SCIPfindDisp(scip, DISP_NAME_CONCSOLFOUND);
1278 
1279  assert(SCIPfindDisp(scip, DISP_NAME_TIME) == NULL);
1282  dispCopyDefault,
1283  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputSolvingTime, NULL,
1285  tmpdisp = SCIPfindDisp(scip, DISP_NAME_TIME);
1287 
1288  assert(SCIPfindDisp(scip, DISP_NAME_NNODES) == NULL);
1291  dispCopyDefault,
1292  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNNodes, NULL,
1294 
1295  assert(SCIPfindDisp(scip, DISP_NAME_NODESLEFT) == NULL);
1298  dispCopyDefault,
1299  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNNodesLeft, NULL,
1301 
1302  /* add objective leaves display */
1303  assert(SCIPfindDisp(scip, DISP_NAME_NOBJLEAVES) == NULL);
1305  NULL, NULL, NULL, NULL, NULL, NULL, dispOutputNObjLeaves, NULL, DISP_WIDT_NOBJLEAVES, DISP_PRIO_NOBJLEAVES, DISP_POSI_NOBJLEAVES,
1307 
1308  /* add infeasible leaves display */
1309  assert(SCIPfindDisp(scip, DISP_NAME_NINFEASLEAVES) == NULL);
1311  NULL, NULL, NULL, NULL, NULL, NULL, dispOutputNInfeasLeaves, NULL, DISP_WIDT_NINFEASLEAVES, DISP_PRIO_NINFEASLEAVES, DISP_POSI_NINFEASLEAVES,
1313 
1314  assert(SCIPfindDisp(scip, DISP_NAME_LPITERATIONS) == NULL);
1317  dispCopyDefault,
1318  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNLPIterations, NULL,
1320 
1321  assert(SCIPfindDisp(scip, DISP_NAME_LPAVGITERS) == NULL);
1324  dispCopyDefault,
1325  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNLPAvgIters, NULL,
1327 
1328  assert(SCIPfindDisp(scip, DISP_NAME_LPCOND) == NULL);
1331  dispCopyDefault,
1332  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputLPCondition, NULL,
1334 
1335  assert(SCIPfindDisp(scip, DISP_NAME_MEMUSED) == NULL);
1338  dispCopyDefault,
1339  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputMemUsed, NULL,
1341 
1342  assert(SCIPfindDisp(scip, DISP_NAME_CONCMEMUSED) == NULL);
1345  dispCopyDefault,
1346  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputConcMemUsed, NULL,
1348  tmpdisp = SCIPfindDisp(scip, DISP_NAME_CONCMEMUSED);
1350 
1351  assert(SCIPfindDisp(scip, DISP_NAME_MEMTOTAL) == NULL);
1354  dispCopyDefault,
1355  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputMemUsedTotal, NULL,
1357 
1358  assert(SCIPfindDisp(scip, DISP_NAME_DEPTH) == NULL);
1361  dispCopyDefault,
1362  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputDepth, NULL,
1364 
1365  assert(SCIPfindDisp(scip, DISP_NAME_MAXDEPTH) == NULL);
1368  dispCopyDefault,
1369  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputMaxDepth, NULL,
1371 
1372  assert(SCIPfindDisp(scip, DISP_NAME_PLUNGEDEPTH) == NULL);
1375  dispCopyDefault,
1376  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputPlungeDepth, NULL,
1378 
1379  assert(SCIPfindDisp(scip, DISP_NAME_NFRAC) == NULL);
1382  dispCopyDefault,
1383  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNFrac, NULL,
1385 
1386  assert(SCIPfindDisp(scip, DISP_NAME_NEXTERNCANDS) == NULL);
1389  dispCopyDefault,
1390  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNExternCands, NULL,
1392 
1393  assert(SCIPfindDisp(scip, DISP_NAME_VARS) == NULL);
1396  dispCopyDefault,
1397  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNVars, NULL,
1399 
1400  assert(SCIPfindDisp(scip, DISP_NAME_CONSS) == NULL);
1403  dispCopyDefault,
1404  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNConss, NULL,
1406 
1407  assert(SCIPfindDisp(scip, DISP_NAME_CURCONSS) == NULL);
1410  dispCopyDefault,
1411  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNCurConss, NULL,
1413 
1414  assert(SCIPfindDisp(scip, DISP_NAME_CURCOLS) == NULL);
1417  dispCopyDefault,
1418  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNCurCols, NULL,
1420 
1421  assert(SCIPfindDisp(scip, DISP_NAME_CURROWS) == NULL);
1424  dispCopyDefault,
1425  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNCurRows, NULL,
1427 
1428  assert(SCIPfindDisp(scip, DISP_NAME_CUTS) == NULL);
1431  dispCopyDefault,
1432  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNAppliedCuts, NULL,
1434 
1435  assert(SCIPfindDisp(scip, DISP_NAME_SEPAROUNDS) == NULL);
1438  dispCopyDefault,
1439  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNSepaRounds, NULL,
1441 
1442  assert(SCIPfindDisp(scip, DISP_NAME_POOLSIZE) == NULL);
1445  dispCopyDefault,
1446  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputCutPoolSize, NULL,
1448 
1449  assert(SCIPfindDisp(scip,DISP_NAME_CONFLICTS) == NULL);
1452  dispCopyDefault,
1453  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNConflicts, NULL,
1455 
1456  assert(SCIPfindDisp(scip, DISP_NAME_STRONGBRANCHS) == NULL);
1459  dispCopyDefault,
1460  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNStrongbranchs, NULL,
1462 
1463  assert(SCIPfindDisp(scip, DISP_NAME_PSEUDOOBJ) == NULL);
1466  dispCopyDefault,
1467  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputPseudoObjval, NULL,
1469 
1470  assert(SCIPfindDisp(scip, DISP_NAME_LPOBJ) == NULL);
1473  dispCopyDefault,
1474  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputLPObjval, NULL,
1476 
1477  assert(SCIPfindDisp(scip, DISP_NAME_CURDUALBOUND) == NULL);
1480  dispCopyDefault,
1481  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputCurDualbound, NULL,
1483 
1484  assert(SCIPfindDisp(scip, DISP_NAME_ESTIMATE) == NULL);
1487  dispCopyDefault,
1488  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputLocalOrigEstimate, NULL,
1490 
1491  assert(SCIPfindDisp(scip, DISP_NAME_AVGDUALBOUND) == NULL);
1494  dispCopyDefault,
1495  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputAvgDualbound, NULL,
1497 
1498  assert(SCIPfindDisp(scip, DISP_NAME_DUALBOUND) == NULL);
1501  dispCopyDefault,
1502  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputDualbound, NULL,
1504 
1505  assert(SCIPfindDisp(scip, DISP_NAME_PRIMALBOUND) == NULL);
1508  dispCopyDefault,
1509  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputPrimalbound, NULL,
1511 
1512  assert(SCIPfindDisp(scip, DISP_NAME_CONCDUALBOUND) == NULL);
1515  dispCopyDefault,
1516  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputConcDualbound, NULL,
1518  tmpdisp = SCIPfindDisp(scip, DISP_NAME_CONCDUALBOUND);
1520 
1521  assert(SCIPfindDisp(scip, DISP_NAME_CONCPRIMALBOUND) == NULL);
1524  dispCopyDefault,
1525  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputConcPrimalbound, NULL,
1527  tmpdisp = SCIPfindDisp(scip, DISP_NAME_CONCPRIMALBOUND);
1529 
1530  assert(SCIPfindDisp(scip, DISP_NAME_CUTOFFBOUND) == NULL);
1533  dispCopyDefault,
1534  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputCutoffbound, NULL,
1536 
1537  assert(SCIPfindDisp(scip, DISP_NAME_GAP) == NULL);
1540  dispCopyDefault,
1541  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputGap, NULL,
1543 
1544  assert(SCIPfindDisp(scip, DISP_NAME_CONCGAP) == NULL);
1547  dispCopyDefault,
1548  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputConcGap, NULL,
1550  tmpdisp = SCIPfindDisp(scip, DISP_NAME_CONCGAP);
1552 
1553  assert(SCIPfindDisp(scip, DISP_NAME_PRIMALGAP) == NULL);
1556  dispCopyDefault,
1557  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputPrimalgap, NULL,
1559 
1560  assert(SCIPfindDisp(scip, DISP_NAME_NSOLS) == NULL);
1563  dispCopyDefault,
1564  NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNSols, NULL,
1566 
1567  return SCIP_OKAY;
1568 }
1569 
#define DISP_WIDT_LPAVGITERS
Definition: disp_default.c:83
SCIP_Bool SCIPsolIsOriginal(SCIP_SOL *sol)
Definition: sol.c:2465
#define DISP_NAME_PLUNGEDEPTH
Definition: disp_default.c:136
#define DISP_WIDT_CURDUALBOUND
Definition: disp_default.c:259
#define DISP_NAME_CONCPRIMALBOUND
Definition: disp_default.c:304
#define DISP_DESC_DEPTH
Definition: disp_default.c:121
#define DISP_WIDT_CONCMEMUSED
Definition: disp_default.c:107
#define DISP_POSI_NFRAC
Definition: disp_default.c:149
#define DISP_PRIO_CONCSOLFOUND
Definition: disp_default.c:43
#define DISP_PRIO_MEMTOTAL
Definition: disp_default.c:116
SCIP_Real SCIPgetSolvingTime(SCIP *scip)
Definition: scip.c:46306
SCIP_Longint SCIPgetNRootLPIterations(SCIP *scip)
Definition: scip.c:42377
#define DISP_DESC_MEMTOTAL
Definition: disp_default.c:113
#define DISP_NAME_CUTS
Definition: disp_default.c:200
#define DISP_NAME_DUALBOUND
Definition: disp_default.c:280
#define DISP_NAME_GAP
Definition: disp_default.c:320
int SCIPgetPlungeDepth(SCIP *scip)
Definition: scip.c:43160
#define DISP_HEAD_NOBJLEAVES
Definition: disp_default.c:355
#define DISP_POSI_LPAVGITERS
Definition: disp_default.c:85
#define DISP_PRIO_NODESLEFT
Definition: disp_default.c:67
#define DISP_NAME_CONCDUALBOUND
Definition: disp_default.c:288
struct SCIP_DispData SCIP_DISPDATA
Definition: type_disp.h:62
#define DISP_WIDT_NSOLS
Definition: disp_default.c:347
#define DISP_HEAD_CURCONSS
Definition: disp_default.c:178
#define DISP_DESC_SEPAROUNDS
Definition: disp_default.c:209
SCIP_Longint SCIPgetNLPIterations(SCIP *scip)
Definition: scip.c:42333
#define DISP_POSI_NSOLS
Definition: disp_default.c:349
SCIP_Bool SCIPisFeasLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
Definition: scip.c:47311
#define DISP_STRI_NSOLS
Definition: disp_default.c:350
#define DISP_NAME_POOLSIZE
Definition: disp_default.c:216
#define DISP_PRIO_CURCONSS
Definition: disp_default.c:180
#define DISP_POSI_STRONGBRANCHS
Definition: disp_default.c:237
#define DISP_HEAD_VARS
Definition: disp_default.c:162
SCIP_Real SCIPgetCutoffbound(SCIP *scip)
Definition: scip.c:43453
SCIP_Real SCIPgetPrimalbound(SCIP *scip)
Definition: scip.c:43402
#define DISP_NAME_CONFLICTS
Definition: disp_default.c:224
#define DISP_POSI_TIME
Definition: disp_default.c:52
#define DISP_STRI_CONSS
Definition: disp_default.c:174
#define DISP_POSI_CUTS
Definition: disp_default.c:205
#define DISP_DESC_LPOBJ
Definition: disp_default.c:249
SCIP_Real SCIPgetConcurrentPrimalbound(SCIP *scip)
Definition: concurrent.c:311
SCIP_Longint SCIPgetNSolsFound(SCIP *scip)
Definition: scip.c:43619
#define DISP_STRI_MEMUSED
Definition: disp_default.c:102
#define DISP_HEAD_STRONGBRANCHS
Definition: disp_default.c:234
#define DISP_HEAD_CONCSOLFOUND
Definition: disp_default.c:41
#define DISP_WIDT_VARS
Definition: disp_default.c:163
#define DISP_POSI_SEPAROUNDS
Definition: disp_default.c:213
#define DISP_STRI_NOBJLEAVES
Definition: disp_default.c:359
#define DISP_PRIO_NSOLS
Definition: disp_default.c:348
#define DISP_HEAD_CUTOFFBOUND
Definition: disp_default.c:314
#define DISP_WIDT_AVGDUALBOUND
Definition: disp_default.c:275
#define DISP_PRIO_CONCPRIMALBOUND
Definition: disp_default.c:308
void SCIPdispLongint(SCIP_MESSAGEHDLR *messagehdlr, FILE *file, SCIP_Longint val, int width)
Definition: disp.c:529
#define DISP_DESC_CONCDUALBOUND
Definition: disp_default.c:289
#define DISP_HEAD_CONCDUALBOUND
Definition: disp_default.c:290
static SCIP_DECL_DISPINITSOL(SCIPdispInitsolSolFound)
Definition: disp_default.c:393
#define DISP_PRIO_DEPTH
Definition: disp_default.c:124
#define DISP_PRIO_NOBJLEAVES
Definition: disp_default.c:357
#define DISP_STRI_PSEUDOOBJ
Definition: disp_default.c:246
#define DISP_NAME_NOBJLEAVES
Definition: disp_default.c:353
#define DISP_PRIO_CONCGAP
Definition: disp_default.c:332
#define DISP_WIDT_DEPTH
Definition: disp_default.c:123
SCIP_RETCODE SCIPgetLPI(SCIP *scip, SCIP_LPI **lpi)
Definition: scip.c:30031
#define DISP_DESC_ESTIMATE
Definition: disp_default.c:265
#define DISP_DESC_CONCMEMUSED
Definition: disp_default.c:105
#define DISP_DESC_DUALBOUND
Definition: disp_default.c:281
#define DISP_POSI_PRIMALGAP
Definition: disp_default.c:341
int SCIPgetMaxDepth(SCIP *scip)
Definition: scip.c:43095
#define DISP_WIDT_SEPAROUNDS
Definition: disp_default.c:211
#define DISP_POSI_PSEUDOOBJ
Definition: disp_default.c:245
#define DISP_NAME_NFRAC
Definition: disp_default.c:144
#define DISP_PRIO_CONCMEMUSED
Definition: disp_default.c:108
#define DISP_HEAD_CURDUALBOUND
Definition: disp_default.c:258
#define DISP_STRI_CURCONSS
Definition: disp_default.c:182
#define DISP_DESC_PLUNGEDEPTH
Definition: disp_default.c:137
SCIP_Longint SCIPgetNStrongbranchs(SCIP *scip)
Definition: scip.c:42744
#define DISP_HEAD_NEXTERNCANDS
Definition: disp_default.c:154
#define DISP_STRI_SOLFOUND
Definition: disp_default.c:37
SCIP_Real SCIPinfinity(SCIP *scip)
Definition: scip.c:47028
#define DISP_PRIO_CUTOFFBOUND
Definition: disp_default.c:316
static SCIP_DECL_DISPCOPY(dispCopyDefault)
Definition: disp_default.c:377
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:53
#define DISP_STRI_MEMTOTAL
Definition: disp_default.c:118
#define DISP_WIDT_MEMTOTAL
Definition: disp_default.c:115
#define DISP_HEAD_LPOBJ
Definition: disp_default.c:250
#define DISP_NAME_TIME
Definition: disp_default.c:47
#define DISP_WIDT_CUTS
Definition: disp_default.c:203
#define DISP_DESC_NNODES
Definition: disp_default.c:56
#define DISP_NAME_NODESLEFT
Definition: disp_default.c:63
#define DISP_HEAD_LPAVGITERS
Definition: disp_default.c:82
int SCIPgetNNodesLeft(SCIP *scip)
Definition: scip.c:42178
default display columns
#define DISP_STRI_PRIMALGAP
Definition: disp_default.c:342
#define DISP_POSI_CONCSOLFOUND
Definition: disp_default.c:44
#define DISP_NAME_STRONGBRANCHS
Definition: disp_default.c:232
#define DISP_NAME_SEPAROUNDS
Definition: disp_default.c:208
#define SCIPfreeBlockMemory(scip, ptr)
Definition: scip.h:22602
#define DISP_WIDT_CONFLICTS
Definition: disp_default.c:227
#define DISP_POSI_AVGDUALBOUND
Definition: disp_default.c:277
#define DISP_DESC_STRONGBRANCHS
Definition: disp_default.c:233
#define DISP_WIDT_MAXDEPTH
Definition: disp_default.c:131
#define DISP_POSI_CONCMEMUSED
Definition: disp_default.c:109
#define DISP_DESC_LPCOND
Definition: disp_default.c:89
SCIP_MESSAGEHDLR * SCIPgetMessagehdlr(SCIP *scip)
Definition: scip.c:1235
SCIP_RETCODE SCIPlpiGetRealSolQuality(SCIP_LPI *lpi, SCIP_LPSOLQUALITY qualityindicator, SCIP_Real *quality)
#define DISP_STRI_CONCGAP
Definition: disp_default.c:334
#define DISP_WIDT_LPITERATIONS
Definition: disp_default.c:75
#define DISP_STRI_DEPTH
Definition: disp_default.c:126
SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
Definition: scip.c:46963
#define DISP_WIDT_NODESLEFT
Definition: disp_default.c:66
#define SCIPallocBlockMemory(scip, ptr)
Definition: scip.h:22585
int SCIPgetNLPBranchCands(SCIP *scip)
Definition: scip.c:37034
SCIP_Real SCIPsyncstoreGetLastUpperbound(SCIP_SYNCSTORE *syncstore)
Definition: syncstore.c:258
#define DISP_WIDT_CURCONSS
Definition: disp_default.c:179
#define DISP_STRI_MAXDEPTH
Definition: disp_default.c:134
void SCIPdispInt(SCIP_MESSAGEHDLR *messagehdlr, FILE *file, int val, int width)
Definition: disp.c:575
#define DISP_NAME_NEXTERNCANDS
Definition: disp_default.c:152
#define DISP_PRIO_CUTS
Definition: disp_default.c:204
#define DISP_HEAD_DEPTH
Definition: disp_default.c:122
#define DISP_STRI_CURROWS
Definition: disp_default.c:198
#define DISP_POSI_VARS
Definition: disp_default.c:165
#define DISP_WIDT_CURCOLS
Definition: disp_default.c:187
#define DISP_HEAD_PSEUDOOBJ
Definition: disp_default.c:242
void SCIPinfoMessage(SCIP *scip, FILE *file, const char *formatstr,...)
Definition: scip.c:1343
#define DISP_DESC_VARS
Definition: disp_default.c:161
#define DISP_NAME_LPCOND
Definition: disp_default.c:88
SCIP_DISP * SCIPfindDisp(SCIP *scip, const char *name)
Definition: scip.c:9393
SCIP_Real SCIPepsilon(SCIP *scip)
Definition: scip.c:46415
#define DISP_WIDT_ESTIMATE
Definition: disp_default.c:267
#define DISP_POSI_CONSS
Definition: disp_default.c:173
#define DISP_PRIO_ESTIMATE
Definition: disp_default.c:268
#define DISP_STRI_SEPAROUNDS
Definition: disp_default.c:214
#define DISP_PRIO_TIME
Definition: disp_default.c:51
#define DISP_HEAD_CONCPRIMALBOUND
Definition: disp_default.c:306
#define DISP_POSI_LPITERATIONS
Definition: disp_default.c:77
#define DISP_STRI_NINFEASLEAVES
Definition: disp_default.c:369
#define DISP_PRIO_PRIMALBOUND
Definition: disp_default.c:300
#define DISP_WIDT_NEXTERNCANDS
Definition: disp_default.c:155
#define DISP_DESC_AVGDUALBOUND
Definition: disp_default.c:273
#define DISP_NAME_MEMTOTAL
Definition: disp_default.c:112
#define DISP_WIDT_GAP
Definition: disp_default.c:323
int SCIPgetNCutsApplied(SCIP *scip)
Definition: scip.c:42938
#define DISP_WIDT_CUTOFFBOUND
Definition: disp_default.c:315
#define DISP_NAME_AVGDUALBOUND
Definition: disp_default.c:272
#define DISP_WIDT_LPCOND
Definition: disp_default.c:91
#define DISP_NAME_PRIMALGAP
Definition: disp_default.c:336
#define DISP_STRI_CONFLICTS
Definition: disp_default.c:230
#define DISP_POSI_PRIMALBOUND
Definition: disp_default.c:301
#define DISP_STRI_GAP
Definition: disp_default.c:326
#define DISP_WIDT_SOLFOUND
Definition: disp_default.c:34
#define DISP_WIDT_PLUNGEDEPTH
Definition: disp_default.c:139
#define DISP_NAME_PRIMALBOUND
Definition: disp_default.c:296
#define DISP_POSI_NEXTERNCANDS
Definition: disp_default.c:157
#define DISP_WIDT_NOBJLEAVES
Definition: disp_default.c:356
#define DISP_PRIO_STRONGBRANCHS
Definition: disp_default.c:236
#define DISP_DESC_NODESLEFT
Definition: disp_default.c:64
#define DISP_NAME_LPAVGITERS
Definition: disp_default.c:80
#define DISP_POSI_MEMUSED
Definition: disp_default.c:101
#define DISP_PRIO_NEXTERNCANDS
Definition: disp_default.c:156
#define DISP_PRIO_CONSS
Definition: disp_default.c:172
SCIP_Real SCIPgetDualbound(SCIP *scip)
Definition: scip.c:43256
#define DISP_PRIO_NINFEASLEAVES
Definition: disp_default.c:367
SCIP_STATUS SCIPgetStatus(SCIP *scip)
Definition: scip.c:928
#define DISP_STRI_CURCOLS
Definition: disp_default.c:190
#define DISP_PRIO_SOLFOUND
Definition: disp_default.c:35
#define DISP_POSI_GAP
Definition: disp_default.c:325
#define DISP_DESC_CURCONSS
Definition: disp_default.c:177
#define DISP_PRIO_GAP
Definition: disp_default.c:324
#define DISP_HEAD_PRIMALGAP
Definition: disp_default.c:338
SCIP_RETCODE SCIPincludeDispDefault(SCIP *scip)
#define DISP_WIDT_DUALBOUND
Definition: disp_default.c:283
#define DISP_NAME_CONCSOLFOUND
Definition: disp_default.c:39
SCIP_Real SCIPgetSolTransObj(SCIP *scip, SCIP_SOL *sol)
Definition: scip.c:39041
#define DISP_NAME_MEMUSED
Definition: disp_default.c:96
#define REALABS(x)
Definition: def.h:173
SCIP_Real SCIPgetLocalDualbound(SCIP *scip)
Definition: scip.c:13389
#define DISP_NAME_CURROWS
Definition: disp_default.c:192
#define DISP_PRIO_CURCOLS
Definition: disp_default.c:188
#define DISP_POSI_CUTOFFBOUND
Definition: disp_default.c:317
#define DISP_STRI_CONCPRIMALBOUND
Definition: disp_default.c:310
int SCIPgetNLPRows(SCIP *scip)
Definition: scip.c:29696
#define DISP_NAME_CURDUALBOUND
Definition: disp_default.c:256
#define DISP_STRI_LPITERATIONS
Definition: disp_default.c:78
#define DISP_DESC_PRIMALGAP
Definition: disp_default.c:337
#define DISP_PRIO_DUALBOUND
Definition: disp_default.c:284
#define SCIP_CALL(x)
Definition: def.h:350
SCIP_Real SCIPgetLowerbound(SCIP *scip)
Definition: scip.c:43277
#define DISP_NAME_DEPTH
Definition: disp_default.c:120
SCIP_Bool SCIPisPrimalboundSol(SCIP *scip)
Definition: scip.c:43513
SCIP_Longint SCIPgetNTotalNodes(SCIP *scip)
Definition: scip.c:42160
void SCIPdispTime(SCIP_MESSAGEHDLR *messagehdlr, FILE *file, SCIP_Real val, int width)
Definition: disp.c:592
SCIP_Bool SCIPisFeasLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
Definition: scip.c:47324
#define DISP_PRIO_CONCDUALBOUND
Definition: disp_default.c:292
#define DISP_HEAD_PRIMALBOUND
Definition: disp_default.c:298
#define DISP_DESC_GAP
Definition: disp_default.c:321
#define DISP_WIDT_NNODES
Definition: disp_default.c:58
#define DISP_NAME_LPOBJ
Definition: disp_default.c:248
#define DISP_PRIO_LPAVGITERS
Definition: disp_default.c:84
#define DISP_STRI_CONCMEMUSED
Definition: disp_default.c:110
#define DISP_NAME_PSEUDOOBJ
Definition: disp_default.c:240
#define DISP_DESC_NFRAC
Definition: disp_default.c:145
#define DISP_DESC_CUTS
Definition: disp_default.c:201
#define DISP_HEAD_POOLSIZE
Definition: disp_default.c:218
#define DISP_DESC_NEXTERNCANDS
Definition: disp_default.c:153
#define DISP_WIDT_MEMUSED
Definition: disp_default.c:99
#define DISP_NAME_NSOLS
Definition: disp_default.c:344
#define DISP_POSI_CONCDUALBOUND
Definition: disp_default.c:293
#define DISP_DESC_CURCOLS
Definition: disp_default.c:185
SCIP_Bool SCIPhasCurrentNodeLP(SCIP *scip)
Definition: scip.c:29208
#define DISP_HEAD_MAXDEPTH
Definition: disp_default.c:130
#define DISP_POSI_NOBJLEAVES
Definition: disp_default.c:358
#define DISP_PRIO_CONFLICTS
Definition: disp_default.c:228
#define DISP_DESC_CURDUALBOUND
Definition: disp_default.c:257
the function declarations for the synchronization store
#define DISP_STRI_NODESLEFT
Definition: disp_default.c:69
#define DISP_PRIO_LPOBJ
Definition: disp_default.c:252
#define DISP_DESC_CURROWS
Definition: disp_default.c:193
#define DISP_STRI_AVGDUALBOUND
Definition: disp_default.c:278
#define DISP_POSI_MEMTOTAL
Definition: disp_default.c:117
#define DISP_HEAD_NINFEASLEAVES
Definition: disp_default.c:365
#define DISP_STRI_NEXTERNCANDS
Definition: disp_default.c:158
#define DISP_HEAD_MEMTOTAL
Definition: disp_default.c:114
SCIP_LPSOLSTAT SCIPgetLPSolstat(SCIP *scip)
Definition: scip.c:29293
#define DISP_STRI_NFRAC
Definition: disp_default.c:150
SCIP_RETCODE SCIPincludeDisp(SCIP *scip, const char *name, const char *desc, const char *header, SCIP_DISPSTATUS dispstatus, SCIP_DECL_DISPCOPY((*dispcopy)), SCIP_DECL_DISPFREE((*dispfree)), SCIP_DECL_DISPINIT((*dispinit)), SCIP_DECL_DISPEXIT((*dispexit)), SCIP_DECL_DISPINITSOL((*dispinitsol)), SCIP_DECL_DISPEXITSOL((*dispexitsol)), SCIP_DECL_DISPOUTPUT((*dispoutput)), SCIP_DISPDATA *dispdata, int width, int priority, int position, SCIP_Bool stripline)
Definition: scip.c:9351
#define DISP_STRI_ESTIMATE
Definition: disp_default.c:270
#define DISP_PRIO_MAXDEPTH
Definition: disp_default.c:132
#define DISP_NAME_CURCOLS
Definition: disp_default.c:184
#define DISP_POSI_NODESLEFT
Definition: disp_default.c:68
SCIP_SYNCSTORE * SCIPgetSyncstore(SCIP *scip)
Definition: scip.c:42017
int SCIPgetDepth(SCIP *scip)
Definition: scip.c:43045
#define DISP_NAME_MAXDEPTH
Definition: disp_default.c:128
SCIP_Real SCIPgetGap(SCIP *scip)
Definition: scip.c:43536
#define DISP_PRIO_NFRAC
Definition: disp_default.c:148
#define DISP_DESC_POOLSIZE
Definition: disp_default.c:217
#define DISP_STRI_POOLSIZE
Definition: disp_default.c:222
#define DISP_DESC_CONCSOLFOUND
Definition: disp_default.c:40
#define DISP_HEAD_CONSS
Definition: disp_default.c:170
#define DISP_WIDT_CONCSOLFOUND
Definition: disp_default.c:42
#define DISP_PRIO_POOLSIZE
Definition: disp_default.c:220
#define DISP_HEAD_PLUNGEDEPTH
Definition: disp_default.c:138
#define DISP_NAME_CURCONSS
Definition: disp_default.c:176
#define DISP_NAME_ESTIMATE
Definition: disp_default.c:264
#define DISP_HEAD_CONCMEMUSED
Definition: disp_default.c:106
#define DISP_POSI_CONCGAP
Definition: disp_default.c:333
#define DISP_WIDT_NFRAC
Definition: disp_default.c:147
#define DISP_NAME_CONSS
Definition: disp_default.c:168
#define DISP_PRIO_AVGDUALBOUND
Definition: disp_default.c:276
SCIP_Longint SCIPsyncstoreGetLastMemTotal(SCIP_SYNCSTORE *syncstore)
Definition: syncstore.c:302
#define DISP_WIDT_PRIMALGAP
Definition: disp_default.c:339
#define DISP_PRIO_VARS
Definition: disp_default.c:164
#define DISP_STRI_VARS
Definition: disp_default.c:166
#define DISP_WIDT_CURROWS
Definition: disp_default.c:195
#define DISP_HEAD_SOLFOUND
Definition: disp_default.c:33
#define DISP_WIDT_CONCPRIMALBOUND
Definition: disp_default.c:307
#define DISP_HEAD_TIME
Definition: disp_default.c:49
#define DISP_WIDT_CONCDUALBOUND
Definition: disp_default.c:291
#define DISP_POSI_CURCOLS
Definition: disp_default.c:189
static SCIP_DECL_DISPOUTPUT(SCIPdispOutputSolFound)
Definition: disp_default.c:407
#define DISP_DESC_SOLFOUND
Definition: disp_default.c:32
#define DISP_POSI_LPCOND
Definition: disp_default.c:93
SCIP_Longint SCIPgetNConflictConssApplied(SCIP *scip)
Definition: scip.c:43019
SCIP_Longint SCIPgetNObjlimLeaves(SCIP *scip)
Definition: scip.c:42259
#define DISP_POSI_MAXDEPTH
Definition: disp_default.c:133
SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)
Definition: scip.c:47039
#define DISP_DESC_NSOLS
Definition: disp_default.c:345
#define DISP_POSI_CONFLICTS
Definition: disp_default.c:229
void SCIPchgDispMode(SCIP_DISP *disp, SCIP_DISPMODE mode)
Definition: scip.c:9441
#define DISP_WIDT_LPOBJ
Definition: disp_default.c:251
helper functions for concurrent scip solvers
#define DISP_POSI_CURCONSS
Definition: disp_default.c:181
int SCIPgetNVars(SCIP *scip)
Definition: scip.c:11812
#define DISP_NAME_NNODES
Definition: disp_default.c:55
SCIP_Real SCIPgetAvgDualbound(SCIP *scip)
Definition: scip.c:43215
#define DISP_POSI_NINFEASLEAVES
Definition: disp_default.c:368
#define DISP_POSI_DUALBOUND
Definition: disp_default.c:285
int SCIPsyncstoreGetLastNSols(SCIP_SYNCSTORE *syncstore)
Definition: syncstore.c:280
#define DISP_WIDT_TIME
Definition: disp_default.c:50
#define DISP_NAME_CUTOFFBOUND
Definition: disp_default.c:312
#define DISP_STRI_PRIMALBOUND
Definition: disp_default.c:302
#define DISP_NAME_NINFEASLEAVES
Definition: disp_default.c:363
#define DISP_DESC_CONCPRIMALBOUND
Definition: disp_default.c:305
SCIP_Longint SCIPgetMemTotal(SCIP *scip)
Definition: scip.c:46787
SCIP_Real SCIPgetLPObjval(SCIP *scip)
Definition: scip.c:29372
SCIP_SOL * SCIPgetBestSol(SCIP *scip)
Definition: scip.c:39882
#define DISP_POSI_NNODES
Definition: disp_default.c:60
#define DISP_WIDT_CONCGAP
Definition: disp_default.c:331
#define DISP_POSI_LPOBJ
Definition: disp_default.c:253
SCIP_Real SCIPgetConcurrentGap(SCIP *scip)
Definition: concurrent.c:326
SCIP_Longint SCIPgetMemUsed(SCIP *scip)
Definition: scip.c:46774
#define DISP_DESC_CUTOFFBOUND
Definition: disp_default.c:313
SCIP_Real SCIPgetConcurrentDualbound(SCIP *scip)
Definition: concurrent.c:296
#define DISP_POSI_SOLFOUND
Definition: disp_default.c:36
#define DISP_WIDT_POOLSIZE
Definition: disp_default.c:219
int SCIPgetNConss(SCIP *scip)
Definition: scip.c:12862
#define DISP_PRIO_LPITERATIONS
Definition: disp_default.c:76
#define DISP_PRIO_LPCOND
Definition: disp_default.c:92
#define DISP_STRI_LPOBJ
Definition: disp_default.c:254
#define DISP_DESC_MEMUSED
Definition: disp_default.c:97
#define DISP_DESC_TIME
Definition: disp_default.c:48
void SCIPdispSetData(SCIP_DISP *disp, SCIP_DISPDATA *dispdata)
Definition: disp.c:272
#define DISP_POSI_ESTIMATE
Definition: disp_default.c:269
#define DISP_STRI_CURDUALBOUND
Definition: disp_default.c:262
#define DISP_POSI_CONCPRIMALBOUND
Definition: disp_default.c:309
#define DISP_STRI_CUTS
Definition: disp_default.c:206
#define DISP_WIDT_STRONGBRANCHS
Definition: disp_default.c:235
SCIP_Real SCIPretransformObj(SCIP *scip, SCIP_Real obj)
Definition: scip.c:39126
#define DISP_PRIO_NNODES
Definition: disp_default.c:59
#define DISP_STRI_NNODES
Definition: disp_default.c:61
SCIP_HEUR * SCIPgetSolHeur(SCIP *scip, SCIP_SOL *sol)
Definition: scip.c:39234
struct SCIP_LPi SCIP_LPI
Definition: type_lpi.h:96
#define SCIP_Real
Definition: def.h:149
#define DISP_DESC_MAXDEPTH
Definition: disp_default.c:129
#define DISP_PRIO_PSEUDOOBJ
Definition: disp_default.c:244
char SCIPheurGetDispchar(SCIP_HEUR *heur)
Definition: heur.c:1218
#define DISP_STRI_CONCSOLFOUND
Definition: disp_default.c:45
#define DISP_PRIO_CURDUALBOUND
Definition: disp_default.c:260
#define DISP_STRI_PLUNGEDEPTH
Definition: disp_default.c:142
#define DISP_DESC_NINFEASLEAVES
Definition: disp_default.c:364
#define DISP_DESC_NOBJLEAVES
Definition: disp_default.c:354
int SCIPgetNPoolCuts(SCIP *scip)
Definition: scip.c:34831
#define SCIP_INVALID
Definition: def.h:169
SCIP_Real SCIPgetLocalOrigEstimate(SCIP *scip)
Definition: scip.c:13350
#define DISP_PRIO_MEMUSED
Definition: disp_default.c:100
#define DISP_HEAD_CONCGAP
Definition: disp_default.c:330
#define DISP_POSI_DEPTH
Definition: disp_default.c:125
#define DISP_DESC_CONSS
Definition: disp_default.c:169
#define DISP_HEAD_NNODES
Definition: disp_default.c:57
#define DISP_HEAD_AVGDUALBOUND
Definition: disp_default.c:274
#define DISP_HEAD_NODESLEFT
Definition: disp_default.c:65
#define DISP_NAME_LPITERATIONS
Definition: disp_default.c:72
#define DISP_WIDT_PRIMALBOUND
Definition: disp_default.c:299
SCIP_OBJSENSE SCIPgetObjsense(SCIP *scip)
Definition: scip.c:11049
#define DISP_POSI_POOLSIZE
Definition: disp_default.c:221
#define DISP_STRI_LPCOND
Definition: disp_default.c:94
#define DISP_PRIO_CURROWS
Definition: disp_default.c:196
#define DISP_PRIO_PLUNGEDEPTH
Definition: disp_default.c:140
SCIP_DISPDATA * SCIPdispGetData(SCIP_DISP *disp)
Definition: disp.c:262
SCIP_Bool SCIPisZero(SCIP *scip, SCIP_Real val)
Definition: scip.c:47076
#define DISP_HEAD_CURROWS
Definition: disp_default.c:194
#define DISP_HEAD_LPCOND
Definition: disp_default.c:90
#define DISP_POSI_CURDUALBOUND
Definition: disp_default.c:261
#define DISP_WIDT_PSEUDOOBJ
Definition: disp_default.c:243
int SCIPgetNLPCols(SCIP *scip)
Definition: scip.c:29618
#define DISP_DESC_CONFLICTS
Definition: disp_default.c:225
#define DISP_PRIO_SEPAROUNDS
Definition: disp_default.c:212
#define DISP_NAME_CONCMEMUSED
Definition: disp_default.c:104
SCIP_Real SCIPgetUpperbound(SCIP *scip)
Definition: scip.c:43426
#define DISP_NAME_CONCGAP
Definition: disp_default.c:328
int SCIPgetNExternBranchCands(SCIP *scip)
Definition: scip.c:37149
#define DISP_WIDT_NINFEASLEAVES
Definition: disp_default.c:366
SCIP_Real SCIPgetPseudoObjval(SCIP *scip)
Definition: scip.c:29458
#define DISP_NAME_SOLFOUND
Definition: disp_default.c:31
#define DISP_DESC_LPAVGITERS
Definition: disp_default.c:81
#define DISP_DESC_CONCGAP
Definition: disp_default.c:329
#define DISP_WIDT_CONSS
Definition: disp_default.c:171
int SCIPgetNEnabledConss(SCIP *scip)
Definition: scip.c:43197
#define DISP_STRI_LPAVGITERS
Definition: disp_default.c:86
SCIP_Longint SCIPgetNNodes(SCIP *scip)
Definition: scip.c:42133
const char * SCIPdispGetName(SCIP_DISP *disp)
Definition: disp.c:283
SCIP_Longint SCIPgetNInfeasibleLeaves(SCIP *scip)
Definition: scip.c:42232
#define DISP_STRI_STRONGBRANCHS
Definition: disp_default.c:238
#define DISP_POSI_PLUNGEDEPTH
Definition: disp_default.c:141
#define DISP_HEAD_NFRAC
Definition: disp_default.c:146
#define DISP_DESC_LPITERATIONS
Definition: disp_default.c:73
#define DISP_HEAD_GAP
Definition: disp_default.c:322
#define DISP_HEAD_LPITERATIONS
Definition: disp_default.c:74
#define DISP_STRI_CONCDUALBOUND
Definition: disp_default.c:294
#define DISP_NAME_VARS
Definition: disp_default.c:160
#define DISP_HEAD_MEMUSED
Definition: disp_default.c:98
#define DISP_STRI_TIME
Definition: disp_default.c:53
#define DISP_DESC_PSEUDOOBJ
Definition: disp_default.c:241
#define DISP_HEAD_NSOLS
Definition: disp_default.c:346
#define DISP_PRIO_PRIMALGAP
Definition: disp_default.c:340
#define DISP_HEAD_DUALBOUND
Definition: disp_default.c:282
#define DISP_DESC_PRIMALBOUND
Definition: disp_default.c:297
#define DISP_HEAD_SEPAROUNDS
Definition: disp_default.c:210
#define DISP_STRI_CUTOFFBOUND
Definition: disp_default.c:318
#define DISP_HEAD_CONFLICTS
Definition: disp_default.c:226
#define DISP_POSI_CURROWS
Definition: disp_default.c:197
int SCIPgetNSepaRounds(SCIP *scip)
Definition: scip.c:42884
#define DISP_HEAD_ESTIMATE
Definition: disp_default.c:266
#define DISP_HEAD_CUTS
Definition: disp_default.c:202
#define DISP_STRI_DUALBOUND
Definition: disp_default.c:286
#define DISP_HEAD_CURCOLS
Definition: disp_default.c:186