93 (*cutsel)->priority = priority;
94 (*cutsel)->cutselcopy = cutselcopy;
95 (*cutsel)->cutselfree = cutselfree;
96 (*cutsel)->cutselinit = cutselinit;
97 (*cutsel)->cutselexit = cutselexit;
98 (*cutsel)->cutselinitsol = cutselinitsol;
99 (*cutsel)->cutselexitsol = cutselexitsol;
100 (*cutsel)->cutselselect = cutselselect;
101 (*cutsel)->cutseldata = cutseldata;
102 (*cutsel)->ncalls = 0;
103 (*cutsel)->nrootcalls = 0;
104 (*cutsel)->nrootcutsselected = 0;
105 (*cutsel)->nrootcutsforced = 0;
106 (*cutsel)->nrootcutsfiltered = 0;
107 (*cutsel)->nlocalcutsselected = 0;
108 (*cutsel)->nlocalcutsforced = 0;
109 (*cutsel)->nlocalcutsfiltered = 0;
110 (*cutsel)->initialized =
FALSE;
120 &(*cutsel)->priority,
FALSE, priority, INT_MIN/4, INT_MAX/2,
152 cutselcopy, cutselfree, cutselinit, cutselexit, cutselinitsol, cutselexitsol, cutselselect,
176 int maxnselectedcuts,
189 maxnselectedcuts -= nforcedcuts;
190 maxnselectedcuts =
MIN(maxnselectedcuts, ncuts);
198 cutsel =
set->cutsels[
i];
201 assert(ncuts - nforcedcuts > 0);
202 assert(maxnselectedcuts > 0);
207 SCIP_CALL( cutsel->cutselselect(
set->scip, cutsel, &(cuts[nforcedcuts]), ncuts - nforcedcuts, cuts, nforcedcuts,
208 root, maxnselectedcuts, nselectedcuts, &
result) );
213 assert(*nselectedcuts <= maxnselectedcuts);
224 assert(0 <= *nselectedcuts && *nselectedcuts <= ncuts);
264 if( cutsel->cutselcopy !=
NULL )
280 if( *cutsel ==
NULL )
283 assert(!(*cutsel)->initialized);
287 if( (*cutsel)->cutselfree !=
NULL )
318 if(
set->misc_resetstat )
324 if( cutsel->cutselinit !=
NULL )
355 if( cutsel->cutselexit !=
NULL )
380 if( cutsel->cutselinitsol !=
NULL )
404 if( cutsel->cutselexitsol !=
NULL )
472 cutsel->cutselcopy = cutselcopy;
483 cutsel->cutselfree = cutselfree;
494 cutsel->cutselinit = cutselinit;
505 cutsel->cutselexit = cutselexit;
516 cutsel->cutselinitsol = cutselinitsol;
527 cutsel->cutselexitsol = cutselexitsol;
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
void SCIPcutselSetInitsol(SCIP_CUTSEL *cutsel,)
SCIP_RETCODE SCIPcutselsSelect(SCIP_SET *set, SCIP_ROW **cuts, int ncuts, int nforcedcuts, SCIP_Bool root, SCIP_Bool initiallp, int maxnselectedcuts, int *nselectedcuts)
static SCIP_RETCODE doCutselCreate(SCIP_CUTSEL **cutsel, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int priority, SCIP_DECL_CUTSELCOPY((*cutselcopy)), SCIP_DECL_CUTSELFREE((*cutselfree)), SCIP_DECL_CUTSELINIT((*cutselinit)), SCIP_DECL_CUTSELEXIT((*cutselexit)), SCIP_DECL_CUTSELINITSOL((*cutselinitsol)), SCIP_DECL_CUTSELEXITSOL((*cutselexitsol)), SCIP_DECL_CUTSELSELECT((*cutselselect)), SCIP_CUTSELDATA *cutseldata)
void SCIPcutselSetExit(SCIP_CUTSEL *cutsel,)
void SCIPcutselSetInit(SCIP_CUTSEL *cutsel,)
void SCIPcutselSetFree(SCIP_CUTSEL *cutsel,)
SCIP_RETCODE SCIPcutselInitsol(SCIP_CUTSEL *cutsel, SCIP_SET *set)
SCIP_RETCODE SCIPcutselExitsol(SCIP_CUTSEL *cutsel, SCIP_SET *set)
SCIP_RETCODE SCIPcutselExit(SCIP_CUTSEL *cutsel, SCIP_SET *set)
SCIP_RETCODE SCIPcutselCreate(SCIP_CUTSEL **cutsel, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int priority, SCIP_DECL_CUTSELCOPY((*cutselcopy)), SCIP_DECL_CUTSELFREE((*cutselfree)), SCIP_DECL_CUTSELINIT((*cutselinit)), SCIP_DECL_CUTSELEXIT((*cutselexit)), SCIP_DECL_CUTSELINITSOL((*cutselinitsol)), SCIP_DECL_CUTSELEXITSOL((*cutselexitsol)), SCIP_DECL_CUTSELSELECT((*cutselselect)), SCIP_CUTSELDATA *cutseldata)
SCIP_RETCODE SCIPcutselCopyInclude(SCIP_CUTSEL *cutsel, SCIP_SET *set)
void SCIPcutselSetCopy(SCIP_CUTSEL *cutsel,)
void SCIPcutselSetExitsol(SCIP_CUTSEL *cutsel,)
void SCIPcutselEnableOrDisableClocks(SCIP_CUTSEL *cutsel, SCIP_Bool enable)
SCIP_RETCODE SCIPcutselFree(SCIP_CUTSEL **cutsel, SCIP_SET *set)
SCIP_RETCODE SCIPcutselInit(SCIP_CUTSEL *cutsel, SCIP_SET *set)
void SCIPcutselSetPriority(SCIP_CUTSEL *cutsel, SCIP_SET *set, int priority)
internal methods for cut selectors
#define SCIP_CALL_FINALLY(x, y)
SCIP_Longint SCIPcutselGetNLocalCuts(SCIP_CUTSEL *cutsel)
SCIP_RETCODE SCIPsetCutselPriority(SCIP *scip, SCIP_CUTSEL *cutsel, int priority)
SCIP_Longint SCIPcutselGetNLocalCutsFiltered(SCIP_CUTSEL *cutsel)
SCIP_Longint SCIPcutselGetNRootCuts(SCIP_CUTSEL *cutsel)
SCIP_Longint SCIPcutselGetNRootForcedCuts(SCIP_CUTSEL *cutsel)
SCIP_Longint SCIPcutselGetNCalls(SCIP_CUTSEL *cutsel)
const char * SCIPcutselGetDesc(SCIP_CUTSEL *cutsel)
SCIP_Real SCIPcutselGetTime(SCIP_CUTSEL *cutsel)
SCIP_CUTSELDATA * SCIPcutselGetData(SCIP_CUTSEL *cutsel)
void SCIPcutselSetData(SCIP_CUTSEL *cutsel, SCIP_CUTSELDATA *cutseldata)
int SCIPcutselGetPriority(SCIP_CUTSEL *cutsel)
const char * SCIPcutselGetName(SCIP_CUTSEL *cutsel)
SCIP_Longint SCIPcutselGetNRootCutsFiltered(SCIP_CUTSEL *cutsel)
SCIP_Real SCIPcutselGetSetupTime(SCIP_CUTSEL *cutsel)
SCIP_Longint SCIPcutselGetNLocalForcedCuts(SCIP_CUTSEL *cutsel)
SCIP_Longint SCIPcutselGetNRootCalls(SCIP_CUTSEL *cutsel)
SCIP_Bool SCIPcutselIsInitialized(SCIP_CUTSEL *cutsel)
int SCIPsnprintf(char *t, int len, const char *s,...)
assert(minobj< SCIPgetCutoffbound(scip))
static const char * paramname[]
#define BMSfreeMemory(ptr)
#define BMSduplicateMemoryArray(ptr, source, num)
#define BMSclearMemory(ptr)
struct BMS_BlkMem BMS_BLKMEM
#define BMSfreeMemoryArrayNull(ptr)
#define BMSallocMemory(ptr)
SCIP_PARAMDATA * SCIPparamGetData(SCIP_PARAM *param)
int SCIPparamGetInt(SCIP_PARAM *param)
internal methods for handling parameter settings
void SCIPsetSortCutsels(SCIP_SET *set)
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_Longint nrootcutsforced
SCIP_Longint nlocalcutsselected
SCIP_CUTSELDATA * cutseldata
SCIP_Longint nrootcutsselected
SCIP_Longint nlocalcutsfiltered
SCIP_Longint nlocalcutsforced
SCIP_Longint nrootcutsfiltered
data structures for cut selectors
#define SCIP_DECL_CUTSELEXIT(x)
#define SCIP_DECL_CUTSELEXITSOL(x)
#define SCIP_DECL_CUTSELSELECT(x)
#define SCIP_DECL_CUTSELFREE(x)
#define SCIP_DECL_CUTSELINITSOL(x)
struct SCIP_CutselData SCIP_CUTSELDATA
#define SCIP_DECL_CUTSELINIT(x)
#define SCIP_DECL_CUTSELCOPY(x)
#define SCIP_DECL_SORTPTRCOMP(x)
struct SCIP_ParamData SCIP_PARAMDATA
#define SCIP_DECL_PARAMCHGD(x)
enum SCIP_Result SCIP_RESULT
enum SCIP_Retcode SCIP_RETCODE