93 if( presol->presolcopy !=
NULL )
135 SCIPmessagePrintError(
"ERROR: 'PRESOLDELAY'-flag no longer available since SCIP 3.2, use an appropriate "
136 "'SCIP_PRESOLTIMING' for <%s> presolver instead.\n", name);
146 (*presol)->presolcopy = presolcopy;
147 (*presol)->presolfree = presolfree;
148 (*presol)->presolinit = presolinit;
149 (*presol)->presolexit = presolexit;
150 (*presol)->presolinitpre = presolinitpre;
151 (*presol)->presolexitpre = presolexitpre;
152 (*presol)->presolexec = presolexec;
153 (*presol)->presoldata = presoldata;
156 (*presol)->initialized =
FALSE;
162 &(*presol)->priority,
TRUE, priority, INT_MIN/4, INT_MAX/4,
167 "maximal number of presolving rounds the presolver participates in (-1: no limit)",
168 &(*presol)->maxrounds,
FALSE, maxrounds, -1, INT_MAX,
NULL,
NULL) );
205 presolcopy, presolfree, presolinit, presolexit, presolinitpre, presolexitpre, presolexec, presoldata),
218 if( *presol ==
NULL )
220 assert(!(*presol)->initialized);
224 if( (*presol)->presolfree !=
NULL )
253 if(
set->misc_resetstat )
282 if( presol->presolinit !=
NULL )
313 if( presol->presolexit !=
NULL )
349 if( presol->presolinitpre !=
NULL )
373 if( presol->presolexitpre !=
NULL )
463 if( timing & presol->
timing )
471 SCIP_CALL( presol->presolexec(
set->scip, presol, nrounds, timing,
472 nnewfixedvars, nnewaggrvars, nnewchgvartypes, nnewchgbds, nnewaddholes,
473 nnewdelconss, nnewaddconss, nnewupgdconss, nnewchgcoefs, nnewchgsides,
474 nfixedvars, naggrvars, nchgvartypes, nchgbds, naddholes,
475 ndelconss, naddconss, nupgdconss, nchgcoefs, nchgsides,
result) );
540 presol->presolcopy = presolcopy;
551 presol->presolfree = presolfree;
562 presol->presolinit = presolinit;
573 presol->presolexit = presolexit;
584 presol->presolinitpre = presolinitpre;
595 presol->presolexitpre = presolexitpre;
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
SCIP_PRESOLDATA * presoldata
datastructures for presolvers
struct SCIP_Messagehdlr SCIP_MESSAGEHDLR
#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)
struct SCIP_Presol SCIP_PRESOL
#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