65 assert(paramdata !=
NULL);
79 assert(presol !=
NULL);
81 assert(set->scip !=
NULL);
83 if( presol->presolcopy !=
NULL )
86 SCIP_CALL( presol->presolcopy(set->scip, presol) );
115 assert(presol !=
NULL);
116 assert(name !=
NULL);
117 assert(desc !=
NULL);
124 SCIPmessagePrintError(
"ERROR: 'PRESOLDELAY'-flag no longer available since SCIP 3.2, use an appropriate " 125 "'SCIP_PRESOLTIMING' for <%s> presolver instead.\n", name);
133 (*presol)->presolcopy = presolcopy;
134 (*presol)->presolfree = presolfree;
135 (*presol)->presolinit = presolinit;
136 (*presol)->presolexit = presolexit;
137 (*presol)->presolinitpre = presolinitpre;
138 (*presol)->presolexitpre = presolexitpre;
139 (*presol)->presolexec = presolexec;
140 (*presol)->presoldata = presoldata;
143 (*presol)->initialized =
FALSE;
149 &(*presol)->priority,
TRUE, priority, INT_MIN/4, INT_MAX/4,
154 "maximal number of presolving rounds the presolver participates in (-1: no limit)",
155 &(*presol)->maxrounds,
FALSE, maxrounds, -1, INT_MAX,
NULL,
NULL) );
172 assert(presol !=
NULL);
173 assert(*presol !=
NULL);
174 assert(!(*presol)->initialized);
178 if( (*presol)->presolfree !=
NULL )
180 SCIP_CALL( (*presol)->presolfree(set->scip, *presol) );
198 assert(presol !=
NULL);
207 if( set->misc_resetstat )
236 if( presol->presolinit !=
NULL )
241 SCIP_CALL( presol->presolinit(set->scip, presol) );
257 assert(presol !=
NULL);
267 if( presol->presolexit !=
NULL )
272 SCIP_CALL( presol->presolexit(set->scip, presol) );
288 assert(presol !=
NULL);
303 if( presol->presolinitpre !=
NULL )
308 SCIP_CALL( presol->presolinitpre(set->scip, presol) );
323 assert(presol !=
NULL);
327 if( presol->presolexitpre !=
NULL )
332 SCIP_CALL( presol->presolexitpre(set->scip, presol) );
371 assert(presol !=
NULL);
372 assert(presol->presolexec !=
NULL);
374 assert(nfixedvars !=
NULL);
375 assert(naggrvars !=
NULL);
376 assert(nchgvartypes !=
NULL);
377 assert(nchgbds !=
NULL);
378 assert(naddholes !=
NULL);
379 assert(ndelconss !=
NULL);
380 assert(naddconss !=
NULL);
381 assert(nupgdconss !=
NULL);
382 assert(nchgcoefs !=
NULL);
383 assert(nchgsides !=
NULL);
384 assert(result !=
NULL);
417 if( timing & presol->
timing )
425 SCIP_CALL( presol->presolexec(set->scip, presol, nrounds, timing,
426 nnewfixedvars, nnewaggrvars, nnewchgvartypes, nnewchgbds, nnewaddholes,
427 nnewdelconss, nnewaddconss, nnewupgdconss, nnewchgcoefs, nnewchgsides,
428 nfixedvars, naggrvars, nchgvartypes, nchgbds, naddholes,
429 ndelconss, naddconss, nupgdconss, nchgcoefs, nchgsides, result) );
470 assert(presol !=
NULL);
481 assert(presol !=
NULL);
492 assert(presol !=
NULL);
494 presol->presolcopy = presolcopy;
503 assert(presol !=
NULL);
505 presol->presolfree = presolfree;
514 assert(presol !=
NULL);
516 presol->presolinit = presolinit;
525 assert(presol !=
NULL);
527 presol->presolexit = presolexit;
536 assert(presol !=
NULL);
538 presol->presolinitpre = presolinitpre;
547 assert(presol !=
NULL);
549 presol->presolexitpre = presolexitpre;
557 assert(presol !=
NULL);
567 assert(presol !=
NULL);
577 assert(presol !=
NULL);
587 assert(presol !=
NULL);
599 assert(presol !=
NULL);
603 set->presolssorted =
FALSE;
611 assert(presol !=
NULL);
622 assert(presol !=
NULL);
633 assert(presol !=
NULL);
644 assert(presol !=
NULL);
655 assert(presol !=
NULL);
665 assert(presol !=
NULL);
675 assert(presol !=
NULL);
685 assert(presol !=
NULL);
695 assert(presol !=
NULL);
705 assert(presol !=
NULL);
715 assert(presol !=
NULL);
725 assert(presol !=
NULL);
735 assert(presol !=
NULL);
745 assert(presol !=
NULL);
755 assert(presol !=
NULL);
765 assert(presol !=
NULL);
775 assert(presol !=
NULL);
enum SCIP_Result SCIP_RESULT
int SCIPpresolGetNDelConss(SCIP_PRESOL *presol)
struct SCIP_PresolData SCIP_PRESOLDATA
int SCIPpresolGetNAggrVars(SCIP_PRESOL *presol)
SCIP_RETCODE SCIPpresolInit(SCIP_PRESOL *presol, SCIP_SET *set)
static SCIP_DECL_PARAMCHGD(paramChgdPresolPriority)
SCIP_PARAMDATA * SCIPparamGetData(SCIP_PARAM *param)
datastructures for presolvers
SCIP_RETCODE SCIPpresolFree(SCIP_PRESOL **presol, SCIP_SET *set)
internal methods for clocks and timing issues
struct SCIP_ParamData SCIP_PARAMDATA
void SCIPpresolSetPriority(SCIP_PRESOL *presol, SCIP_SET *set, int priority)
#define SCIP_DECL_PRESOLINITPRE(x)
int SCIPpresolGetNChgCoefs(SCIP_PRESOL *presol)
SCIP_RETCODE SCIPpresolExit(SCIP_PRESOL *presol, SCIP_SET *set)
void SCIPclockStop(SCIP_CLOCK *clck, SCIP_SET *set)
#define SCIP_DECL_PRESOLCOPY(x)
void SCIPclockStart(SCIP_CLOCK *clck, SCIP_SET *set)
SCIP_DECL_SORTPTRCOMP(SCIPpresolComp)
int SCIPsnprintf(char *t, int len, const char *s,...)
enum SCIP_Retcode SCIP_RETCODE
#define SCIP_PRESOLTIMING_EXHAUSTIVE
SCIP_PRESOLDATA * SCIPpresolGetData(SCIP_PRESOL *presol)
int SCIPpresolGetNFixedVars(SCIP_PRESOL *presol)
internal methods for handling parameter settings
const char * SCIPpresolGetDesc(SCIP_PRESOL *presol)
void SCIPclockEnableOrDisable(SCIP_CLOCK *clck, SCIP_Bool enable)
#define BMSfreeMemory(ptr)
SCIP_Bool SCIPpresolIsInitialized(SCIP_PRESOL *presol)
SCIP_Real SCIPpresolGetSetupTime(SCIP_PRESOL *presol)
#define SCIP_PRESOLTIMING_FAST
int SCIPpresolGetNChgVarTypes(SCIP_PRESOL *presol)
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)
#define SCIP_DECL_PRESOLEXEC(x)
#define SCIP_PRESOLTIMING_MEDIUM
#define BMSfreeMemoryArray(ptr)
void SCIPmessagePrintError(const char *formatstr,...)
#define SCIP_DECL_PRESOLFREE(x)
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)
void SCIPclockReset(SCIP_CLOCK *clck)
void SCIPpresolSetData(SCIP_PRESOL *presol, SCIP_PRESOLDATA *presoldata)
#define SCIP_DECL_PRESOLEXIT(x)
void SCIPpresolEnableOrDisableClocks(SCIP_PRESOL *presol, SCIP_Bool enable)
internal methods for presolvers
SCIP_Real SCIPclockGetTime(SCIP_CLOCK *clck)
int SCIPpresolGetPriority(SCIP_PRESOL *presol)
SCIP_RETCODE SCIPsetPresolPriority(SCIP *scip, SCIP_PRESOL *presol, int priority)
internal methods for global SCIP settings
unsigned int SCIP_PRESOLTIMING
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)
void SCIPpresolSetInitpre(SCIP_PRESOL *presol, SCIP_DECL_PRESOLINITPRE((*presolinitpre)))
#define BMSduplicateMemoryArray(ptr, source, num)
SCIP_RETCODE SCIPclockCreate(SCIP_CLOCK **clck, SCIP_CLOCKTYPE clocktype)
public data structures and miscellaneous methods
#define SCIP_DECL_PRESOLEXITPRE(x)
SCIP_Real SCIPpresolGetTime(SCIP_PRESOL *presol)
void SCIPpresolSetFree(SCIP_PRESOL *presol, SCIP_DECL_PRESOLFREE((*presolfree)))
static const char * paramname[]
int SCIPpresolGetNCalls(SCIP_PRESOL *presol)
void SCIPclockFree(SCIP_CLOCK **clck)
#define SCIP_DECL_PRESOLINIT(x)
int SCIPpresolGetMaxrounds(SCIP_PRESOL *presol)
const char * SCIPpresolGetName(SCIP_PRESOL *presol)
void SCIPpresolSetInit(SCIP_PRESOL *presol, SCIP_DECL_PRESOLINIT((*presolinit)))
#define SCIP_PRESOLTIMING_MAX
void SCIPpresolSetTiming(SCIP_PRESOL *presol, SCIP_PRESOLTIMING timing)
void SCIPpresolSetExit(SCIP_PRESOL *presol, SCIP_DECL_PRESOLEXIT((*presolexit)))
int SCIPpresolGetNUpgdConss(SCIP_PRESOL *presol)
int SCIPpresolGetNChgSides(SCIP_PRESOL *presol)
int SCIPparamGetInt(SCIP_PARAM *param)
int SCIPpresolGetNAddHoles(SCIP_PRESOL *presol)
SCIP_PRESOLDATA * presoldata
#define SCIP_PRESOLTIMING_FINAL
SCIP_RETCODE SCIPpresolCopyInclude(SCIP_PRESOL *presol, SCIP_SET *set)
void SCIPpresolSetCopy(SCIP_PRESOL *presol, SCIP_DECL_PRESOLCOPY((*presolcopy)))
#define BMSallocMemory(ptr)
SCIP_RETCODE SCIPpresolExitpre(SCIP_PRESOL *presol, SCIP_SET *set)
common defines and data types used in all packages of SCIP
struct BMS_BlkMem BMS_BLKMEM
int SCIPpresolGetNAddConss(SCIP_PRESOL *presol)
SCIP_RETCODE SCIPpresolInitpre(SCIP_PRESOL *presol, SCIP_SET *set)
int SCIPpresolGetNChgBds(SCIP_PRESOL *presol)
SCIP_PRESOLTIMING SCIPpresolGetTiming(SCIP_PRESOL *presol)
void SCIPpresolSetExitpre(SCIP_PRESOL *presol, SCIP_DECL_PRESOLEXITPRE((*presolexitpre)))
memory allocation routines