24 #ifndef __SCIP_STAT_H__ 25 #define __SCIP_STAT_H__ 198 #define SCIPstatUpdate(stat, set, field, val) do { \ 199 (stat)->field = (val); \ 202 #define SCIPstatIncrement(stat, set, field) do { \ 206 #define SCIPstatAdd(stat, set, field, val) do { \ 207 (stat)->field += (val); \ 213 #define SCIPupdateDeterministicTimeCount(stat, set, val) do { \ 214 (stat)->detertimecnt += (val); \ 215 if( (stat)->detertimecnt > 10000.0 ) { \ 216 SCIP_CALL_ABORT( SCIPincrementConcurrentTime( (set)->scip, (stat)->detertimecnt ) ); \ 217 (stat)->detertimecnt = 0.0; \ 221 #define SCIPstatUpdate(stat, set, field, val) do { \ 222 switch( offsetof(SCIP_STAT, field) ) \ 226 case offsetof(SCIP_STAT, nprimalresolvelpiterations): \ 227 SCIPupdateDeterministicTimeCount(stat, set, 0.00328285264101 * ((val) - (stat)->field) * (stat)->nnz ); \ 229 case offsetof(SCIP_STAT, ndualresolvelpiterations): \ 230 SCIPupdateDeterministicTimeCount(stat, set, 0.00531625104146 * ((val) - (stat)->field) * (stat)->nnz ); \ 232 case offsetof(SCIP_STAT, nprobboundchgs): \ 233 SCIPupdateDeterministicTimeCount(stat, set, 0.000738719124051 * ((val) - (stat)->field) * (stat)->nnz ); \ 235 case offsetof(SCIP_STAT, nisstoppedcalls): \ 236 SCIPupdateDeterministicTimeCount(stat, set, 0.0011123144764 * ((val) - (stat)->field) * (stat)->nnz ); \ 238 (stat)->field = (val); \ 242 #define SCIPstatIncrement(stat, set, field) do { \ 243 switch( offsetof(SCIP_STAT, field) ) \ 247 case offsetof(SCIP_STAT, nprimalresolvelpiterations): \ 248 SCIPupdateDeterministicTimeCount(stat, set, 0.00328285264101 * (stat)->nnz ); \ 250 case offsetof(SCIP_STAT, ndualresolvelpiterations): \ 251 SCIPupdateDeterministicTimeCount(stat, set, 0.00531625104146 * (stat)->nnz ); \ 253 case offsetof(SCIP_STAT, nprobboundchgs): \ 254 SCIPupdateDeterministicTimeCount(stat, set, 0.000738719124051 * (stat)->nnz ); \ 256 case offsetof(SCIP_STAT, nisstoppedcalls): \ 257 SCIPupdateDeterministicTimeCount(stat, set, 0.0011123144764 * (stat)->nnz ); \ 262 #define SCIPstatAdd(stat, set, field, val) do { \ 263 switch( offsetof(SCIP_STAT, field) ) \ 267 case offsetof(SCIP_STAT, nprimalresolvelpiterations): \ 268 SCIPupdateDeterministicTimeCount(stat, set, 0.00328285264101 * (val) * (stat)->nnz); \ 270 case offsetof(SCIP_STAT, ndualresolvelpiterations): \ 271 SCIPupdateDeterministicTimeCount(stat, set, 0.00531625104146 * (val) * (stat)->nnz); \ 273 case offsetof(SCIP_STAT, nprobboundchgs): \ 274 SCIPupdateDeterministicTimeCount(stat, set, 0.000738719124051 * (val) * (stat)->nnz ); \ 276 case offsetof(SCIP_STAT, nisstoppedcalls): \ 277 SCIPupdateDeterministicTimeCount(stat, set, 0.0011123144764 * (val) * (stat)->nnz ); \ 279 (stat)->field += (val); \ 285 #ifdef SCIP_HAVE_VARIADIC_MACROS 289 #define SCIPstatDebugMsg(set, ...) SCIPstatPrintDebugMessage(stat, __FILE__, __LINE__, __VA_ARGS__) 290 #define SCIPstatDebugMsgPrint(set, ...) SCIPstatPrintDebugMessagePrint(stat, __VA_ARGS__) 292 #define SCIPstatDebugMsg(set, ...) while ( FALSE ) SCIPstatPrintDebugMessage(stat, __FILE__, __LINE__, __VA_ARGS__) 293 #define SCIPstatDebugMsgPrint(set, ...) while ( FALSE ) SCIPstatPrintDebugMessagePrint(stat, __VA_ARGS__) 301 #define SCIPstatDebugMsg printf("debug: "), SCIPstatDebugMessagePrint 302 #define SCIPstatDebugMsgPrint SCIPstatDebugMessagePrint 304 #define SCIPstatDebugMsg while ( FALSE ) SCIPstatDebugMessagePrint 305 #define SCIPstatDebugMsgPrint while ( FALSE ) SCIPstatDebugMessagePrint 315 const char* sourcefile,
317 const char* formatstr,
325 const char* formatstr,
SCIP_Longint SCIPstatGetMemExternEstim(SCIP_STAT *stat)
void SCIPstatEnableOrDisableStatClocks(SCIP_STAT *stat, SCIP_Bool enable)
void SCIPstatResetImplications(SCIP_STAT *stat)
void SCIPstatResetCurrentRun(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Bool solved)
void SCIPstatDebugMessagePrint(SCIP_STAT *stat, const char *formatstr,...)
enum SCIP_Retcode SCIP_RETCODE
type definitions for global SCIP settings
void SCIPstatMark(SCIP_STAT *stat)
type definitions for return codes for SCIP methods
type definitions for problem statistics
void SCIPstatEnforceLPUpdates(SCIP_STAT *stat)
void SCIPstatReset(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
void SCIPstatResetPresolving(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
SCIP_RETCODE SCIPstatUpdateVarRootLPBestEstimate(SCIP_STAT *stat, SCIP_SET *set, SCIP_VAR *var, SCIP_Real oldrootpscostscore)
void SCIPstatResetPrimalDualIntegral(SCIP_STAT *stat, SCIP_SET *set, SCIP_Bool partialreset)
datastructures for problem statistics
helper functions for concurrent scip solvers
type definitions for storing and manipulating the main problem
SCIP_RETCODE SCIPstatFree(SCIP_STAT **stat, BMS_BLKMEM *blkmem)
void SCIPstatResetDisplay(SCIP_STAT *stat)
type definitions for block memory pools and memory buffers
void SCIPstatEnableVarHistory(SCIP_STAT *stat)
public methods for message output
void SCIPstatComputeRootLPBestEstimate(SCIP_STAT *stat, SCIP_SET *set, SCIP_Real rootlpobjval, SCIP_VAR **vars, int nvars)
void SCIPstatPrintDebugMessage(SCIP_STAT *stat, const char *sourcefile, int sourceline, const char *formatstr,...)
void SCIPstatUpdatePrimalDualIntegral(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Real primalbound, SCIP_Real dualbound)
SCIP_RETCODE SCIPstatCreate(SCIP_STAT **stat, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_MESSAGEHDLR *messagehdlr)
common defines and data types used in all packages of SCIP
struct BMS_BlkMem BMS_BLKMEM
void SCIPstatDisableVarHistory(SCIP_STAT *stat)
void SCIPstatUpdateMemsaveMode(SCIP_STAT *stat, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_MEM *mem)
memory allocation routines