Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    variable expression handler

    Author
    Stefan Vigerske
    Benjamin Mueller
    Felipe Serrano

    Definition in file expr_var.c.

    #include <string.h>
    #include "scip/expr_var.h"
    #include "scip/expr_sum.h"

    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_VARSCIPgetVarExprVar (SCIP_EXPR *expr)
     

    Macro Definition Documentation

    ◆ EXPRHDLR_NAME

    #define EXPRHDLR_NAME   "var"

    Definition at line 43 of file expr_var.c.

    ◆ EXPRHDLR_DESC

    #define EXPRHDLR_DESC   "SCIP variable expression"

    Definition at line 44 of file expr_var.c.

    ◆ EXPRHDLR_PRECEDENCE

    #define EXPRHDLR_PRECEDENCE   0

    Definition at line 45 of file expr_var.c.

    ◆ EXPRHDLR_HASHKEY

    #define EXPRHDLR_HASHKEY   SCIPcalcFibHash(22153.0)

    Definition at line 46 of file expr_var.c.

    ◆ 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 52 of file expr_var.c.

    Function Documentation

    ◆ SCIP_DECL_EXPRSIMPLIFY()

    static SCIP_DECL_EXPRSIMPLIFY ( simplifyVar  )
    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 68 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(), and SCIPvarIsOriginal().

    ◆ SCIP_DECL_EXPRCOMPARE()

    static SCIP_DECL_EXPRCOMPARE ( compareVar  )
    static

    the order of two variable is given by their indices

    Note
    this is affected by permutations in the problem

    Definition at line 159 of file expr_var.c.

    References SCIPgetVarExprVar(), and SCIPvarGetIndex().

    ◆ SCIP_DECL_EXPRCOPYHDLR()

    static SCIP_DECL_EXPRCOPYHDLR ( copyhdlrVar  )
    static

    expression handler copy callback

    Definition at line 172 of file expr_var.c.

    References SCIP_CALL, SCIP_OKAY, and SCIPincludeExprhdlrVar().

    ◆ SCIP_DECL_EXPRCOPYDATA()

    static SCIP_DECL_EXPRCOPYDATA ( copydataVar  )
    static

    expression data copy callback

    Definition at line 181 of file expr_var.c.

    References NULL, SCIP_CALL, SCIP_OKAY, SCIPcaptureVar(), and SCIPgetVarExprVar().

    ◆ SCIP_DECL_EXPRFREEDATA()

    static SCIP_DECL_EXPRFREEDATA ( freedataVar  )
    static

    expression data free callback

    Definition at line 203 of file expr_var.c.

    References NULL, SCIP_CALL, SCIP_OKAY, SCIPexprGetData(), SCIPexprSetData(), and SCIPreleaseVar().

    ◆ SCIP_DECL_EXPRPRINT()

    static SCIP_DECL_EXPRPRINT ( printVar  )
    static

    expression print callback

    Definition at line 221 of file expr_var.c.

    References NULL, SCIP_EXPRITER_ENTEREXPR, SCIP_OKAY, SCIPgetVarExprVar(), SCIPinfoMessage(), and SCIPvarGetName().

    ◆ SCIP_DECL_EXPREVAL()

    static SCIP_DECL_EXPREVAL ( evalVar  )
    static

    expression point evaluation callback

    Definition at line 236 of file expr_var.c.

    References NULL, SCIP_OKAY, SCIPgetSolVal(), and SCIPgetVarExprVar().

    ◆ SCIP_DECL_EXPRBWDIFF()

    static SCIP_DECL_EXPRBWDIFF ( bwdiffVar  )
    static

    expression backward derivative evaluation callback

    Definition at line 248 of file expr_var.c.

    References SCIP_INVALIDCALL.

    ◆ SCIP_DECL_EXPRFWDIFF()

    static SCIP_DECL_EXPRFWDIFF ( fwdiffVar  )
    static

    expression forward derivative evaluation callback

    Definition at line 256 of file expr_var.c.

    References NULL, SCIP_OKAY, SCIPgetSolVal(), and SCIPgetVarExprVar().

    ◆ SCIP_DECL_EXPRBWFWDIFF()

    static SCIP_DECL_EXPRBWFWDIFF ( bwfwdiffVar  )
    static

    expression derivative evaluation callback

    Definition at line 268 of file expr_var.c.

    References SCIP_INVALIDCALL.

    ◆ SCIP_DECL_EXPRINTEVAL()

    static SCIP_DECL_EXPRINTEVAL ( intevalVar  )
    static

    ◆ SCIP_DECL_EXPRHASH()

    static SCIP_DECL_EXPRHASH ( hashVar  )
    static

    variable hash callback

    Definition at line 305 of file expr_var.c.

    References EXPRHDLR_HASHKEY, NULL, SCIP_OKAY, SCIP_Real, SCIPcalcFibHash(), SCIPexprGetNChildren(), SCIPgetVarExprVar(), and SCIPvarGetIndex().

    ◆ SCIP_DECL_EXPRCURVATURE()

    static SCIP_DECL_EXPRCURVATURE ( curvatureVar  )
    static

    expression curvature detection callback

    Definition at line 325 of file expr_var.c.

    References NULL, SCIP_OKAY, SCIPexprGetNChildren(), and TRUE.

    ◆ SCIP_DECL_EXPRMONOTONICITY()

    static SCIP_DECL_EXPRMONOTONICITY ( monotonicityVar  )
    static

    expression monotonicity detection callback

    Definition at line 340 of file expr_var.c.

    References NULL, SCIP_MONOTONE_INC, SCIP_OKAY, and SCIPexprGetNChildren().

    ◆ SCIP_DECL_EXPRINTEGRALITY()

    static SCIP_DECL_EXPRINTEGRALITY ( integralityVar  )
    static

    expression integrality detection callback

    Definition at line 354 of file expr_var.c.

    References NULL, SCIP_IMPLINTTYPE_NONE, SCIP_IMPLINTTYPE_STRONG, SCIP_IMPLINTTYPE_WEAK, SCIP_OKAY, SCIPgetVarExprVar(), SCIPvarGetImplType(), and SCIPvarIsIntegral().