42 #include "scip/disp_default.h"
48 #define DISP_NAME_SOLFOUND "solfound"
49 #define DISP_DESC_SOLFOUND "letter that indicates the heuristic, that found the solution"
50 #define DISP_HEAD_SOLFOUND " "
51 #define DISP_WIDT_SOLFOUND 2
52 #define DISP_PRIO_SOLFOUND 80000
53 #define DISP_POSI_SOLFOUND 0
54 #define DISP_STRI_SOLFOUND FALSE
56 #define DISP_NAME_TIME "time"
57 #define DISP_DESC_TIME "total solution time"
58 #define DISP_HEAD_TIME "time"
59 #define DISP_WIDT_TIME 5
60 #define DISP_PRIO_TIME 4000
61 #define DISP_POSI_TIME 50
62 #define DISP_STRI_TIME TRUE
64 #define DISP_NAME_NNODES "nnodes"
65 #define DISP_DESC_NNODES "number of processed nodes"
66 #define DISP_HEAD_NNODES "node"
67 #define DISP_WIDT_NNODES 7
68 #define DISP_PRIO_NNODES 100000
69 #define DISP_POSI_NNODES 100
70 #define DISP_STRI_NNODES TRUE
72 #define DISP_NAME_NODESLEFT "nodesleft"
73 #define DISP_DESC_NODESLEFT "number of unprocessed nodes"
74 #define DISP_HEAD_NODESLEFT "left"
75 #define DISP_WIDT_NODESLEFT 7
76 #define DISP_PRIO_NODESLEFT 90000
77 #define DISP_POSI_NODESLEFT 200
78 #define DISP_STRI_NODESLEFT TRUE
80 #define DISP_NAME_LPITERATIONS "lpiterations"
81 #define DISP_DESC_LPITERATIONS "number of simplex iterations"
82 #define DISP_HEAD_LPITERATIONS "LP iter"
83 #define DISP_WIDT_LPITERATIONS 7
84 #define DISP_PRIO_LPITERATIONS 1000
85 #define DISP_POSI_LPITERATIONS 1000
86 #define DISP_STRI_LPITERATIONS TRUE
88 #define DISP_NAME_SLPITERATIONS "sumlpiterations"
89 #define DISP_DESC_SLPITERATIONS "number of simplex iterations in master and pricing problems"
90 #define DISP_HEAD_SLPITERATIONS "SLP iter"
91 #define DISP_WIDT_SLPITERATIONS 8
92 #define DISP_PRIO_SLPITERATIONS 30000
93 #define DISP_POSI_SLPITERATIONS 1050
94 #define DISP_STRI_SLPITERATIONS TRUE
96 #define DISP_NAME_LPAVGITERS "lpavgiterations"
97 #define DISP_DESC_LPAVGITERS "average number of LP iterations since the last output line"
98 #define DISP_HEAD_LPAVGITERS "LP it/n"
99 #define DISP_WIDT_LPAVGITERS 7
100 #define DISP_PRIO_LPAVGITERS 25000
101 #define DISP_POSI_LPAVGITERS 1400
102 #define DISP_STRI_LPAVGITERS TRUE
104 #define DISP_NAME_LPCOND "lpcond"
105 #define DISP_DESC_LPCOND "estimate on condition number of LP solution"
106 #define DISP_HEAD_LPCOND "LP cond"
107 #define DISP_WIDT_LPCOND 7
108 #define DISP_PRIO_LPCOND 0
109 #define DISP_POSI_LPCOND 1450
110 #define DISP_STRI_LPCOND TRUE
112 #define DISP_NAME_MEMUSED "memused"
113 #define DISP_DESC_MEMUSED "total number of bytes used in block memory"
114 #define DISP_HEAD_MEMUSED "mem"
115 #define DISP_WIDT_MEMUSED 5
116 #define DISP_PRIO_MEMUSED 20000
117 #define DISP_POSI_MEMUSED 1500
118 #define DISP_STRI_MEMUSED TRUE
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
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
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
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
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
160 #define DISP_NAME_VARS "vars"
161 #define DISP_DESC_VARS "number of variables in the original problem"
162 #define DISP_HEAD_VARS "ovars"
163 #define DISP_WIDT_VARS 5
164 #define DISP_PRIO_VARS 3000
165 #define DISP_POSI_VARS 3000
166 #define DISP_STRI_VARS TRUE
168 #define DISP_NAME_CONSS "conss"
169 #define DISP_DESC_CONSS "number of globally valid constraints in the problem"
170 #define DISP_HEAD_CONSS "ocons"
171 #define DISP_WIDT_CONSS 5
172 #define DISP_PRIO_CONSS 3100
173 #define DISP_POSI_CONSS 3100
174 #define DISP_STRI_CONSS TRUE
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
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
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
200 #define DISP_NAME_CUTS "cuts"
201 #define DISP_DESC_CUTS "total number of cuts applied to the original LPs"
202 #define DISP_HEAD_CUTS "ocuts"
203 #define DISP_WIDT_CUTS 5
204 #define DISP_PRIO_CUTS 100
205 #define DISP_POSI_CUTS 3500
206 #define DISP_STRI_CUTS TRUE
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
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
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
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
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
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
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
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
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
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
288 #define DISP_NAME_PRIMALBOUND "primalbound"
289 #define DISP_DESC_PRIMALBOUND "current primal bound"
290 #define DISP_HEAD_PRIMALBOUND "primalbound"
291 #define DISP_WIDT_PRIMALBOUND 14
292 #define DISP_PRIO_PRIMALBOUND 80000
293 #define DISP_POSI_PRIMALBOUND 10000
294 #define DISP_STRI_PRIMALBOUND TRUE
296 #define DISP_NAME_CUTOFFBOUND "cutoffbound"
297 #define DISP_DESC_CUTOFFBOUND "current cutoff bound"
298 #define DISP_HEAD_CUTOFFBOUND "cutoffbound"
299 #define DISP_WIDT_CUTOFFBOUND 14
300 #define DISP_PRIO_CUTOFFBOUND 10
301 #define DISP_POSI_CUTOFFBOUND 10100
302 #define DISP_STRI_CUTOFFBOUND TRUE
304 #define DISP_NAME_DEGENERACY "degeneracy"
305 #define DISP_DESC_DEGENERACY "current average degeneracy"
306 #define DISP_HEAD_DEGENERACY "deg"
307 #define DISP_WIDT_DEGENERACY 8
308 #define DISP_PRIO_DEGENERACY 40000
309 #define DISP_POSI_DEGENERACY 18000
310 #define DISP_STRI_DEGENERACY TRUE
312 #define DISP_NAME_GAP "gap"
313 #define DISP_DESC_GAP "current (relative) gap using |primal-dual|/MIN(|dual|,|primal|)"
314 #define DISP_HEAD_GAP "gap"
315 #define DISP_WIDT_GAP 8
316 #define DISP_PRIO_GAP 60000
317 #define DISP_POSI_GAP 20000
318 #define DISP_STRI_GAP TRUE
320 #define DISP_NAME_PRIMALGAP "primalgap"
321 #define DISP_DESC_PRIMALGAP "current (relative) gap using |primal-dual|/|primal|"
322 #define DISP_HEAD_PRIMALGAP "primgap"
323 #define DISP_WIDT_PRIMALGAP 8
324 #define DISP_PRIO_PRIMALGAP 20000
325 #define DISP_POSI_PRIMALGAP 21000
326 #define DISP_STRI_PRIMALGAP TRUE
328 #define DISP_NAME_NSOLS "nsols"
329 #define DISP_DESC_NSOLS "current number of solutions found"
330 #define DISP_HEAD_NSOLS "nsols"
331 #define DISP_WIDT_NSOLS 5
332 #define DISP_PRIO_NSOLS 0
333 #define DISP_POSI_NSOLS 30000
334 #define DISP_STRI_NSOLS TRUE
336 #define DISP_NAME_MLPITERATIONS "mlpiterations"
337 #define DISP_DESC_MLPITERATIONS "number of simplex iterations in the master"
338 #define DISP_HEAD_MLPITERATIONS "MLP iter"
339 #define DISP_WIDT_MLPITERATIONS 8
340 #define DISP_PRIO_MLPITERATIONS 80000
341 #define DISP_POSI_MLPITERATIONS 1100
342 #define DISP_STRI_MLPITERATIONS TRUE
344 #define DISP_NAME_MVARS "mvars"
345 #define DISP_DESC_MVARS "number of variables in the master problem"
346 #define DISP_HEAD_MVARS "mvars"
347 #define DISP_WIDT_MVARS 5
348 #define DISP_PRIO_MVARS 70000
349 #define DISP_POSI_MVARS 3050
350 #define DISP_STRI_MVARS TRUE
352 #define DISP_NAME_MCONSS "mconss"
353 #define DISP_DESC_MCONSS "number of globally valid constraints in the master problem"
354 #define DISP_HEAD_MCONSS "mcons"
355 #define DISP_WIDT_MCONSS 5
356 #define DISP_PRIO_MCONSS 70000
357 #define DISP_POSI_MCONSS 3150
358 #define DISP_STRI_MCONSS TRUE
360 #define DISP_NAME_MCUTS "mcuts"
361 #define DISP_DESC_MCUTS "total number of cuts applied to the master LPs"
362 #define DISP_HEAD_MCUTS "mcuts"
363 #define DISP_WIDT_MCUTS 5
364 #define DISP_PRIO_MCUTS 80000
365 #define DISP_POSI_MCUTS 3550
366 #define DISP_STRI_MCUTS TRUE
376 assert(scip != NULL);
377 assert(disp != NULL);
380 SCIP_CALL( SCIPincludeDispDefault(scip) );
390 assert(disp != NULL);
392 assert(scip != NULL);
394 SCIPdispSetData(disp, (SCIP_DISPDATA*)SCIPgetBestSol(scip));
406 SCIP_DISPDATA* dispdata;
408 assert(disp != NULL);
410 assert(scip != NULL);
414 assert(masterprob != NULL);
416 origsol = SCIPgetBestSol(scip);
417 if( origsol == NULL )
418 SCIPdispSetData(disp, NULL);
420 if( SCIPgetStage(masterprob) >= SCIP_STAGE_SOLVING )
421 mastersol = SCIPgetBestSol(masterprob);
425 dispdata = SCIPdispGetData(disp);
426 if( origsol != (SCIP_SOL*)dispdata )
428 SCIPinfoMessage(scip, file,
"%c", (SCIPgetSolHeur(scip, origsol) == NULL ?
'*'
429 : SCIPheurGetDispchar(SCIPgetSolHeur(scip, origsol))));
432 if( SCIPgetSolHeur(scip, origsol) == NULL && (mastersol != NULL) )
434 SCIPinfoMessage(scip, file,
"%c", (SCIPgetSolHeur(masterprob, mastersol) == NULL ?
'*'
435 : SCIPheurGetDispchar(SCIPgetSolHeur(masterprob, mastersol))));
439 SCIPinfoMessage(scip, file,
" ");
441 SCIPdispSetData(disp, (SCIP_DISPDATA*)origsol);
444 SCIPinfoMessage(scip, file,
" ");
453 assert(disp != NULL);
455 assert(scip != NULL);
457 SCIPdispTime(SCIPgetMessagehdlr(scip), file, SCIPgetSolvingTime(scip),
DISP_WIDT_TIME);
468 assert(disp != NULL);
470 assert(scip != NULL);
474 assert(masterprob != NULL);
477 SCIPdispLongint(SCIPgetMessagehdlr(scip), file, SCIPgetNNodes(masterprob),
DISP_WIDT_NNODES);
479 SCIPdispLongint(SCIPgetMessagehdlr(scip), file, SCIPgetNNodes(scip),
DISP_WIDT_NNODES);
490 assert(disp != NULL);
492 assert(scip != NULL);
496 assert(masterprob != NULL);
499 SCIPdispInt(SCIPgetMessagehdlr(scip), file, SCIPgetNNodesLeft(masterprob),
DISP_WIDT_NODESLEFT);
510 assert(disp != NULL);
512 assert(scip != NULL);
526 assert(disp != NULL);
528 assert(scip != NULL);
538 assert(masterprob != NULL);
543 nnodes = SCIPgetNNodes(scip);
546 SCIPinfoMessage(scip, file,
" - ");
548 SCIPinfoMessage(scip, file,
"%6.1f ",
562 assert(disp != NULL);
564 assert(scip != NULL);
566 SCIP_CALL( SCIPgetLPI(scip, &lpi) );
569 SCIPinfoMessage(scip, file,
" - ");
573 SCIP_CALL( SCIPlpiGetRealSolQuality(lpi, SCIP_LPSOLQUALITY_ESTIMCONDITION, &cond) );
575 if( cond == SCIP_INVALID )
576 SCIPinfoMessage(scip, file,
" n/a ");
578 SCIPinfoMessage(scip, file,
"%.1e", cond);
587 assert(disp != NULL);
589 assert(scip != NULL);
591 SCIPdispInt(SCIPgetMessagehdlr(scip), file, SCIPgetDepth(scip),
DISP_WIDT_DEPTH);
600 SCIP_Longint memused;
603 assert(disp != NULL);
605 assert(scip != NULL);
607 memused = SCIPgetMemUsed(scip);
623 assert(disp != NULL);
625 assert(scip != NULL);
627 SCIPdispInt(SCIPgetMessagehdlr(scip), file, SCIPgetMaxDepth(scip),
DISP_WIDT_MAXDEPTH);
636 assert(disp != NULL);
638 assert(scip != NULL);
649 assert(disp != NULL);
651 assert(scip != NULL);
653 if( SCIPhasCurrentNodeLP(scip) && SCIPgetLPSolstat(scip) == SCIP_LPSOLSTAT_OPTIMAL )
654 SCIPdispInt(SCIPgetMessagehdlr(scip), file, SCIPgetNLPBranchCands(scip),
DISP_WIDT_NFRAC);
656 SCIPinfoMessage(scip, file,
" - ");
665 assert(disp != NULL);
667 assert(scip != NULL);
678 assert(disp != NULL);
680 assert(scip != NULL);
682 SCIPdispInt(SCIPgetMessagehdlr(scip), file, SCIPgetNVars(scip),
DISP_WIDT_VARS);
691 assert(disp != NULL);
693 assert(scip != NULL);
695 SCIPdispInt(SCIPgetMessagehdlr(scip), file, SCIPgetNConss(scip),
DISP_WIDT_CONSS);
704 assert(disp != NULL);
706 assert(scip != NULL);
708 SCIPdispInt(SCIPgetMessagehdlr(scip), file, SCIPgetNEnabledConss(scip),
DISP_WIDT_CURCONSS);
717 assert(disp != NULL);
719 assert(scip != NULL);
721 SCIPdispInt(SCIPgetMessagehdlr(scip), file, SCIPgetNLPCols(scip),
DISP_WIDT_CURCOLS);
730 assert(disp != NULL);
732 assert(scip != NULL);
734 SCIPdispInt(SCIPgetMessagehdlr(scip), file, SCIPgetNLPRows(scip),
DISP_WIDT_CURROWS);
743 assert(disp != NULL);
745 assert(scip != NULL);
747 SCIPdispInt(SCIPgetMessagehdlr(scip), file, SCIPgetNCutsApplied(scip),
DISP_WIDT_CUTS);
756 assert(disp != NULL);
758 assert(scip != NULL);
776 assert(disp != NULL);
778 assert(scip != NULL);
796 assert(disp != NULL);
798 assert(scip != NULL);
800 SCIPdispLongint(SCIPgetMessagehdlr(scip), file, SCIPgetNConflictConssApplied(scip),
DISP_WIDT_CONFLICTS);
809 assert(disp != NULL);
811 assert(scip != NULL);
824 assert(disp != NULL);
826 assert(scip != NULL);
828 pseudoobj = SCIPgetPseudoObjval(scip);
830 if( SCIPisInfinity(scip, -pseudoobj) )
831 SCIPinfoMessage(scip, file,
" -- ");
832 else if( SCIPisInfinity(scip, pseudoobj) )
833 SCIPinfoMessage(scip, file,
" cutoff ");
835 SCIPinfoMessage(scip, file,
"%13.6e ", pseudoobj);
845 assert(disp != NULL);
847 assert(scip != NULL);
851 SCIPinfoMessage(scip, file,
" -- ");
856 if( SCIPisInfinity(scip, -lpobj) )
857 SCIPinfoMessage(scip, file,
" -- ");
858 else if( SCIPisInfinity(scip, lpobj) )
859 SCIPinfoMessage(scip, file,
" cutoff ");
861 SCIPinfoMessage(scip, file,
"%13.6e ", lpobj);
871 SCIP_Real curdualbound;
873 assert(disp != NULL);
875 assert(scip != NULL);
877 curdualbound = SCIPgetLocalDualbound(scip);
879 if( SCIPisInfinity(scip, (SCIP_Real) SCIPgetObjsense(scip) * curdualbound ) )
880 SCIPinfoMessage(scip, file,
" cutoff ");
881 else if( SCIPisInfinity(scip, -1.0 * (SCIP_Real) SCIPgetObjsense(scip) * curdualbound ) )
882 SCIPinfoMessage(scip, file,
" -- ");
884 SCIPinfoMessage(scip, file,
"%13.6e ", curdualbound);
896 assert(disp != NULL);
898 assert(scip != NULL);
900 estimate = SCIPgetLocalOrigEstimate(scip);
901 if( SCIPisInfinity(scip, REALABS(estimate)) )
902 SCIPinfoMessage(scip, file,
" -- ");
904 SCIPinfoMessage(scip, file,
"%13.6e ", estimate);
913 SCIP_Real avgdualbound;
915 assert(disp != NULL);
917 assert(scip != NULL);
919 avgdualbound = SCIPgetAvgDualbound(scip);
920 if( SCIPisInfinity(scip, REALABS(avgdualbound)) )
921 SCIPinfoMessage(scip, file,
" -- ");
923 SCIPinfoMessage(scip, file,
"%13.6e ", avgdualbound);
934 assert(disp != NULL);
936 assert(scip != NULL);
940 if( SCIPisInfinity(scip, (SCIP_Real) SCIPgetObjsense(scip) * dualbound ) )
941 SCIPinfoMessage(scip, file,
" cutoff ");
942 else if( SCIPisInfinity(scip, -1.0 * (SCIP_Real) SCIPgetObjsense(scip) * dualbound ) )
943 SCIPinfoMessage(scip, file,
" -- ");
945 SCIPinfoMessage(scip, file,
"%13.6e ", dualbound);
954 SCIP_Real primalbound;
956 assert(disp != NULL);
958 assert(scip != NULL);
962 if( SCIPisInfinity(scip, REALABS(primalbound)) )
963 SCIPinfoMessage(scip, file,
" -- ");
965 SCIPinfoMessage(scip, file,
"%13.6e%c", primalbound, SCIPisPrimalboundSol(scip) ?
' ' :
'*');
974 SCIP_Real cutoffbound;
976 assert(disp != NULL);
978 assert(scip != NULL);
980 cutoffbound = SCIPgetCutoffbound(scip);
981 if( SCIPisInfinity(scip, REALABS(cutoffbound)) )
982 SCIPinfoMessage(scip, file,
" -- ");
984 SCIPinfoMessage(scip, file,
"%13.6e ", SCIPretransformObj(scip, cutoffbound));
995 assert(disp != NULL);
997 assert(scip != NULL);
1001 if( SCIPisInfinity(scip, gap) )
1002 SCIPinfoMessage(scip, file,
" Inf ");
1003 else if( gap >= 100.00 )
1004 SCIPinfoMessage(scip, file,
" Large ");
1006 SCIPinfoMessage(scip, file,
"%7.2f%%", 100.0*gap);
1018 assert(disp != NULL);
1020 assert(scip != NULL);
1024 if( masterprob != NULL && SCIPgetStage(masterprob) >= SCIP_STAGE_SOLVING )
1041 SCIP_Real degeneracy;
1043 assert(disp != NULL);
1045 assert(scip != NULL);
1049 if( SCIPisInfinity(scip, degeneracy) )
1050 SCIPinfoMessage(scip, file,
" -- ");
1052 SCIPinfoMessage(scip, file,
"%7.2f%%", 100.0*degeneracy);
1062 SCIP_Real primalbound;
1063 SCIP_Real dualbound;
1066 assert(disp != NULL);
1068 assert(scip != NULL);
1070 primalbound = SCIPgetPrimalbound(scip);
1071 dualbound = SCIPgetDualbound(scip);
1073 if( SCIPisEQ(scip, primalbound, dualbound) )
1075 else if( SCIPisZero(scip, primalbound) || SCIPisInfinity(scip, REALABS(primalbound)) || primalbound * dualbound < 0.0 )
1076 gap = SCIPinfinity(scip);
1078 gap = REALABS((primalbound - dualbound))/REALABS(primalbound + SCIPepsilon(scip));
1080 if( SCIPisInfinity(scip, gap) )
1081 SCIPinfoMessage(scip, file,
" Inf ");
1082 else if( gap >= 100.00 )
1083 SCIPinfoMessage(scip, file,
" Large ");
1085 SCIPinfoMessage(scip, file,
"%7.2f%%", 100.0*gap);
1094 SCIPinfoMessage(scip, file,
"%5"SCIP_LONGINT_FORMAT, SCIPgetNSolsFound(scip));
1103 assert(disp != NULL);
1105 assert(scip != NULL);
1123 assert(disp != NULL);
1125 assert(scip != NULL);
1143 assert(disp != NULL);
1145 assert(scip != NULL);
1163 assert(disp != NULL);
1165 assert(scip != NULL);
1193 if( tmpdisp == NULL )
1196 SCIP_DISPSTATUS_AUTO,
1198 NULL, NULL, NULL, SCIPdispInitsolSolFound, NULL, SCIPdispOutputSolFound, NULL,
1202 if( tmpdisp == NULL )
1205 SCIP_DISPSTATUS_AUTO,
1207 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputSolvingTime, NULL,
1211 if( tmpdisp == NULL )
1214 SCIP_DISPSTATUS_AUTO,
1216 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNNodes, NULL,
1220 if( tmpdisp == NULL )
1223 SCIP_DISPSTATUS_AUTO,
1225 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNNodesLeft, NULL,
1229 if( tmpdisp == NULL )
1232 SCIP_DISPSTATUS_AUTO,
1234 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNLPIterations, NULL,
1238 if( tmpdisp == NULL )
1241 SCIP_DISPSTATUS_AUTO,
1243 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNLPAvgIters, NULL,
1247 if( tmpdisp == NULL )
1250 SCIP_DISPSTATUS_AUTO,
1252 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputLPCondition, NULL,
1256 if( tmpdisp == NULL )
1259 SCIP_DISPSTATUS_AUTO,
1261 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputMemUsed, NULL,
1265 if( tmpdisp == NULL )
1268 SCIP_DISPSTATUS_AUTO,
1270 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputDepth, NULL,
1274 if( tmpdisp == NULL )
1277 SCIP_DISPSTATUS_AUTO,
1279 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputMaxDepth, NULL,
1283 if( tmpdisp == NULL )
1286 SCIP_DISPSTATUS_AUTO,
1288 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputPlungeDepth, NULL,
1292 if( tmpdisp == NULL )
1295 SCIP_DISPSTATUS_AUTO,
1297 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNFrac, NULL,
1301 if( tmpdisp == NULL )
1304 SCIP_DISPSTATUS_AUTO,
1306 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNExternCands, NULL,
1310 if( tmpdisp == NULL )
1313 SCIP_DISPSTATUS_AUTO,
1315 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNVars, NULL,
1319 if( tmpdisp == NULL )
1322 SCIP_DISPSTATUS_AUTO,
1324 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNConss, NULL,
1328 if( tmpdisp == NULL )
1331 SCIP_DISPSTATUS_AUTO,
1333 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNCurConss, NULL,
1337 if( tmpdisp == NULL )
1340 SCIP_DISPSTATUS_AUTO,
1342 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNCurCols, NULL,
1346 if( tmpdisp == NULL )
1349 SCIP_DISPSTATUS_AUTO,
1351 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNCurRows, NULL,
1355 if( tmpdisp == NULL )
1358 SCIP_DISPSTATUS_AUTO,
1360 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNAppliedCuts, NULL,
1364 if( tmpdisp == NULL )
1367 SCIP_DISPSTATUS_AUTO,
1369 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNSepaRounds, NULL,
1373 if( tmpdisp == NULL )
1376 SCIP_DISPSTATUS_AUTO,
1378 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputCutPoolSize, NULL,
1382 if( tmpdisp == NULL )
1385 SCIP_DISPSTATUS_AUTO,
1387 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNConflicts, NULL,
1391 if( tmpdisp == NULL )
1394 SCIP_DISPSTATUS_AUTO,
1396 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNStrongbranchs, NULL,
1400 if( tmpdisp == NULL )
1403 SCIP_DISPSTATUS_AUTO,
1405 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputPseudoObjval, NULL,
1409 if( tmpdisp == NULL )
1412 SCIP_DISPSTATUS_AUTO,
1414 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputLPObjval, NULL,
1418 if( tmpdisp == NULL )
1421 SCIP_DISPSTATUS_AUTO,
1423 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputCurDualbound, NULL,
1427 if( tmpdisp == NULL )
1430 SCIP_DISPSTATUS_AUTO,
1432 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputLocalOrigEstimate, NULL,
1436 if( tmpdisp == NULL )
1439 SCIP_DISPSTATUS_AUTO,
1441 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputAvgDualbound, NULL,
1445 if( tmpdisp == NULL )
1448 SCIP_DISPSTATUS_AUTO,
1450 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputDualbound, NULL,
1454 if( tmpdisp == NULL )
1457 SCIP_DISPSTATUS_AUTO,
1459 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputPrimalbound, NULL,
1463 if( tmpdisp == NULL )
1466 SCIP_DISPSTATUS_AUTO,
1468 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputCutoffbound, NULL,
1472 if( tmpdisp == NULL )
1475 SCIP_DISPSTATUS_AUTO,
1477 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputGap, NULL,
1481 if( tmpdisp == NULL )
1484 SCIP_DISPSTATUS_OFF,
1486 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputPrimalgap, NULL,
1490 if( tmpdisp == NULL )
1493 SCIP_DISPSTATUS_AUTO,
1495 NULL, NULL, NULL, NULL, NULL, SCIPdispOutputNSols, NULL,
1499 if( tmpdisp == NULL )
1502 SCIP_DISPSTATUS_AUTO, dispCopyGcg, NULL, NULL, NULL, NULL, NULL, SCIPdispOutputMlpiterations, NULL,
1506 if( tmpdisp == NULL )
1509 SCIP_DISPSTATUS_AUTO, dispCopyGcg, NULL, NULL, NULL, NULL, NULL, SCIPdispOutputMvars, NULL,
1513 if( tmpdisp == NULL )
1516 SCIP_DISPSTATUS_AUTO, dispCopyGcg, NULL, NULL, NULL, NULL, NULL, SCIPdispOutputMconss, NULL,
1520 if( tmpdisp == NULL )
1523 SCIP_DISPSTATUS_AUTO, dispCopyGcg, NULL, NULL, NULL, NULL, NULL, SCIPdispOutputMcuts, NULL,
1527 if( tmpdisp == NULL )
1530 SCIP_DISPSTATUS_AUTO, NULL, NULL, NULL, NULL, NULL, NULL, SCIPdispOutputDegeneracy, NULL,
1534 if( tmpdisp == NULL )
1537 SCIP_DISPSTATUS_AUTO, NULL, NULL, NULL, NULL, NULL, NULL, SCIPdispOutputSlpiterations, NULL,