default nonlinear handler that calls expression handler methods
Definition in file nlhdlr_default.c.
Go to the source code of this file.
Macros | |
| #define | NLHDLR_NAME "default" |
| #define | NLHDLR_DESC "default handler for expressions" |
| #define | NLHDLR_DETECTPRIORITY 0 |
| #define | NLHDLR_ENFOPRIORITY 0 |
| #define | infty2infty(infty1, infty2, val) |
| #define | UNDERESTIMATEUSESACTIVITY 0x1u |
| #define | OVERESTIMATEUSESACTIVITY 0x2u |
Functions | |
| static SCIP_RETCODE | evalExprInAux (SCIP *scip, SCIP_EXPR *expr, SCIP_Real *val, SCIP_SOL *sol) |
| static | SCIP_DECL_NLHDLRDETECT (nlhdlrDetectDefault) |
| static | SCIP_DECL_NLHDLREVALAUX (nlhdlrEvalAuxDefault) |
| static | SCIP_DECL_NLHDLRINITSEPA (nlhdlrInitSepaDefault) |
| static | SCIP_DECL_NLHDLRESTIMATE (nlhdlrEstimateDefault) |
| static | SCIP_DECL_NLHDLRSOLLINEARIZE (nlhdlrSollinearizeDefault) |
| static | SCIP_DECL_NLHDLRINTEVAL (nlhdlrIntevalDefault) |
| static | SCIP_DECL_NLHDLRREVERSEPROP (nlhdlrReversepropDefault) |
| static | SCIP_DECL_NLHDLRCOPYHDLR (nlhdlrCopyhdlrDefault) |
| static | SCIP_DECL_NLHDLRFREEEXPRDATA (nlhdlrFreeExprDataDefault) |
| SCIP_RETCODE | SCIPincludeNlhdlrDefault (SCIP *scip) |
| #define NLHDLR_NAME "default" |
Definition at line 36 of file nlhdlr_default.c.
| #define NLHDLR_DESC "default handler for expressions" |
Definition at line 37 of file nlhdlr_default.c.
| #define NLHDLR_DETECTPRIORITY 0 |
Definition at line 38 of file nlhdlr_default.c.
| #define NLHDLR_ENFOPRIORITY 0 |
Definition at line 39 of file nlhdlr_default.c.
| #define infty2infty | ( | infty1, | |
| infty2, | |||
| val ) |
translate from one value of infinity to another
if val is ≥ infty1, then give infty2, else give val
Definition at line 45 of file nlhdlr_default.c.
Referenced by SCIP_DECL_NLHDLRESTIMATE(), SCIP_DECL_NLHDLRINITSEPA(), and SCIP_DECL_NLHDLRSOLLINEARIZE().
| #define UNDERESTIMATEUSESACTIVITY 0x1u |
whether underestimation uses activity
Definition at line 47 of file nlhdlr_default.c.
Referenced by SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRESTIMATE(), SCIP_DECL_NLHDLRINITSEPA(), and SCIP_DECL_NLHDLRSOLLINEARIZE().
| #define OVERESTIMATEUSESACTIVITY 0x2u |
whether overestimation uses activity
Definition at line 48 of file nlhdlr_default.c.
Referenced by SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRESTIMATE(), SCIP_DECL_NLHDLRINITSEPA(), and SCIP_DECL_NLHDLRSOLLINEARIZE().
|
static |
evaluates an expression w.r.t. the values in the auxiliary variables
| scip | SCIP data structure |
| expr | expression to be evaluated |
| val | buffer to store value of expression |
| sol | solution to be evaluated |
Definition at line 55 of file nlhdlr_default.c.
References assert(), c, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcallExprEval(), SCIPexprGetChildren(), SCIPexprGetNChildren(), SCIPfreeBufferArray, SCIPgetExprAuxVarNonlinear(), SCIPgetSolVal(), and sol.
Referenced by SCIP_DECL_NLHDLREVALAUX().
|
static |
check whether expression should be handled by the default nlhdlr
if no nlhdlr so far provides enforcement or boundtightening for expr, then the default nlhdlr takes over
Definition at line 97 of file nlhdlr_default.c.
References assert(), c, FALSE, NULL, OVERESTIMATEUSESACTIVITY, SCIP_Bool, SCIP_CALL, SCIP_EXPRCURV_CONCAVE, SCIP_EXPRCURV_CONVEX, SCIP_NLHDLR_METHOD_ACTIVITY, SCIP_NLHDLR_METHOD_SEPAABOVE, SCIP_NLHDLR_METHOD_SEPABELOW, SCIP_NLHDLR_METHOD_SEPABOTH, SCIP_OKAY, SCIPallocBufferArray, SCIPexprGetChildren(), SCIPexprGetHdlr(), SCIPexprGetNChildren(), SCIPexprhdlrHasEstimate(), SCIPexprhdlrHasIntEval(), SCIPexprhdlrHasReverseProp(), SCIPfreeBufferArray, SCIPregisterExprUsageNonlinear(), and UNDERESTIMATEUSESACTIVITY.
|
static |
evaluate expression w.r.t. values of auxiliary variables in children
Definition at line 196 of file nlhdlr_default.c.
References assert(), evalExprInAux(), NULL, SCIP_CALL, SCIP_OKAY, and sol.
|
static |
initialize LP relaxation by initial estimators
Definition at line 208 of file nlhdlr_default.c.
References assert(), FALSE, i, infty2infty, NULL, OVERESTIMATEUSESACTIVITY, SCIP_Bool, SCIP_CALL, SCIP_EXPR_MAXINITESTIMATES, SCIP_INTERVAL_INFINITY, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, SCIP_SIDETYPE_RIGHT, SCIPaddRow(), SCIPaddRowprepTerm(), SCIPallocBufferArray, SCIPchgRowLhs(), SCIPchgRowRhs(), SCIPcleanupRowprep2(), SCIPcreateRowprep(), SCIPdebug, SCIPdebugMsg, SCIPensureRowprepSize(), SCIPevalExprActivity(), SCIPexprGetActivity(), SCIPexprGetChildren(), SCIPexprGetHdlr(), SCIPexprGetNChildren(), SCIPexprhdlrGetName(), SCIPexprhdlrHasInitEstimates(), SCIPfreeBufferArray, SCIPfreeRowprep(), SCIPgetDepth(), SCIPgetExprAuxVarNonlinear(), SCIPgetHugeValue(), SCIPgetRowprepRowCons(), SCIPinfinity(), SCIPinfoMessage(), SCIPintervalIntersect(), SCIPintervalIsEmpty(), SCIPintervalSetBounds(), SCIPisExprSum(), SCIPisInfinity(), SCIPprintExpr(), SCIPprintRow(), SCIPreleaseRow(), SCIProwGetLhs(), SCIProwGetRhs(), SCIProwprepAddConstant(), SCIProwprepGetName(), SCIProwprepGetNVars(), SCIProwprepGetSidetype(), SCIProwprepReset(), SCIProwprepSetSidetype(), SCIPscaleupRowprep(), SCIPsnprintf(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), TRUE, and UNDERESTIMATEUSESACTIVITY.
|
static |
compute linear estimator
Definition at line 374 of file nlhdlr_default.c.
References assert(), c, FALSE, i, infty2infty, NULL, OVERESTIMATEUSESACTIVITY, SCIP_Bool, SCIP_CALL, SCIP_INTERVAL_INFINITY, SCIP_Longint, SCIP_LONGINT_FORMAT, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, SCIP_SIDETYPE_RIGHT, SCIPaddExprsViolScoreNonlinear(), SCIPaddRowprepTerm(), SCIPallocBufferArray, SCIPcreateRowprep(), SCIPdebug, SCIPensureRowprepSize(), SCIPepsilon(), SCIPevalExprActivity(), SCIPexprGetActivity(), SCIPexprGetChildren(), SCIPexprGetHdlr(), SCIPexprGetNChildren(), SCIPexprhdlrGetName(), SCIPexprhdlrIncrementNBranchings(), SCIPfreeBufferArray, SCIPfreeRowprep(), SCIPgetExprAbsAuxViolationNonlinear(), SCIPgetExprAuxVarNonlinear(), SCIPgetExprRelAuxViolationNonlinear(), SCIPgetNLPs(), SCIPgetSolVal(), SCIPinfinity(), SCIPinfoMessage(), SCIPintervalIntersectEps(), SCIPintervalIsEmpty(), SCIPintervalSetBounds(), SCIPprintExpr(), SCIPprintRowprepSol(), SCIProwprepAddConstant(), SCIProwprepGetCoefs(), SCIProwprepGetName(), SCIProwprepSetLocal(), SCIPsetPtrarrayVal(), SCIPsnprintf(), SCIPsolGetIndex(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), sol, TRUE, and UNDERESTIMATEUSESACTIVITY.
|
static |
solution linearization callback
Definition at line 537 of file nlhdlr_default.c.
References assert(), c, FALSE, i, infty2infty, NULL, OVERESTIMATEUSESACTIVITY, SCIP_Bool, SCIP_CALL, SCIP_INTERVAL_INFINITY, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, SCIP_SIDETYPE_RIGHT, SCIPaddPoolCut(), SCIPaddRowprepTerm(), SCIPallocBufferArray, SCIPcleanupRowprep2(), SCIPcreateRowprep(), SCIPdebug, SCIPensureRowprepSize(), SCIPexprGetChildren(), SCIPexprGetHdlr(), SCIPexprGetNChildren(), SCIPexprhdlrGetName(), SCIPfreeBufferArray, SCIPfreeRowprep(), SCIPgetExprAuxVarNonlinear(), SCIPgetHugeValue(), SCIPgetRowprepRowCons(), SCIPgetSolVal(), SCIPinfinity(), SCIPinfoMessage(), SCIPintervalSetBounds(), SCIPisExprSum(), SCIPprintExpr(), SCIPprintRowprepSol(), SCIPreleaseRow(), SCIProwprepAddConstant(), SCIProwprepGetCoefs(), SCIProwprepGetName(), SCIProwprepIsLocal(), SCIPsnprintf(), SCIPsolGetIndex(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), sol, TRUE, and UNDERESTIMATEUSESACTIVITY.
|
static |
|
static |
tighten bounds on children from bounds on expression and bounds on children
Definition at line 671 of file nlhdlr_default.c.
References assert(), c, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPexprGetChildren(), SCIPexprGetHdlr(), SCIPexprGetNChildren(), SCIPexprhdlrIncrementNDomainReductions(), SCIPfreeBufferArray, SCIPgetExprBoundsNonlinear(), and SCIPtightenExprIntervalNonlinear().
|
static |
nonlinear handler copy callback
Definition at line 707 of file nlhdlr_default.c.
References assert(), NLHDLR_NAME, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_STRINGEQ, SCIPincludeNlhdlrDefault(), and SCIPnlhdlrGetName().
|
static |
callback to free expression specific data
Definition at line 721 of file nlhdlr_default.c.