Detailed Description
variable expression handler
Definition in file expr_var.c.
Go to the source code of this file.
Macros | |
#define | EXPRHDLR_NAME "var" |
#define | EXPRHDLR_DESC "SCIP variable expression" |
#define | EXPRHDLR_PRECEDENCE 0 |
#define | EXPRHDLR_HASHKEY SCIPcalcFibHash(22153.0) |
#define | infty2infty(infty1, infty2, val) ((val) >= (infty1) ? (infty2) : (val)) |
Functions | |
static | SCIP_DECL_EXPRSIMPLIFY (simplifyVar) |
static | SCIP_DECL_EXPRCOMPARE (compareVar) |
static | SCIP_DECL_EXPRCOPYHDLR (copyhdlrVar) |
static | SCIP_DECL_EXPRCOPYDATA (copydataVar) |
static | SCIP_DECL_EXPRFREEDATA (freedataVar) |
static | SCIP_DECL_EXPRPRINT (printVar) |
static | SCIP_DECL_EXPREVAL (evalVar) |
static | SCIP_DECL_EXPRBWDIFF (bwdiffVar) |
static | SCIP_DECL_EXPRFWDIFF (fwdiffVar) |
static | SCIP_DECL_EXPRBWFWDIFF (bwfwdiffVar) |
static | SCIP_DECL_EXPRINTEVAL (intevalVar) |
static | SCIP_DECL_EXPRHASH (hashVar) |
static | SCIP_DECL_EXPRCURVATURE (curvatureVar) |
static | SCIP_DECL_EXPRMONOTONICITY (monotonicityVar) |
static | SCIP_DECL_EXPRINTEGRALITY (integralityVar) |
SCIP_RETCODE | SCIPincludeExprhdlrVar (SCIP *scip) |
SCIP_RETCODE | SCIPcreateExprVar (SCIP *scip, SCIP_EXPR **expr, SCIP_VAR *var, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata) |
SCIP_VAR * | SCIPgetVarExprVar (SCIP_EXPR *expr) |
Macro Definition Documentation
◆ EXPRHDLR_NAME
#define EXPRHDLR_NAME "var" |
Definition at line 34 of file expr_var.c.
Referenced by SCIPgetVarExprVar(), and SCIPincludeExprhdlrVar().
◆ EXPRHDLR_DESC
#define EXPRHDLR_DESC "SCIP variable expression" |
Definition at line 35 of file expr_var.c.
Referenced by SCIPincludeExprhdlrVar().
◆ EXPRHDLR_PRECEDENCE
#define EXPRHDLR_PRECEDENCE 0 |
Definition at line 36 of file expr_var.c.
Referenced by SCIPincludeExprhdlrVar().
◆ EXPRHDLR_HASHKEY
#define EXPRHDLR_HASHKEY SCIPcalcFibHash(22153.0) |
Definition at line 37 of file expr_var.c.
Referenced by SCIP_DECL_EXPRHASH().
◆ infty2infty
#define infty2infty | ( | infty1, | |
infty2, | |||
val | |||
) | ((val) >= (infty1) ? (infty2) : (val)) |
translate from one value of infinity to another
if val is >= infty1, then give infty2, else give val
Definition at line 43 of file expr_var.c.
Referenced by SCIP_DECL_EXPRINTEVAL().
Function Documentation
◆ SCIP_DECL_EXPRSIMPLIFY()
|
static |
simplifies a variable expression
We replace the variable when fixed by its value. If a variable is fixed, (multi)aggregated or more generally, inactive, we replace it with its active counterpart
Implementation note:
- we follow the general approach of the simplify, where we replace the var expression for its simplified expression only in the current parent. So if we see that there is any performance issue in the simplify we might have to revisit this decision.
- we build the sum expression by appending variable expressions one at a time. This may be speed-up if we allocate memory for all the variable expressions and build the sum directly.
Definition at line 59 of file expr_var.c.
References NULL, REALABS, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPappendExprSumExpr(), SCIPcaptureExpr(), SCIPcreateExprSum(), SCIPcreateExprVar(), SCIPfreeBufferArray, SCIPgetProbvarLinearSum(), SCIPgetVarExprVar(), SCIPinfoMessage(), SCIPisInfinity(), SCIPprintExpr(), SCIPreallocBufferArray, SCIPreleaseExpr(), SCIPvarGetName(), SCIPvarIsActive(), SCIPvarIsOriginal(), and TRUE.
◆ SCIP_DECL_EXPRCOMPARE()
|
static |
the order of two variable is given by their indices
- Note
- this is affected by permutations in the problem
Definition at line 149 of file expr_var.c.
References SCIPgetVarExprVar(), and SCIPvarGetIndex().
◆ SCIP_DECL_EXPRCOPYHDLR()
|
static |
expression handler copy callback
Definition at line 162 of file expr_var.c.
References SCIP_CALL, SCIP_OKAY, and SCIPincludeExprhdlrVar().
◆ SCIP_DECL_EXPRCOPYDATA()
|
static |
expression data copy callback
Definition at line 171 of file expr_var.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPcaptureVar(), and SCIPgetVarExprVar().
◆ SCIP_DECL_EXPRFREEDATA()
|
static |
expression data free callback
Definition at line 193 of file expr_var.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPexprGetData(), SCIPexprSetData(), and SCIPreleaseVar().
◆ SCIP_DECL_EXPRPRINT()
|
static |
expression print callback
Definition at line 211 of file expr_var.c.
References NULL, SCIP_EXPRITER_ENTEREXPR, SCIP_OKAY, SCIPgetVarExprVar(), SCIPinfoMessage(), and SCIPvarGetName().
◆ SCIP_DECL_EXPREVAL()
|
static |
expression point evaluation callback
Definition at line 226 of file expr_var.c.
References NULL, SCIP_OKAY, SCIPgetSolVal(), and SCIPgetVarExprVar().
◆ SCIP_DECL_EXPRBWDIFF()
|
static |
expression backward derivative evaluation callback
Definition at line 238 of file expr_var.c.
References SCIP_INVALIDCALL.
◆ SCIP_DECL_EXPRFWDIFF()
|
static |
expression forward derivative evaluation callback
Definition at line 246 of file expr_var.c.
References NULL, SCIP_OKAY, SCIPgetSolVal(), and SCIPgetVarExprVar().
◆ SCIP_DECL_EXPRBWFWDIFF()
|
static |
expression derivative evaluation callback
Definition at line 258 of file expr_var.c.
References SCIP_INVALIDCALL.
◆ SCIP_DECL_EXPRINTEVAL()
|
static |
expression interval evaluation callback
Definition at line 266 of file expr_var.c.
References infty2infty, NULL, SCIP_INTERVAL_INFINITY, SCIP_OKAY, SCIP_Real, SCIPgetVarExprVar(), SCIPinfinity(), SCIPintervalSetBounds(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal().
◆ SCIP_DECL_EXPRHASH()
|
static |
variable hash callback
Definition at line 295 of file expr_var.c.
References EXPRHDLR_HASHKEY, NULL, SCIP_OKAY, SCIP_Real, SCIPcalcFibHash(), SCIPexprGetNChildren(), SCIPgetVarExprVar(), and SCIPvarGetIndex().
◆ SCIP_DECL_EXPRCURVATURE()
|
static |
expression curvature detection callback
Definition at line 315 of file expr_var.c.
References NULL, SCIP_OKAY, SCIPexprGetNChildren(), and TRUE.
◆ SCIP_DECL_EXPRMONOTONICITY()
|
static |
expression monotonicity detection callback
Definition at line 330 of file expr_var.c.
References NULL, SCIP_MONOTONE_INC, SCIP_OKAY, and SCIPexprGetNChildren().
◆ SCIP_DECL_EXPRINTEGRALITY()
|
static |
expression integrality detection callback
Definition at line 344 of file expr_var.c.
References NULL, SCIP_OKAY, SCIPgetVarExprVar(), and SCIPvarIsIntegral().