92 if( relax->relaxcopy !=
NULL )
135 (*relax)->priority = priority;
136 (*relax)->freq = freq;
144 (*relax)->relaxdata = relaxdata;
147 (*relax)->ncalls = 0;
148 (*relax)->ncutoffs = 0;
149 (*relax)->nimprbounds = 0;
150 (*relax)->imprtime = 0.0;
151 (*relax)->naddedconss = 0;
152 (*relax)->nreduceddom = 0;
153 (*relax)->nseparated = 0;
154 (*relax)->lastsolvednode = -1;
155 (*relax)->initialized =
FALSE;
197 SCIP_CALL_FINALLY(
doRelaxCreate(relax,
set, messagehdlr, blkmem, name, desc, priority, freq,
relaxcopy,
relaxfree,
212 assert(!(*relax)->initialized);
216 if( (*relax)->relaxfree !=
NULL )
245 if(
set->misc_resetstat )
259 if( relax->relaxinit !=
NULL )
289 if( relax->relaxexit !=
NULL )
314 if( relax->relaxinitsol !=
NULL )
338 if( relax->relaxexitsol !=
NULL )
359 SCIP_Real* lowerbound,
409 SCIPerrorMessage(
"execution method of relaxation handler <%s> returned invalid result <%d>\n",
752 (*relaxation)->relaxsolobjval = 0.0;
753 (*relaxation)->relaxsolvalid =
FALSE;
754 (*relaxation)->relaxsolincludeslp =
FALSE;
755 (*relaxation)->relaxsolzero =
TRUE;
756 (*relaxation)->lastsolrelax =
NULL;
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_MAXTREEDEPTH
#define SCIP_CALL_FINALLY(x, y)
int SCIPgetNCuts(SCIP *scip)
SCIP_Real SCIPnodeGetLowerbound(SCIP_NODE *node)
SCIP_Bool SCIPinProbing(SCIP *scip)
void SCIPrelaxMarkUnsolved(SCIP_RELAX *relax)
SCIP_Longint SCIPrelaxGetNAddedConss(SCIP_RELAX *relax)
SCIP_Bool SCIPrelaxIsInitialized(SCIP_RELAX *relax)
SCIP_Real SCIPrelaxGetTime(SCIP_RELAX *relax)
int SCIPrelaxGetFreq(SCIP_RELAX *relax)
const char * SCIPrelaxGetName(SCIP_RELAX *relax)
SCIP_Real SCIPrelaxGetSetupTime(SCIP_RELAX *relax)
SCIP_RETCODE SCIPsetRelaxPriority(SCIP *scip, SCIP_RELAX *relax, int priority)
SCIP_Longint SCIPrelaxGetNCutoffs(SCIP_RELAX *relax)
SCIP_Longint SCIPrelaxGetNSeparatedCuts(SCIP_RELAX *relax)
void SCIPrelaxSetData(SCIP_RELAX *relax, SCIP_RELAXDATA *relaxdata)
const char * SCIPrelaxGetDesc(SCIP_RELAX *relax)
SCIP_Longint SCIPrelaxGetNReducedDomains(SCIP_RELAX *relax)
SCIP_Real SCIPrelaxGetImprovedLowerboundTime(SCIP_RELAX *relax)
int SCIPrelaxGetPriority(SCIP_RELAX *relax)
SCIP_Longint SCIPrelaxGetNImprovedLowerbound(SCIP_RELAX *relax)
SCIP_Longint SCIPrelaxGetNCalls(SCIP_RELAX *relax)
SCIP_RELAXDATA * SCIPrelaxGetData(SCIP_RELAX *relax)
SCIP_VARSTATUS SCIPvarGetStatus(SCIP_VAR *var)
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
public methods for message output
public data structures and miscellaneous methods
void SCIPrelaxSetInit(SCIP_RELAX *relax,)
SCIP_RETCODE SCIPrelaxInit(SCIP_RELAX *relax, SCIP_SET *set)
SCIP_Bool SCIPrelaxationIsSolZero(SCIP_RELAXATION *relaxation)
void SCIPrelaxSetFree(SCIP_RELAX *relax,)
SCIP_RETCODE SCIPrelaxCreate(SCIP_RELAX **relax, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int priority, int freq, SCIP_DECL_RELAXCOPY((*relaxcopy)), SCIP_DECL_RELAXFREE((*relaxfree)), SCIP_DECL_RELAXINIT((*relaxinit)), SCIP_DECL_RELAXEXIT((*relaxexit)), SCIP_DECL_RELAXINITSOL((*relaxinitsol)), SCIP_DECL_RELAXEXITSOL((*relaxexitsol)), SCIP_DECL_RELAXEXEC((*relaxexec)), SCIP_RELAXDATA *relaxdata)
void SCIPrelaxationSetSolZero(SCIP_RELAXATION *relaxation, SCIP_Bool iszero)
SCIP_RETCODE SCIPrelaxExit(SCIP_RELAX *relax, SCIP_SET *set)
void SCIPrelaxSetInitsol(SCIP_RELAX *relax,)
void SCIPrelaxationUpdateVarObj(SCIP_RELAXATION *relaxation, SCIP_SET *set, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
void SCIPrelaxationSetSolValid(SCIP_RELAXATION *relaxation, SCIP_Bool isvalid, SCIP_Bool includeslp)
SCIP_RETCODE SCIPrelaxFree(SCIP_RELAX **relax, SCIP_SET *set)
void SCIPrelaxSetCopy(SCIP_RELAX *relax,)
void SCIPrelaxationSetSolObj(SCIP_RELAXATION *relaxation, SCIP_Real obj)
void SCIPrelaxSetExit(SCIP_RELAX *relax,)
void SCIPrelaxSetExitsol(SCIP_RELAX *relax,)
SCIP_Real SCIPrelaxationGetSolObj(SCIP_RELAXATION *relaxation)
void SCIPrelaxationSolObjAdd(SCIP_RELAXATION *relaxation, SCIP_Real val)
SCIP_RETCODE SCIPrelaxCopyInclude(SCIP_RELAX *relax, SCIP_SET *set)
void SCIPrelaxationSetSolRelax(SCIP_RELAXATION *relaxation, SCIP_RELAX *relax)
SCIP_Bool SCIPrelaxIsSolved(SCIP_RELAX *relax, SCIP_STAT *stat)
static SCIP_RETCODE doRelaxCreate(SCIP_RELAX **relax, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int priority, int freq, SCIP_DECL_RELAXCOPY((*relaxcopy)), SCIP_DECL_RELAXFREE((*relaxfree)), SCIP_DECL_RELAXINIT((*relaxinit)), SCIP_DECL_RELAXEXIT((*relaxexit)), SCIP_DECL_RELAXINITSOL((*relaxinitsol)), SCIP_DECL_RELAXEXITSOL((*relaxexitsol)), SCIP_DECL_RELAXEXEC((*relaxexec)), SCIP_RELAXDATA *relaxdata)
SCIP_RETCODE SCIPrelaxationFree(SCIP_RELAXATION **relaxation)
void SCIPrelaxEnableOrDisableClocks(SCIP_RELAX *relax, SCIP_Bool enable)
SCIP_RETCODE SCIPrelaxationCreate(SCIP_RELAXATION **relaxation, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree)
SCIP_RELAX * SCIPrelaxationGetSolRelax(SCIP_RELAXATION *relaxation)
SCIP_RETCODE SCIPrelaxInitsol(SCIP_RELAX *relax, SCIP_SET *set)
SCIP_RETCODE SCIPrelaxExec(SCIP_RELAX *relax, SCIP_SET *set, SCIP_TREE *tree, SCIP_STAT *stat, int depth, SCIP_Real *lowerbound, SCIP_RESULT *result)
void SCIPrelaxSetPriority(SCIP_RELAX *relax, SCIP_SET *set, int priority)
SCIP_Bool SCIPrelaxationIsLpIncludedForSol(SCIP_RELAXATION *relaxation)
SCIP_Bool SCIPrelaxationIsSolValid(SCIP_RELAXATION *relaxation)
SCIP_RETCODE SCIPrelaxExitsol(SCIP_RELAX *relax, SCIP_SET *set)
internal methods for relaxators
public methods for cuts and aggregation rows
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)
SCIP_Real SCIPsetInfinity(SCIP_SET *set)
SCIP_Bool SCIPsetIsInfinity(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsRelGT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
internal methods for global SCIP settings
internal methods for storing primal CIP solutions
internal methods for problem statistics
SCIP_RELAXDATA * relaxdata
SCIP_Longint lastsolvednode
SCIP_Bool relaxsolincludeslp
SCIP_RELAX * lastsolrelax
data structures for relaxators
SCIP_NODE * SCIPtreeGetCurrentNode(SCIP_TREE *tree)
internal methods for branch and bound tree
#define SCIP_DECL_SORTPTRCOMP(x)
struct SCIP_ParamData SCIP_PARAMDATA
#define SCIP_DECL_PARAMCHGD(x)
#define SCIP_DECL_RELAXINIT(x)
#define SCIP_DECL_RELAXEXITSOL(x)
#define SCIP_DECL_RELAXFREE(x)
#define SCIP_DECL_RELAXINITSOL(x)
#define SCIP_DECL_RELAXCOPY(x)
#define SCIP_DECL_RELAXEXEC(x)
#define SCIP_DECL_RELAXEXIT(x)
struct SCIP_RelaxData SCIP_RELAXDATA
enum SCIP_Result SCIP_RESULT
enum SCIP_Retcode SCIP_RETCODE
SCIP_Real SCIPvarGetRelaxSol(SCIP_VAR *var, SCIP_SET *set)
internal methods for problem variables