33#ifndef __SCIP_STAT_H__
34#define __SCIP_STAT_H__
109 SCIP_Bool partialreset
121 SCIP_Real primalbound,
200 SCIP_Real rootlpobjval,
210 SCIP_Real oldrootpscostscore
216#define SCIPstatUpdate(stat, set, field, val) do { \
217 (stat)->field = (val); \
220#define SCIPstatIncrement(stat, set, field) do { \
224#define SCIPstatAdd(stat, set, field, val) do { \
225 (stat)->field += (val); \
231#define SCIPupdateDeterministicTimeCount(stat, set, val) do { \
232 (stat)->detertimecnt += (val); \
233 if( (stat)->detertimecnt > 10000.0 ) { \
234 SCIP_CALL_ABORT( SCIPincrementConcurrentTime( (set)->scip, (stat)->detertimecnt ) ); \
235 (stat)->detertimecnt = 0.0; \
239#define SCIPstatUpdate(stat, set, field, val) do { \
240 switch( offsetof(SCIP_STAT, field) ) \
244 case offsetof(SCIP_STAT, nprimalresolvelpiterations): \
245 SCIPupdateDeterministicTimeCount(stat, set, 0.00328285264101 * ((val) - (stat)->field) * (stat)->nnz ); \
247 case offsetof(SCIP_STAT, ndualresolvelpiterations): \
248 SCIPupdateDeterministicTimeCount(stat, set, 0.00531625104146 * ((val) - (stat)->field) * (stat)->nnz ); \
250 case offsetof(SCIP_STAT, nprobboundchgs): \
251 SCIPupdateDeterministicTimeCount(stat, set, 0.000738719124051 * ((val) - (stat)->field) * (stat)->nnz ); \
253 case offsetof(SCIP_STAT, nisstoppedcalls): \
254 SCIPupdateDeterministicTimeCount(stat, set, 0.0011123144764 * ((val) - (stat)->field) * (stat)->nnz ); \
256 (stat)->field = (val); \
260#define SCIPstatIncrement(stat, set, field) do { \
261 switch( offsetof(SCIP_STAT, field) ) \
265 case offsetof(SCIP_STAT, nprimalresolvelpiterations): \
266 SCIPupdateDeterministicTimeCount(stat, set, 0.00328285264101 * (stat)->nnz ); \
268 case offsetof(SCIP_STAT, ndualresolvelpiterations): \
269 SCIPupdateDeterministicTimeCount(stat, set, 0.00531625104146 * (stat)->nnz ); \
271 case offsetof(SCIP_STAT, nprobboundchgs): \
272 SCIPupdateDeterministicTimeCount(stat, set, 0.000738719124051 * (stat)->nnz ); \
274 case offsetof(SCIP_STAT, nisstoppedcalls): \
275 SCIPupdateDeterministicTimeCount(stat, set, 0.0011123144764 * (stat)->nnz ); \
280#define SCIPstatAdd(stat, set, field, val) do { \
281 switch( offsetof(SCIP_STAT, field) ) \
285 case offsetof(SCIP_STAT, nprimalresolvelpiterations): \
286 SCIPupdateDeterministicTimeCount(stat, set, 0.00328285264101 * (val) * (stat)->nnz); \
288 case offsetof(SCIP_STAT, ndualresolvelpiterations): \
289 SCIPupdateDeterministicTimeCount(stat, set, 0.00531625104146 * (val) * (stat)->nnz); \
291 case offsetof(SCIP_STAT, nprobboundchgs): \
292 SCIPupdateDeterministicTimeCount(stat, set, 0.000738719124051 * (val) * (stat)->nnz ); \
294 case offsetof(SCIP_STAT, nisstoppedcalls): \
295 SCIPupdateDeterministicTimeCount(stat, set, 0.0011123144764 * (val) * (stat)->nnz ); \
297 (stat)->field += (val); \
303#ifdef SCIP_HAVE_VARIADIC_MACROS
307#define SCIPstatDebugMsg(set, ...) SCIPstatPrintDebugMessage(stat, __FILE__, __LINE__, __VA_ARGS__)
308#define SCIPstatDebugMsgPrint(set, ...) SCIPstatPrintDebugMessagePrint(stat, __VA_ARGS__)
310#define SCIPstatDebugMsg(set, ...) while ( FALSE ) SCIPstatPrintDebugMessage(stat, __FILE__, __LINE__, __VA_ARGS__)
311#define SCIPstatDebugMsgPrint(set, ...) while ( FALSE ) SCIPstatPrintDebugMessagePrint(stat, __VA_ARGS__)
319#define SCIPstatDebugMsg printf("debug: "), SCIPstatDebugMessagePrint
320#define SCIPstatDebugMsgPrint SCIPstatDebugMessagePrint
322#define SCIPstatDebugMsg while ( FALSE ) SCIPstatDebugMessagePrint
323#define SCIPstatDebugMsgPrint while ( FALSE ) SCIPstatDebugMessagePrint
331__attribute__((format(printf, 4, 5)))
336 const char* sourcefile,
338 const char* formatstr,
344__attribute__((format(printf, 2, 3)))
349 const char* formatstr,
helper functions for concurrent scip solvers
common defines and data types used in all packages of SCIP
memory allocation routines
struct BMS_BlkMem BMS_BLKMEM
public methods for message output
void SCIPstatComputeRootLPBestEstimate(SCIP_STAT *stat, SCIP_SET *set, SCIP_Real rootlpobjval, SCIP_VAR **vars, int nvars)
void SCIPstatMark(SCIP_STAT *stat)
SCIP_Real SCIPstatGetPrimalReferenceIntegral(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Bool update)
SCIP_RETCODE SCIPstatUpdateVarRootLPBestEstimate(SCIP_STAT *stat, SCIP_SET *set, SCIP_VAR *var, SCIP_Real oldrootpscostscore)
void SCIPstatResetImplications(SCIP_STAT *stat)
void SCIPstatResetDisplay(SCIP_STAT *stat)
void SCIPstatPrintDebugMessage(SCIP_STAT *stat, const char *sourcefile, int sourceline, const char *formatstr,...)
SCIP_Real SCIPstatGetDualReferenceIntegral(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Bool update)
SCIP_RETCODE SCIPstatFree(SCIP_STAT **stat, BMS_BLKMEM *blkmem)
void SCIPstatUpdatePrimalDualIntegrals(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Real primalbound, SCIP_Real dualbound)
void SCIPstatResetPrimalDualIntegrals(SCIP_STAT *stat, SCIP_SET *set, SCIP_Bool partialreset)
void SCIPstatResetPresolving(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
void SCIPstatReset(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
void SCIPstatEnableOrDisableStatClocks(SCIP_STAT *stat, SCIP_Bool enable)
void SCIPstatEnableVarHistory(SCIP_STAT *stat)
void SCIPstatEnforceLPUpdates(SCIP_STAT *stat)
void SCIPstatUpdateMemsaveMode(SCIP_STAT *stat, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_MEM *mem)
void SCIPstatDisableVarHistory(SCIP_STAT *stat)
void SCIPstatResetCurrentRun(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Bool solved)
SCIP_RETCODE SCIPstatCreate(SCIP_STAT **stat, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_MESSAGEHDLR *messagehdlr)
SCIP_Longint SCIPstatGetMemExternEstim(SCIP_STAT *stat)
SCIP_Real SCIPstatGetPrimalDualIntegral(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Bool update)
void SCIPstatDebugMessagePrint(SCIP_STAT *stat, const char *formatstr,...)
datastructures for problem statistics
type definitions for block memory pools and memory buffers
type definitions for storing and manipulating the main problem
type definitions for return codes for SCIP methods
enum SCIP_Retcode SCIP_RETCODE
type definitions for global SCIP settings
type definitions for problem statistics