Scippy

SCIP

Solving Constraint Integer Programs

disp.c File Reference

Detailed Description

methods and datastructures for displaying runtime statistics

Author
Tobias Achterberg
Timo Berthold

Definition in file disp.c.

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

Go to the source code of this file.

Macros

#define MAXDECPOWER   6
 
#define MAXTIMEPOWER   4
 

Functions

 SCIP_DECL_PARAMCHGD (SCIPparamChgdDispActive)
 
SCIP_RETCODE SCIPdispCopyInclude (SCIP_DISP *disp, SCIP_SET *set)
 
static SCIP_RETCODE doDispCreate (SCIP_DISP **disp, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, 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)
 
SCIP_RETCODE SCIPdispCreate (SCIP_DISP **disp, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, 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)
 
SCIP_RETCODE SCIPdispFree (SCIP_DISP **disp, SCIP_SET *set)
 
SCIP_RETCODE SCIPdispInit (SCIP_DISP *disp, SCIP_SET *set)
 
SCIP_RETCODE SCIPdispExit (SCIP_DISP *disp, SCIP_SET *set)
 
SCIP_RETCODE SCIPdispInitsol (SCIP_DISP *disp, SCIP_SET *set)
 
SCIP_RETCODE SCIPdispExitsol (SCIP_DISP *disp, SCIP_SET *set)
 
SCIP_RETCODE SCIPdispOutput (SCIP_DISP *disp, SCIP_SET *set, FILE *file)
 
SCIP_DISPDATASCIPdispGetData (SCIP_DISP *disp)
 
void SCIPdispSetData (SCIP_DISP *disp, SCIP_DISPDATA *dispdata)
 
const char * SCIPdispGetName (SCIP_DISP *disp)
 
const char * SCIPdispGetDesc (SCIP_DISP *disp)
 
const char * SCIPdispGetHeader (SCIP_DISP *disp)
 
int SCIPdispGetWidth (SCIP_DISP *disp)
 
int SCIPdispGetPriority (SCIP_DISP *disp)
 
int SCIPdispGetPosition (SCIP_DISP *disp)
 
SCIP_DISPSTATUS SCIPdispGetStatus (SCIP_DISP *disp)
 
SCIP_Bool SCIPdispIsInitialized (SCIP_DISP *disp)
 
SCIP_RETCODE SCIPdispPrintLine (SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, FILE *file, SCIP_Bool forcedisplay, SCIP_Bool endline)
 
static SCIP_DECL_SORTPTRCOMP (dispComp)
 
SCIP_RETCODE SCIPdispAutoActivate (SCIP_SET *set)
 
void SCIPdispChgMode (SCIP_DISP *disp, SCIP_DISPMODE mode)
 
void SCIPdispLongint (SCIP_MESSAGEHDLR *messagehdlr, FILE *file, SCIP_Longint val, int width)
 
void SCIPdispInt (SCIP_MESSAGEHDLR *messagehdlr, FILE *file, int val, int width)
 
void SCIPdispTime (SCIP_MESSAGEHDLR *messagehdlr, FILE *file, SCIP_Real val, int width)
 

Variables

static const char decpowerchar [] = {' ', 'k', 'M', 'G', 'T', 'P', 'E'}
 
static const char timepowerchar [] = {'s', 'm', 'h', 'd', 'y'}
 
const SCIP_Real timepowerval [] = {1.0, 60.0, 60.0, 24.0, 365.0}
 

Macro Definition Documentation

◆ MAXDECPOWER

#define MAXDECPOWER   6

Definition at line 568 of file disp.c.

Referenced by SCIPdispLongint().

◆ MAXTIMEPOWER

#define MAXTIMEPOWER   4

Definition at line 631 of file disp.c.

Referenced by SCIPdispTime().

Function Documentation

◆ SCIP_DECL_PARAMCHGD()

SCIP_DECL_PARAMCHGD ( SCIPparamChgdDispActive  )

parameter change information method to autoselect display columns again

Definition at line 46 of file disp.c.

References SCIP_CALL, SCIP_OKAY, and SCIPautoselectDisps().

◆ SCIPdispCopyInclude()

SCIP_RETCODE SCIPdispCopyInclude ( SCIP_DISP disp,
SCIP_SET set 
)

copies the given display to a new scip

Parameters
dispdisplay column
setSCIP_SET of SCIP to copy to

Definition at line 55 of file disp.c.

References NULL, SCIP_CALL, SCIP_OKAY, SCIPdispGetName(), and SCIPsetDebugMsg.

◆ doDispCreate()

static SCIP_RETCODE doDispCreate ( SCIP_DISP **  disp,
SCIP_SET set,
SCIP_MESSAGEHDLR messagehdlr,
BMS_BLKMEM blkmem,
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 
)
static

internal method for creating a display column

Parameters
disppointer to store display column
setglobal SCIP settings
messagehdlrmessage handler
blkmemblock memory for parameter settings
namename of display column
descdescription of display column
headerhead line of display column
dispstatusdisplay activation status of display column
dispdatadisplay column data
widthwidth of display column (no. of chars used)
prioritypriority of display column
positionrelative position of display column
striplineshould the column be separated with a line from its right neighbor?

Definition at line 74 of file disp.c.

References BMSallocMemory, BMSclearMemory, BMSduplicateMemoryArray, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_DISPMODE_DEFAULT, SCIP_DISPSTATUS_ON, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPsetAddIntParam(), and SCIPsnprintf().

Referenced by SCIPdispCreate().

◆ SCIPdispCreate()

SCIP_RETCODE SCIPdispCreate ( SCIP_DISP **  disp,
SCIP_SET set,
SCIP_MESSAGEHDLR messagehdlr,
BMS_BLKMEM blkmem,
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 
)

creates a display column

Parameters
disppointer to store display column
setglobal SCIP settings
messagehdlrmessage handler
blkmemblock memory for parameter settings
namename of display column
descdescription of display column
headerhead line of display column
dispstatusdisplay activation status of display column
dispdatadisplay column data
widthwidth of display column (no. of chars used)
prioritypriority of display column
positionrelative position of display column
striplineshould the column be separated with a line from its right neighbor?

Definition at line 140 of file disp.c.

References doDispCreate(), NULL, SCIP_CALL_FINALLY, SCIP_OKAY, and SCIPdispFree().

Referenced by SCIPincludeDisp().

◆ SCIPdispFree()

SCIP_RETCODE SCIPdispFree ( SCIP_DISP **  disp,
SCIP_SET set 
)

frees memory of display column

Parameters
disppointer to display column data structure
setglobal SCIP settings

Definition at line 178 of file disp.c.

References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, and SCIP_OKAY.

Referenced by SCIPdispCreate(), and SCIPsetFree().

◆ SCIPdispInit()

SCIP_RETCODE SCIPdispInit ( SCIP_DISP disp,
SCIP_SET set 
)

initializes display column

Parameters
dispdisplay column
setglobal SCIP settings

Definition at line 204 of file disp.c.

References SCIP_Disp::initialized, SCIP_Disp::name, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPerrorMessage, and TRUE.

Referenced by SCIPsetInitPlugins().

◆ SCIPdispExit()

SCIP_RETCODE SCIPdispExit ( SCIP_DISP disp,
SCIP_SET set 
)

deinitializes display column

Parameters
dispdisplay column
setglobal SCIP settings

Definition at line 228 of file disp.c.

References FALSE, SCIP_Disp::initialized, SCIP_Disp::name, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, and SCIPerrorMessage.

Referenced by SCIPsetExitPlugins().

◆ SCIPdispInitsol()

SCIP_RETCODE SCIPdispInitsol ( SCIP_DISP disp,
SCIP_SET set 
)

informs display column that the branch and bound process is being started

Parameters
dispdisplay column
setglobal SCIP settings

Definition at line 252 of file disp.c.

References NULL, SCIP_CALL, and SCIP_OKAY.

Referenced by SCIPsetInitsolPlugins().

◆ SCIPdispExitsol()

SCIP_RETCODE SCIPdispExitsol ( SCIP_DISP disp,
SCIP_SET set 
)

informs display column that the branch and bound process data is being freed

Parameters
dispdisplay column
setglobal SCIP settings

Definition at line 270 of file disp.c.

References NULL, SCIP_CALL, and SCIP_OKAY.

◆ SCIPdispOutput()

SCIP_RETCODE SCIPdispOutput ( SCIP_DISP disp,
SCIP_SET set,
FILE *  file 
)

output display column to screen

Parameters
dispdisplay column
setglobal SCIP settings
fileoutput file (or NULL for standard output)

Definition at line 288 of file disp.c.

References NULL, SCIP_CALL, and SCIP_OKAY.

Referenced by SCIPdispPrintLine().

◆ SCIPdispPrintLine()

SCIP_RETCODE SCIPdispPrintLine ( SCIP_SET set,
SCIP_MESSAGEHDLR messagehdlr,
SCIP_STAT stat,
FILE *  file,
SCIP_Bool  forcedisplay,
SCIP_Bool  endline 
)

prints one line of output with the active display columns

Parameters
setglobal SCIP settings
messagehdlrmessage handler
statproblem statistics data
fileoutput file (or NULL for standard output)
forcedisplayshould the line be printed without regarding frequency?
endlineshould the line be terminated with a newline symbol?

Definition at line 405 of file disp.c.

References FALSE, SCIP_Stat::lastdispnode, SCIP_Stat::ndisplines, SCIP_Stat::nnodes, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VERBLEVEL_NORMAL, SCIPdispOutput(), and SCIPmessageFPrintInfo().

Referenced by priceAndCutLoop(), primalAddSol(), SCIPpriceLoop(), SCIPprintDisplayLine(), and SCIPsolveCIP().

◆ SCIP_DECL_SORTPTRCOMP()

static SCIP_DECL_SORTPTRCOMP ( dispComp  )
static

comparison method for display columns

Definition at line 485 of file disp.c.

◆ SCIPdispAutoActivate()

SCIP_RETCODE SCIPdispAutoActivate ( SCIP_SET set)

activates all display lines fitting in the display w.r. to priority

Parameters
setglobal SCIP settings

Definition at line 491 of file disp.c.

References active, BMSduplicateMemoryArray, BMSfreeMemoryArray, FALSE, NULL, SCIP_ALLOC, SCIP_DISPMODE_CONCURRENT, SCIP_DISPMODE_DEFAULT, SCIP_DISPSTATUS_AUTO, SCIP_DISPSTATUS_ON, SCIP_OKAY, SCIPgetSyncstore(), SCIPsortPtr(), SCIPsyncstoreIsInitialized(), and TRUE.

Referenced by SCIPautoselectDisps(), and SCIPsetInitPlugins().

◆ SCIPdispChgMode()

void SCIPdispChgMode ( SCIP_DISP disp,
SCIP_DISPMODE  mode 
)

changes the display column mode

Parameters
dispdisplay column
modethe display column mode

Definition at line 558 of file disp.c.

References SCIP_Disp::mode.

Referenced by SCIPchgDispMode().

Variable Documentation

◆ decpowerchar

const char decpowerchar[] = {' ', 'k', 'M', 'G', 'T', 'P', 'E'}
static

Definition at line 567 of file disp.c.

◆ timepowerchar

const char timepowerchar[] = {'s', 'm', 'h', 'd', 'y'}
static

Definition at line 629 of file disp.c.

◆ timepowerval

const SCIP_Real timepowerval[] = {1.0, 60.0, 60.0, 24.0, 365.0}

Definition at line 630 of file disp.c.