135 SCIPmessagePrintError(
"ERROR: 'PRESOLDELAY'-flag no longer available since SCIP 3.2, use an appropriate "
136 "'SCIP_PRESOLTIMING' for <%s> presolver instead.\n", name);
153 (*presol)->presoldata = presoldata;
156 (*presol)->initialized =
FALSE;
167 "maximal number of presolving rounds the presolver participates in (-1: no limit)",
220 assert(!(*presol)->initialized);
224 if( (*presol)->presolfree !=
NULL )
253 if(
set->misc_resetstat )
258 presol->lastnfixedvars = 0;
259 presol->lastnaggrvars = 0;
260 presol->lastnchgvartypes = 0;
262 presol->lastnaddholes = 0;
263 presol->lastndelconss = 0;
264 presol->lastnaddconss = 0;
265 presol->lastnupgdconss = 0;
266 presol->lastnchgcoefs = 0;
267 presol->lastnchgsides = 0;
306 if( !
presol->initialized )
337 presol->lastnfixedvars = 0;
338 presol->lastnaggrvars = 0;
339 presol->lastnchgvartypes = 0;
341 presol->lastnaddholes = 0;
342 presol->lastndelconss = 0;
343 presol->lastnaddconss = 0;
344 presol->lastnupgdconss = 0;
345 presol->lastnchgcoefs = 0;
346 presol->lastnchgsides = 0;
451 presol->lastnfixedvars = *nfixedvars;
452 presol->lastnaggrvars = *naggrvars;
453 presol->lastnchgvartypes = *nchgvartypes;
454 presol->lastnchgbds = *nchgbds;
455 presol->lastnaddholes = *naddholes;
456 presol->lastndelconss = *ndelconss;
457 presol->lastnaddconss = *naddconss;
458 presol->lastnupgdconss = *nupgdconss;
459 presol->lastnchgcoefs = *nchgcoefs;
460 presol->lastnchgsides = *nchgsides;
463 if( timing &
presol->timing )
474 nfixedvars, naggrvars, nchgvartypes, nchgbds, naddholes,
475 ndelconss, naddconss, nupgdconss, nchgcoefs, nchgsides,
result) );
481 presol->nfixedvars += *nfixedvars -
presol->lastnfixedvars;
482 presol->naggrvars += *naggrvars -
presol->lastnaggrvars;
483 presol->nchgvartypes += *nchgvartypes -
presol->lastnchgvartypes;
485 presol->naddholes += *naddholes -
presol->lastnaddholes;
486 presol->ndelconss += *ndelconss -
presol->lastndelconss;
487 presol->naddconss += *naddconss -
presol->lastnaddconss;
488 presol->nupgdconss += *nupgdconss -
presol->lastnupgdconss;
489 presol->nchgcoefs += *nchgcoefs -
presol->lastnchgcoefs;
490 presol->nchgsides += *nchgsides -
presol->lastnchgsides;
518 return presol->presoldata;
529 presol->presoldata = presoldata;
648 presol->priority = priority;
681 return presol->initialized;
723 return presol->nfixedvars;
743 return presol->nchgvartypes;
793 return presol->nupgdconss;
void SCIPclockStop(SCIP_CLOCK *clck, SCIP_SET *set)
void SCIPclockEnableOrDisable(SCIP_CLOCK *clck, SCIP_Bool enable)
void SCIPclockStart(SCIP_CLOCK *clck, SCIP_SET *set)
SCIP_Real SCIPclockGetTime(SCIP_CLOCK *clck)
void SCIPclockReset(SCIP_CLOCK *clck)
void SCIPclockFree(SCIP_CLOCK **clck)
SCIP_RETCODE SCIPclockCreate(SCIP_CLOCK **clck, SCIP_CLOCKTYPE clocktype)
internal methods for clocks and timing issues
common defines and data types used in all packages of SCIP
#define SCIP_CALL_FINALLY(x, y)
SCIP_Real SCIPpresolGetSetupTime(SCIP_PRESOL *presol)
int SCIPpresolGetNAggrVars(SCIP_PRESOL *presol)
SCIP_Bool SCIPpresolIsInitialized(SCIP_PRESOL *presol)
int SCIPpresolGetNUpgdConss(SCIP_PRESOL *presol)
int SCIPpresolGetNCalls(SCIP_PRESOL *presol)
int SCIPpresolGetNDelConss(SCIP_PRESOL *presol)
int SCIPpresolGetNChgCoefs(SCIP_PRESOL *presol)
void SCIPpresolSetTiming(SCIP_PRESOL *presol, SCIP_PRESOLTIMING timing)
int SCIPpresolGetNAddHoles(SCIP_PRESOL *presol)
void SCIPpresolSetData(SCIP_PRESOL *presol, SCIP_PRESOLDATA *presoldata)
SCIP_Real SCIPpresolGetTime(SCIP_PRESOL *presol)
int SCIPpresolGetNChgVarTypes(SCIP_PRESOL *presol)
SCIP_PRESOLDATA * SCIPpresolGetData(SCIP_PRESOL *presol)
int SCIPpresolGetPriority(SCIP_PRESOL *presol)
int SCIPpresolGetNChgSides(SCIP_PRESOL *presol)
int SCIPpresolGetNFixedVars(SCIP_PRESOL *presol)
const char * SCIPpresolGetDesc(SCIP_PRESOL *presol)
SCIP_RETCODE SCIPsetPresolPriority(SCIP *scip, SCIP_PRESOL *presol, int priority)
int SCIPpresolGetNChgBds(SCIP_PRESOL *presol)
int SCIPpresolGetNAddConss(SCIP_PRESOL *presol)
int SCIPpresolGetMaxrounds(SCIP_PRESOL *presol)
SCIP_PRESOLTIMING SCIPpresolGetTiming(SCIP_PRESOL *presol)
const char * SCIPpresolGetName(SCIP_PRESOL *presol)
int SCIPsnprintf(char *t, int len, const char *s,...)
assert(minobj< SCIPgetCutoffbound(scip))
static const char * paramname[]
memory allocation routines
#define BMSfreeMemory(ptr)
#define BMSduplicateMemoryArray(ptr, source, num)
#define BMSclearMemory(ptr)
struct BMS_BlkMem BMS_BLKMEM
#define BMSfreeMemoryArrayNull(ptr)
#define BMSallocMemory(ptr)
void SCIPmessagePrintError(const char *formatstr,...)
SCIP_PARAMDATA * SCIPparamGetData(SCIP_PARAM *param)
int SCIPparamGetInt(SCIP_PARAM *param)
internal methods for handling parameter settings
static SCIP_RETCODE doPresolCreate(SCIP_PRESOL **presol, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int priority, int maxrounds, SCIP_PRESOLTIMING timing, SCIP_DECL_PRESOLCOPY((*presolcopy)), SCIP_DECL_PRESOLFREE((*presolfree)), SCIP_DECL_PRESOLINIT((*presolinit)), SCIP_DECL_PRESOLEXIT((*presolexit)), SCIP_DECL_PRESOLINITPRE((*presolinitpre)), SCIP_DECL_PRESOLEXITPRE((*presolexitpre)), SCIP_DECL_PRESOLEXEC((*presolexec)), SCIP_PRESOLDATA *presoldata)
SCIP_RETCODE SCIPpresolFree(SCIP_PRESOL **presol, SCIP_SET *set)
void SCIPpresolSetFree(SCIP_PRESOL *presol,)
void SCIPpresolEnableOrDisableClocks(SCIP_PRESOL *presol, SCIP_Bool enable)
void SCIPpresolSetPriority(SCIP_PRESOL *presol, SCIP_SET *set, int priority)
SCIP_RETCODE SCIPpresolExitpre(SCIP_PRESOL *presol, SCIP_SET *set)
void SCIPpresolSetExitpre(SCIP_PRESOL *presol,)
SCIP_RETCODE SCIPpresolExit(SCIP_PRESOL *presol, SCIP_SET *set)
SCIP_RETCODE SCIPpresolCreate(SCIP_PRESOL **presol, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int priority, int maxrounds, SCIP_PRESOLTIMING timing, SCIP_DECL_PRESOLCOPY((*presolcopy)), SCIP_DECL_PRESOLFREE((*presolfree)), SCIP_DECL_PRESOLINIT((*presolinit)), SCIP_DECL_PRESOLEXIT((*presolexit)), SCIP_DECL_PRESOLINITPRE((*presolinitpre)), SCIP_DECL_PRESOLEXITPRE((*presolexitpre)), SCIP_DECL_PRESOLEXEC((*presolexec)), SCIP_PRESOLDATA *presoldata)
SCIP_RETCODE SCIPpresolInit(SCIP_PRESOL *presol, SCIP_SET *set)
void SCIPpresolSetInit(SCIP_PRESOL *presol,)
SCIP_RETCODE SCIPpresolExec(SCIP_PRESOL *presol, SCIP_SET *set, SCIP_PRESOLTIMING timing, int nrounds, int *nfixedvars, int *naggrvars, int *nchgvartypes, int *nchgbds, int *naddholes, int *ndelconss, int *naddconss, int *nupgdconss, int *nchgcoefs, int *nchgsides, SCIP_RESULT *result)
SCIP_RETCODE SCIPpresolCopyInclude(SCIP_PRESOL *presol, SCIP_SET *set)
void SCIPpresolSetExit(SCIP_PRESOL *presol,)
void SCIPpresolSetCopy(SCIP_PRESOL *presol,)
SCIP_RETCODE SCIPpresolInitpre(SCIP_PRESOL *presol, SCIP_SET *set)
void SCIPpresolSetInitpre(SCIP_PRESOL *presol,)
internal methods for presolvers
public data structures and miscellaneous methods
SCIP_RETCODE SCIPsetAddIntParam(SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int *valueptr, SCIP_Bool isadvanced, int defaultvalue, int minvalue, int maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
internal methods for global SCIP settings
datastructures for presolvers
#define SCIP_DECL_SORTPTRCOMP(x)
struct SCIP_ParamData SCIP_PARAMDATA
#define SCIP_DECL_PARAMCHGD(x)
#define SCIP_DECL_PRESOLCOPY(x)
struct SCIP_PresolData SCIP_PRESOLDATA
#define SCIP_DECL_PRESOLFREE(x)
#define SCIP_DECL_PRESOLINITPRE(x)
#define SCIP_DECL_PRESOLEXITPRE(x)
#define SCIP_DECL_PRESOLINIT(x)
#define SCIP_DECL_PRESOLEXIT(x)
#define SCIP_DECL_PRESOLEXEC(x)
enum SCIP_Result SCIP_RESULT
enum SCIP_Retcode SCIP_RETCODE
#define SCIP_PRESOLTIMING_MAX
#define SCIP_PRESOLTIMING_FINAL
#define SCIP_PRESOLTIMING_MEDIUM
unsigned int SCIP_PRESOLTIMING
#define SCIP_PRESOLTIMING_FAST
#define SCIP_PRESOLTIMING_EXHAUSTIVE