Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    public methods for SCIP variables

    Author
    Tobias Achterberg
    Timo Berthold
    Gerald Gamrath
    Leona Gottwald
    Stefan Heinz
    Gregor Hendel
    Thorsten Koch
    Alexander Martin
    Marc Pfetsch
    Michael Winkler
    Kati Wolter
    Rolf van der Hulst

    Definition in file scip_var.c.

    #include <ctype.h>
    #include "blockmemshell/memory.h"
    #include "lpi/lpi.h"
    #include "scip/branch.h"
    #include "scip/clock.h"
    #include "scip/conflict.h"
    #include "scip/debug.h"
    #include "scip/rational.h"
    #include "scip/history.h"
    #include "scip/implics.h"
    #include "scip/lp.h"
    #include "scip/prob.h"
    #include "scip/pub_cons.h"
    #include "scip/pub_implics.h"
    #include "scip/pub_lp.h"
    #include "scip/pub_message.h"
    #include "scip/pub_misc.h"
    #include "scip/pub_tree.h"
    #include "scip/pub_var.h"
    #include "scip/relax.h"
    #include "scip/scip_certificate.h"
    #include "scip/scip_exact.h"
    #include "scip/scip_general.h"
    #include "scip/scip_lp.h"
    #include "scip/scip_mem.h"
    #include "scip/scip_message.h"
    #include "scip/scip_numerics.h"
    #include "scip/scip_prob.h"
    #include "scip/scip_probing.h"
    #include "scip/scip_sol.h"
    #include "scip/scip_solvingstats.h"
    #include "scip/scip_tree.h"
    #include "scip/scip_var.h"
    #include "scip/set.h"
    #include "scip/sol.h"
    #include "scip/solve.h"
    #include "scip/stat.h"
    #include "scip/struct_lp.h"
    #include "scip/struct_mem.h"
    #include "scip/struct_primal.h"
    #include "scip/struct_prob.h"
    #include "scip/struct_scip.h"
    #include "scip/struct_set.h"
    #include "scip/struct_stat.h"
    #include "scip/struct_tree.h"
    #include "scip/struct_var.h"
    #include "scip/tree.h"
    #include "scip/certificate.h"
    #include "scip/var.h"

    Go to the source code of this file.

    Macros

    #define MAXNUMEARCHCLIQUE   10000
     

    Functions

    SCIP_RETCODE SCIPcreateVar (SCIP *scip, SCIP_VAR **var, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_DECL_VARCOPY((*varcopy)), SCIP_VARDATA *vardata)
     
    SCIP_RETCODE SCIPcreateVarBasic (SCIP *scip, SCIP_VAR **var, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype)
     
    SCIP_RETCODE SCIPcreateVarImpl (SCIP *scip, SCIP_VAR **var, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype, SCIP_IMPLINTTYPE impltype, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_DECL_VARCOPY((*varcopy)), SCIP_VARDATA *vardata)
     
    SCIP_RETCODE SCIPaddVarExactData (SCIP *scip, SCIP_VAR *var, SCIP_RATIONAL *lb, SCIP_RATIONAL *ub, SCIP_RATIONAL *obj)
     
    SCIP_RETCODE SCIPwriteVarName (SCIP *scip, FILE *file, SCIP_VAR *var, SCIP_Bool type)
     
    SCIP_RETCODE SCIPwriteVarsList (SCIP *scip, FILE *file, SCIP_VAR **vars, int nvars, SCIP_Bool type, char delimiter)
     
    SCIP_RETCODE SCIPwriteVarsLinearsum (SCIP *scip, FILE *file, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_Bool type)
     
    SCIP_RETCODE SCIPwriteVarsLinearsumExact (SCIP *scip, FILE *file, SCIP_VAR **vars, SCIP_RATIONAL **vals, int nvars, SCIP_Bool type)
     
    SCIP_RETCODE SCIPwriteVarsPolynomial (SCIP *scip, FILE *file, SCIP_VAR ***monomialvars, SCIP_Real **monomialexps, SCIP_Real *monomialcoefs, int *monomialnvars, int nmonomials, SCIP_Bool type)
     
    SCIP_RETCODE SCIPparseVar (SCIP *scip, SCIP_VAR **var, const char *str, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARCOPY((*varcopy)), SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_VARDATA *vardata, char **endptr, SCIP_Bool *success)
     
    SCIP_RETCODE SCIPparseVarName (SCIP *scip, const char *str, SCIP_VAR **var, char **endptr)
     
    SCIP_RETCODE SCIPparseVarsList (SCIP *scip, const char *str, SCIP_VAR **vars, int *nvars, int varssize, int *requiredsize, char **endptr, char delimiter, SCIP_Bool *success)
     
    SCIP_RETCODE SCIPparseVarsLinearsum (SCIP *scip, const char *str, SCIP_VAR **vars, SCIP_Real *vals, int *nvars, int varssize, int *requiredsize, char **endptr, SCIP_Bool *success)
     
    SCIP_RETCODE SCIPparseVarsLinearsumExact (SCIP *scip, char *str, SCIP_VAR **vars, SCIP_RATIONAL **vals, int *nvars, int varssize, int *requiredsize, char **endptr, SCIP_Bool *success)
     
    SCIP_RETCODE SCIPparseVarsPolynomial (SCIP *scip, const char *str, SCIP_VAR ****monomialvars, SCIP_Real ***monomialexps, SCIP_Real **monomialcoefs, int **monomialnvars, int *nmonomials, char **endptr, SCIP_Bool *success)
     
    SCIP_RETCODE SCIPparseVarsPolynomialExact (SCIP *scip, char *str, SCIP_VAR ****monomialvars, SCIP_RATIONAL ***monomialcoefs, int *nmonomials, char **endptr, SCIP_Bool *success)
     
    void SCIPfreeParseVarsPolynomialData (SCIP *scip, SCIP_VAR ****monomialvars, SCIP_Real ***monomialexps, SCIP_Real **monomialcoefs, int **monomialnvars, int nmonomials)
     
    void SCIPfreeParseVarsPolynomialDataExact (SCIP *scip, SCIP_VAR ****monomialvars, SCIP_RATIONAL ***monomialcoefs, int nmonomials)
     
    SCIP_RETCODE SCIPcaptureVar (SCIP *scip, SCIP_VAR *var)
     
    SCIP_RETCODE SCIPreleaseVar (SCIP *scip, SCIP_VAR **var)
     
    SCIP_RETCODE SCIPchgVarName (SCIP *scip, SCIP_VAR *var, const char *name)
     
    SCIP_RETCODE SCIPtransformVar (SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar)
     
    SCIP_RETCODE SCIPtransformVars (SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars)
     
    SCIP_RETCODE SCIPgetTransformedVar (SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar)
     
    SCIP_RETCODE SCIPgetTransformedVars (SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars)
     
    SCIP_RETCODE SCIPgetNegatedVar (SCIP *scip, SCIP_VAR *var, SCIP_VAR **negvar)
     
    SCIP_RETCODE SCIPgetNegatedVars (SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **negvars)
     
    SCIP_RETCODE SCIPgetBinvarRepresentative (SCIP *scip, SCIP_VAR *var, SCIP_VAR **repvar, SCIP_Bool *negated)
     
    SCIP_RETCODE SCIPgetBinvarRepresentatives (SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **repvars, SCIP_Bool *negated)
     
    SCIP_RETCODE SCIPflattenVarAggregationGraph (SCIP *scip, SCIP_VAR *var)
     
    SCIP_RETCODE SCIPgetProbvarLinearSum (SCIP *scip, SCIP_VAR **vars, SCIP_Real *scalars, int *nvars, int varssize, SCIP_Real *constant, int *requiredsize)
     
    SCIP_RETCODE SCIPgetProbvarLinearSumExact (SCIP *scip, SCIP_VAR **vars, SCIP_RATIONAL **scalars, int *nvars, int varssize, SCIP_RATIONAL *constant, int *requiredsize, SCIP_Bool mergemultiples)
     
    SCIP_RETCODE SCIPgetProbvarSum (SCIP *scip, SCIP_VAR **var, SCIP_Real *scalar, SCIP_Real *constant)
     
    SCIP_RETCODE SCIPgetProbvarSumExact (SCIP *scip, SCIP_VAR **var, SCIP_RATIONAL *scalar, SCIP_RATIONAL *constant)
     
    SCIP_RETCODE SCIPgetActiveVars (SCIP *scip, SCIP_VAR **vars, int *nvars, int varssize, int *requiredsize)
     
    SCIP_Real SCIPgetVarRedcost (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Real SCIPgetVarImplRedcost (SCIP *scip, SCIP_VAR *var, SCIP_Bool varfixing)
     
    SCIP_Real SCIPgetVarFarkasCoef (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Real SCIPgetVarLbAtIndex (SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
     
    SCIP_Real SCIPgetVarUbAtIndex (SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
     
    SCIP_Real SCIPgetVarBdAtIndex (SCIP *scip, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
     
    SCIP_Bool SCIPgetVarWasFixedAtIndex (SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
     
    SCIP_Real SCIPgetVarSol (SCIP *scip, SCIP_VAR *var)
     
    SCIP_RETCODE SCIPgetVarSols (SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_Real *vals)
     
    SCIP_RETCODE SCIPclearRelaxSolVals (SCIP *scip, SCIP_RELAX *relax)
     
    SCIP_RETCODE SCIPsetRelaxSolVal (SCIP *scip, SCIP_RELAX *relax, SCIP_VAR *var, SCIP_Real val)
     
    SCIP_RETCODE SCIPsetRelaxSolVals (SCIP *scip, SCIP_RELAX *relax, int nvars, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Bool includeslp)
     
    SCIP_RETCODE SCIPsetRelaxSolValsSol (SCIP *scip, SCIP_RELAX *relax, SCIP_SOL *sol, SCIP_Bool includeslp)
     
    SCIP_Bool SCIPisRelaxSolValid (SCIP *scip)
     
    SCIP_RETCODE SCIPmarkRelaxSolValid (SCIP *scip, SCIP_RELAX *relax, SCIP_Bool includeslp)
     
    SCIP_RETCODE SCIPmarkRelaxSolInvalid (SCIP *scip)
     
    SCIP_Real SCIPgetRelaxSolVal (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Real SCIPgetRelaxSolObj (SCIP *scip)
     
    SCIP_Bool SCIPisStrongbranchDownFirst (SCIP *scip, SCIP_VAR *var)
     
    SCIP_RETCODE SCIPstartStrongbranch (SCIP *scip, SCIP_Bool enablepropagation)
     
    SCIP_RETCODE SCIPendStrongbranch (SCIP *scip)
     
    static SCIP_RETCODE analyzeStrongbranch (SCIP *scip, SCIP_VAR *var, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict)
     
    SCIP_RETCODE SCIPgetVarStrongbranchFrac (SCIP *scip, SCIP_VAR *var, int itlim, SCIP_Bool idempotent, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror)
     
    static SCIP_RETCODE performStrongbranchWithPropagation (SCIP *scip, SCIP_VAR *var, SCIP_Bool down, SCIP_Bool firstchild, SCIP_Bool propagate, SCIP_Real newbound, int itlim, int maxproprounds, SCIP_Real *value, SCIP_Bool *valid, SCIP_Longint *ndomreductions, SCIP_Bool *conflict, SCIP_Bool *lperror, SCIP_VAR **vars, int nvars, SCIP_Real *newlbs, SCIP_Real *newubs, SCIP_Bool *foundsol, SCIP_Bool *cutoff)
     
    SCIP_RETCODE SCIPgetVarStrongbranchWithPropagation (SCIP *scip, SCIP_VAR *var, SCIP_Real solval, SCIP_Real lpobjval, int itlim, int maxproprounds, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Longint *ndomredsdown, SCIP_Longint *ndomredsup, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror, SCIP_Real *newlbs, SCIP_Real *newubs)
     
    SCIP_RETCODE SCIPgetVarStrongbranchInt (SCIP *scip, SCIP_VAR *var, int itlim, SCIP_Bool idempotent, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror)
     
    SCIP_RETCODE SCIPgetVarsStrongbranchesFrac (SCIP *scip, SCIP_VAR **vars, int nvars, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror)
     
    SCIP_RETCODE SCIPgetVarsStrongbranchesInt (SCIP *scip, SCIP_VAR **vars, int nvars, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror)
     
    SCIP_LPSOLSTAT SCIPgetLastStrongbranchLPSolStat (SCIP *scip, SCIP_BRANCHDIR branchdir)
     
    SCIP_RETCODE SCIPgetVarStrongbranchLast (SCIP *scip, SCIP_VAR *var, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Real *solval, SCIP_Real *lpobjval)
     
    SCIP_RETCODE SCIPsetVarStrongbranchData (SCIP *scip, SCIP_VAR *var, SCIP_Real lpobjval, SCIP_Real primsol, SCIP_Real down, SCIP_Real up, SCIP_Bool downvalid, SCIP_Bool upvalid, SCIP_Longint iter, int itlim)
     
    SCIP_RETCODE SCIPtryStrongbranchLPSol (SCIP *scip, SCIP_Bool *foundsol, SCIP_Bool *cutoff)
     
    SCIP_Longint SCIPgetVarStrongbranchNode (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Longint SCIPgetVarStrongbranchLPAge (SCIP *scip, SCIP_VAR *var)
     
    int SCIPgetVarNStrongbranchs (SCIP *scip, SCIP_VAR *var)
     
    SCIP_RETCODE SCIPaddVarLocksType (SCIP *scip, SCIP_VAR *var, SCIP_LOCKTYPE locktype, int nlocksdown, int nlocksup)
     
    SCIP_RETCODE SCIPaddVarLocks (SCIP *scip, SCIP_VAR *var, int nlocksdown, int nlocksup)
     
    SCIP_RETCODE SCIPlockVarCons (SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)
     
    SCIP_RETCODE SCIPunlockVarCons (SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)
     
    SCIP_RETCODE SCIPchgVarObj (SCIP *scip, SCIP_VAR *var, SCIP_Real newobj)
     
    SCIP_RETCODE SCIPchgVarObjExact (SCIP *scip, SCIP_VAR *var, SCIP_RATIONAL *newobj)
     
    SCIP_RETCODE SCIPchgVarUbGlobalExact (SCIP *scip, SCIP_VAR *var, SCIP_RATIONAL *newbound)
     
    SCIP_RETCODE SCIPchgVarLbGlobalExact (SCIP *scip, SCIP_VAR *var, SCIP_RATIONAL *newbound)
     
    SCIP_RETCODE SCIPaddVarObj (SCIP *scip, SCIP_VAR *var, SCIP_Real addobj)
     
    SCIP_Real SCIPadjustedVarLb (SCIP *scip, SCIP_VAR *var, SCIP_Real lb)
     
    SCIP_Real SCIPadjustedVarLbExactFloat (SCIP *scip, SCIP_VAR *var, SCIP_Real lb)
     
    SCIP_Real SCIPadjustedVarUb (SCIP *scip, SCIP_VAR *var, SCIP_Real ub)
     
    SCIP_Real SCIPadjustedVarUbExactFloat (SCIP *scip, SCIP_VAR *var, SCIP_Real ub)
     
    SCIP_RETCODE SCIPchgVarLb (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
     
    SCIP_RETCODE SCIPchgVarLbExact (SCIP *scip, SCIP_VAR *var, SCIP_RATIONAL *newbound)
     
    SCIP_RETCODE SCIPchgVarUb (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
     
    SCIP_RETCODE SCIPchgVarUbExact (SCIP *scip, SCIP_VAR *var, SCIP_RATIONAL *newbound)
     
    SCIP_RETCODE SCIPchgVarLbNode (SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound)
     
    SCIP_RETCODE SCIPchgVarUbNode (SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound)
     
    SCIP_RETCODE SCIPchgVarLbGlobal (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
     
    SCIP_RETCODE SCIPchgVarUbGlobal (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
     
    SCIP_RETCODE SCIPchgVarLbLazy (SCIP *scip, SCIP_VAR *var, SCIP_Real lazylb)
     
    SCIP_RETCODE SCIPchgVarUbLazy (SCIP *scip, SCIP_VAR *var, SCIP_Real lazyub)
     
    SCIP_RETCODE SCIPtightenVarLb (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_RETCODE SCIPtightenVarLbExact (SCIP *scip, SCIP_VAR *var, SCIP_RATIONAL *newbound, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_RETCODE SCIPtightenVarUb (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_RETCODE SCIPtightenVarUbExact (SCIP *scip, SCIP_VAR *var, SCIP_RATIONAL *newbound, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_RETCODE SCIPinferVarFixCons (SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_CONS *infercons, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_RETCODE SCIPinferVarLbCons (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_CONS *infercons, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_RETCODE SCIPinferVarUbCons (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_CONS *infercons, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_RETCODE SCIPinferVarUbConsExact (SCIP *scip, SCIP_VAR *var, SCIP_RATIONAL *newbound, SCIP_CONS *infercons, int inferinfo, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_RETCODE SCIPinferVarLbConsExact (SCIP *scip, SCIP_VAR *var, SCIP_RATIONAL *newbound, SCIP_CONS *infercons, int inferinfo, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_RETCODE SCIPinferBinvarCons (SCIP *scip, SCIP_VAR *var, SCIP_Bool fixedval, SCIP_CONS *infercons, int inferinfo, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_RETCODE SCIPinferVarFixProp (SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_RETCODE SCIPinferVarLbProp (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_RETCODE SCIPinferVarUbProp (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_RETCODE SCIPinferBinvarProp (SCIP *scip, SCIP_VAR *var, SCIP_Bool fixedval, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    static SCIP_RETCODE tightenVarLbGlobalSafe (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_RETCODE SCIPtightenVarLbGlobal (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    static SCIP_RETCODE tightenVarUbGlobalSafe (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_RETCODE SCIPtightenVarUbGlobal (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
     
    SCIP_Real SCIPcomputeVarLbGlobal (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Real SCIPcomputeVarUbGlobal (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Real SCIPcomputeVarLbLocal (SCIP *scip, SCIP_VAR *var)
     
    SCIP_RETCODE SCIPcomputeVarLbLocalExact (SCIP *scip, SCIP_VAR *var, SCIP_RATIONAL *result)
     
    SCIP_Real SCIPcomputeVarUbLocal (SCIP *scip, SCIP_VAR *var)
     
    SCIP_RETCODE SCIPcomputeVarUbLocalExact (SCIP *scip, SCIP_VAR *var, SCIP_RATIONAL *result)
     
    SCIP_Real SCIPgetVarMultaggrLbGlobal (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Real SCIPgetVarMultaggrUbGlobal (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Real SCIPgetVarMultaggrLbLocal (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Real SCIPgetVarMultaggrUbLocal (SCIP *scip, SCIP_VAR *var)
     
    SCIP_RETCODE SCIPgetVarClosestVlb (SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvlb, int *closestvlbidx)
     
    SCIP_RETCODE SCIPgetVarClosestVub (SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvub, int *closestvubidx)
     
    SCIP_RETCODE SCIPaddVarVlb (SCIP *scip, SCIP_VAR *var, SCIP_VAR *vlbvar, SCIP_Real vlbcoef, SCIP_Real vlbconstant, SCIP_Bool *infeasible, int *nbdchgs)
     
    SCIP_RETCODE SCIPaddVarVub (SCIP *scip, SCIP_VAR *var, SCIP_VAR *vubvar, SCIP_Real vubcoef, SCIP_Real vubconstant, SCIP_Bool *infeasible, int *nbdchgs)
     
    SCIP_RETCODE SCIPaddVarImplication (SCIP *scip, SCIP_VAR *var, SCIP_Bool varfixing, SCIP_VAR *implvar, SCIP_BOUNDTYPE impltype, SCIP_Real implbound, SCIP_Bool *infeasible, int *nbdchgs)
     
    SCIP_RETCODE SCIPaddClique (SCIP *scip, SCIP_VAR **vars, SCIP_Bool *values, int nvars, SCIP_Bool isequation, SCIP_Bool *infeasible, int *nbdchgs)
     
    static void addLargestCliquePart (SCIP_VAR *var, SCIP_Bool value, int varidx, int *idx, SCIP_Bool *values, int p, int nvars, int nbinvars, int *cliquepartition, int *ncliqueparts)
     
    static SCIP_RETCODE calcCliquePartitionGreedy (SCIP *const scip, SCIP_VAR **const vars, SCIP_Bool *const values, int const nvars, int **probtoidxmap, int *probtoidxmapsize, int *const cliquepartition, int *const ncliques)
     
    static SCIP_RETCODE SCIPtestCliquePartition (SCIP *scip, SCIP_VAR **vars, int nvars, const int *cliquepartition, int ncliques)
     
    SCIP_RETCODE SCIPcalcCliquePartition (SCIP *scip, SCIP_VAR **vars, int nvars, int **probtoidxmap, int *probtoidxmapsize, int *cliquepartition, int *ncliques)
     
    SCIP_RETCODE SCIPcalcNegatedCliquePartition (SCIP *scip, SCIP_VAR **vars, int nvars, int **probtoidxmap, int *probtoidxmapsize, int *cliquepartition, int *ncliques)
     
    SCIP_RETCODE SCIPcleanupCliques (SCIP *scip, SCIP_Bool *infeasible)
     
    int SCIPgetNCliques (SCIP *scip)
     
    int SCIPgetNCliquesCreated (SCIP *scip)
     
    SCIP_CLIQUE ** SCIPgetCliques (SCIP *scip)
     
    SCIP_Bool SCIPhaveVarsCommonClique (SCIP *scip, SCIP_VAR *var1, SCIP_Bool value1, SCIP_VAR *var2, SCIP_Bool value2, SCIP_Bool regardimplics)
     
    SCIP_RETCODE SCIPwriteCliqueGraph (SCIP *scip, const char *fname, SCIP_Bool writenodeweights)
     
    SCIP_RETCODE SCIPremoveVarFromGlobalStructures (SCIP *scip, SCIP_VAR *var)
     
    SCIP_RETCODE SCIPchgVarBranchFactor (SCIP *scip, SCIP_VAR *var, SCIP_Real branchfactor)
     
    SCIP_RETCODE SCIPscaleVarBranchFactor (SCIP *scip, SCIP_VAR *var, SCIP_Real scale)
     
    SCIP_RETCODE SCIPaddVarBranchFactor (SCIP *scip, SCIP_VAR *var, SCIP_Real addfactor)
     
    SCIP_RETCODE SCIPchgVarBranchPriority (SCIP *scip, SCIP_VAR *var, int branchpriority)
     
    SCIP_RETCODE SCIPupdateVarBranchPriority (SCIP *scip, SCIP_VAR *var, int branchpriority)
     
    SCIP_RETCODE SCIPaddVarBranchPriority (SCIP *scip, SCIP_VAR *var, int addpriority)
     
    SCIP_RETCODE SCIPchgVarBranchDirection (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR branchdirection)
     
    static SCIP_RETCODE tightenBounds (SCIP *scip, SCIP_VAR *var, SCIP_Bool integral, SCIP_Bool *infeasible)
     
    SCIP_RETCODE SCIPchgVarType (SCIP *scip, SCIP_VAR *var, SCIP_VARTYPE vartype, SCIP_Bool *infeasible)
     
    SCIP_RETCODE SCIPchgVarImplType (SCIP *scip, SCIP_VAR *var, SCIP_IMPLINTTYPE impltype, SCIP_Bool *infeasible)
     
    SCIP_RETCODE SCIPfixVar (SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_Bool *infeasible, SCIP_Bool *fixed)
     
    SCIP_RETCODE SCIPfixVarExact (SCIP *scip, SCIP_VAR *var, SCIP_RATIONAL *fixedval, SCIP_Bool *infeasible, SCIP_Bool *fixed)
     
    SCIP_RETCODE SCIPaggregateVars (SCIP *scip, SCIP_VAR *varx, SCIP_VAR *vary, SCIP_Real scalarx, SCIP_Real scalary, SCIP_Real rhs, SCIP_Bool *infeasible, SCIP_Bool *redundant, SCIP_Bool *aggregated)
     
    SCIP_RETCODE SCIPaggregateVarsExact (SCIP *scip, SCIP_VAR *varx, SCIP_VAR *vary, SCIP_RATIONAL *scalarx, SCIP_RATIONAL *scalary, SCIP_RATIONAL *rhs, SCIP_Bool *infeasible, SCIP_Bool *redundant, SCIP_Bool *aggregated)
     
    SCIP_RETCODE SCIPmultiaggregateVar (SCIP *scip, SCIP_VAR *var, int naggvars, SCIP_VAR **aggvars, SCIP_Real *scalars, SCIP_Real constant, SCIP_Bool *infeasible, SCIP_Bool *aggregated)
     
    SCIP_RETCODE SCIPmultiaggregateVarExact (SCIP *scip, SCIP_VAR *var, int naggvars, SCIP_VAR **aggvars, SCIP_RATIONAL **scalars, SCIP_RATIONAL *constant, SCIP_Bool *infeasible, SCIP_Bool *aggregated)
     
    SCIP_Bool SCIPdoNotAggr (SCIP *scip)
     
    SCIP_Bool SCIPdoNotMultaggr (SCIP *scip)
     
    SCIP_Bool SCIPdoNotAggrVar (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Bool SCIPdoNotMultaggrVar (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Bool SCIPisVarAggrCoefAcceptable (SCIP *scip, SCIP_VAR *var, SCIP_Real scalar)
     
    SCIP_Bool SCIPallowStrongDualReds (SCIP *scip)
     
    SCIP_Bool SCIPallowWeakDualReds (SCIP *scip)
     
    SCIP_RETCODE SCIPmarkDoNotAggrVar (SCIP *scip, SCIP_VAR *var)
     
    SCIP_RETCODE SCIPmarkDoNotMultaggrVar (SCIP *scip, SCIP_VAR *var)
     
    void SCIPenableVarHistory (SCIP *scip)
     
    void SCIPdisableVarHistory (SCIP *scip)
     
    SCIP_RETCODE SCIPupdateVarPseudocost (SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta, SCIP_Real objdelta, SCIP_Real weight)
     
    SCIP_RETCODE SCIPupdateVarAncPseudocost (SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta, SCIP_Real objdelta, SCIP_Real weight)
     
    SCIP_Real SCIPgetVarPseudocostVal (SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta)
     
    SCIP_Real SCIPgetVarAncPseudocostVal (SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta)
     
    SCIP_Real SCIPgetVarPseudocostValCurrentRun (SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta)
     
    SCIP_Real SCIPgetVarPseudocost (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
     
    SCIP_Real SCIPgetVarPseudocostCurrentRun (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
     
    SCIP_Real SCIPgetVarPseudocostCount (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
     
    SCIP_Real SCIPgetVarPseudocostCountCurrentRun (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
     
    SCIP_Real SCIPgetVarAncPseudocostCountCurrentRun (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
     
    SCIP_Real SCIPgetVarPseudocostVariance (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun)
     
    SCIP_Real SCIPcalculatePscostConfidenceBound (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun, SCIP_CONFIDENCELEVEL clevel)
     
    SCIP_Bool SCIPsignificantVarPscostDifference (SCIP *scip, SCIP_VAR *varx, SCIP_Real fracx, SCIP_VAR *vary, SCIP_Real fracy, SCIP_BRANCHDIR dir, SCIP_CONFIDENCELEVEL clevel, SCIP_Bool onesided)
     
    SCIP_Bool SCIPpscostThresholdProbabilityTest (SCIP *scip, SCIP_VAR *var, SCIP_Real frac, SCIP_Real threshold, SCIP_BRANCHDIR dir, SCIP_CONFIDENCELEVEL clevel)
     
    SCIP_Bool SCIPisVarPscostRelerrorReliable (SCIP *scip, SCIP_VAR *var, SCIP_Real threshold, SCIP_CONFIDENCELEVEL clevel)
     
    SCIP_Real SCIPgetVarPseudocostScore (SCIP *scip, SCIP_VAR *var, SCIP_Real solval)
     
    SCIP_Real SCIPgetVarDPseudocostScore (SCIP *scip, SCIP_VAR *var, SCIP_Real solval, SCIP_Real discountfac)
     
    SCIP_Real SCIPgetVarPseudocostScoreCurrentRun (SCIP *scip, SCIP_VAR *var, SCIP_Real solval)
     
    SCIP_Real SCIPgetVarVSIDS (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
     
    SCIP_Real SCIPgetVarVSIDSCurrentRun (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
     
    SCIP_Real SCIPgetVarConflictScore (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Real SCIPgetVarConflictScoreCurrentRun (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Real SCIPgetVarConflictlengthScore (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Real SCIPgetVarConflictlengthScoreCurrentRun (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Real SCIPgetVarAvgConflictlength (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
     
    SCIP_Real SCIPgetVarAvgConflictlengthCurrentRun (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
     
    SCIP_Real SCIPgetVarAvgInferences (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
     
    SCIP_Real SCIPgetVarAvgInferencesCurrentRun (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
     
    SCIP_Real SCIPgetVarAvgInferenceScore (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Real SCIPgetVarAvgInferenceScoreCurrentRun (SCIP *scip, SCIP_VAR *var)
     
    SCIP_RETCODE SCIPinitVarBranchStats (SCIP *scip, SCIP_VAR *var, SCIP_Real downpscost, SCIP_Real uppscost, SCIP_Real downvsids, SCIP_Real upvsids, SCIP_Real downconflen, SCIP_Real upconflen, SCIP_Real downinfer, SCIP_Real upinfer, SCIP_Real downcutoff, SCIP_Real upcutoff)
     
    SCIP_RETCODE SCIPinitVarValueBranchStats (SCIP *scip, SCIP_VAR *var, SCIP_Real value, SCIP_Real downvsids, SCIP_Real upvsids, SCIP_Real downconflen, SCIP_Real upconflen, SCIP_Real downinfer, SCIP_Real upinfer, SCIP_Real downcutoff, SCIP_Real upcutoff)
     
    SCIP_Real SCIPgetVarAvgCutoffs (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
     
    SCIP_Real SCIPgetVarAvgCutoffsCurrentRun (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
     
    SCIP_Real SCIPgetVarAvgCutoffScore (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Real SCIPgetVarAvgCutoffScoreCurrentRun (SCIP *scip, SCIP_VAR *var)
     
    SCIP_Real SCIPgetVarAvgInferenceCutoffScore (SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight)
     
    SCIP_Real SCIPgetVarAvgInferenceCutoffScoreCurrentRun (SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight)
     
    SCIP_Real SCIPgetVarAvgGMIScore (SCIP *scip, SCIP_VAR *var)
     
    SCIP_RETCODE SCIPincVarGMISumScore (SCIP *scip, SCIP_VAR *var, SCIP_Real gmieff)
     
    SCIP_Real SCIPgetVarLastGMIScore (SCIP *scip, SCIP_VAR *var)
     
    SCIP_RETCODE SCIPsetVarLastGMIScore (SCIP *scip, SCIP_VAR *var, SCIP_Real gmieff)
     
    SCIP_RETCODE SCIPprintVar (SCIP *scip, SCIP_VAR *var, FILE *file)
     

    Macro Definition Documentation

    ◆ MAXNUMEARCHCLIQUE

    #define MAXNUMEARCHCLIQUE   10000

    maximal number of cliques of variable for addLargestCliquePart() to search a suitable clique

    Definition at line 8909 of file scip_var.c.

    Function Documentation

    ◆ analyzeStrongbranch()

    static SCIP_RETCODE analyzeStrongbranch ( SCIP scip,
    SCIP_VAR var,
    SCIP_Bool downinf,
    SCIP_Bool upinf,
    SCIP_Bool downconflict,
    SCIP_Bool upconflict 
    )
    static

    analyze the strong branching for the given variable; that includes conflict analysis for infeasible branches and storing of root reduced cost information

    Parameters
    scipSCIP data structure
    varvariable to analyze
    downinfpointer to store whether the downwards branch is infeasible, or NULL
    upinfpointer to store whether the upwards branch is infeasible, or NULL
    downconflictpointer to store whether a conflict constraint was created for an infeasible downwards branch, or NULL
    upconflictpointer to store whether a conflict constraint was created for an infeasible upwards branch, or NULL

    Definition at line 3583 of file scip_var.c.

    References SCIP_Col::lb, NULL, SCIP_Col::primsol, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIPconflictAnalyzeStrongbranch(), SCIPgetLPSolstat(), SCIPisExact(), SCIPlpGetObjval(), SCIPlpIsDualReliable(), SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPsetIsGE(), SCIPtreeGetCurrentDepth(), SCIPvarGetCol(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), SCIPvarUpdateBestRootSol(), and SCIP_Col::ub.

    Referenced by SCIPgetVarsStrongbranchesFrac(), SCIPgetVarsStrongbranchesInt(), SCIPgetVarStrongbranchFrac(), and SCIPgetVarStrongbranchInt().

    ◆ performStrongbranchWithPropagation()

    static SCIP_RETCODE performStrongbranchWithPropagation ( SCIP scip,
    SCIP_VAR var,
    SCIP_Bool  down,
    SCIP_Bool  firstchild,
    SCIP_Bool  propagate,
    SCIP_Real  newbound,
    int  itlim,
    int  maxproprounds,
    SCIP_Real value,
    SCIP_Bool valid,
    SCIP_Longint ndomreductions,
    SCIP_Bool conflict,
    SCIP_Bool lperror,
    SCIP_VAR **  vars,
    int  nvars,
    SCIP_Real newlbs,
    SCIP_Real newubs,
    SCIP_Bool foundsol,
    SCIP_Bool cutoff 
    )
    static

    create, solve, and evaluate a single strong branching child (for strong branching with propagation)

    Parameters
    scipSCIP data structure
    varvariable to get strong branching values for
    downdo we regard the down child?
    firstchildis this the first of the two strong branching children?
    propagateshould domain propagation be performed?
    newboundnew bound to apply at the strong branching child
    itlimiteration limit for strong branchings
    maxproproundsmaximum number of propagation rounds (-1: no limit, -2: parameter settings)
    valuestores dual bound for strong branching child
    validstores whether the returned value is a valid dual bound, or NULL; otherwise, it can only be used as an estimate value
    ndomreductionspointer to store the number of domain reductions found, or NULL
    conflictpointer to store whether a conflict constraint was created for an infeasible strong branching child, or NULL
    lperrorpointer to store whether an unresolved LP error occurred or the solving process should be stopped (e.g., due to a time limit)
    varsactive problem variables
    nvarsnumber of active problem variables
    newlbsarray to store valid lower bounds for all active variables, or NULL
    newubsarray to store valid upper bounds for all active variables, or NULL
    foundsolpointer to store whether a primal solution was found during strong branching
    cutoffpointer to store whether the strong branching child is infeasible

    Definition at line 3812 of file scip_var.c.

    References FALSE, MAX, MIN, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_Longint, SCIP_LPSOLSTAT_ERROR, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_MAXTREEDEPTH, SCIP_OKAY, SCIP_Real, SCIPallColsInLP(), SCIPbacktrackProbing(), SCIPchgVarLbProbing(), SCIPchgVarUbProbing(), SCIPclockStart(), SCIPclockStop(), SCIPdebugMsg, SCIPerrorMessage, SCIPgetCutoffbound(), SCIPgetLPI(), SCIPgetLPObjval(), SCIPgetLPSolstat(), SCIPinfinity(), SCIPisGE(), SCIPisGT(), SCIPisInfinity(), SCIPisLE(), SCIPisLPRelax(), SCIPisLT(), SCIPlpGetLooseObjval(), SCIPlpiGetObjval(), SCIPlpiIsDualFeasible(), SCIPlpiIsInfinity(), SCIPlpiWasSolved(), SCIPnewProbingNode(), SCIPpropagateProbing(), SCIPsolveProbingLP(), SCIPstatAdd, SCIPtreeGetProbingDepth(), SCIPtryStrongbranchLPSol(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE.

    Referenced by SCIPgetVarStrongbranchWithPropagation().

    ◆ tightenVarLbGlobalSafe()

    static SCIP_RETCODE tightenVarLbGlobalSafe ( SCIP scip,
    SCIP_VAR var,
    SCIP_Real  newbound,
    SCIP_Bool  force,
    SCIP_Bool infeasible,
    SCIP_Bool tightened 
    )
    static

    ◆ tightenVarUbGlobalSafe()

    ◆ addLargestCliquePart()

    static void addLargestCliquePart ( SCIP_VAR var,
    SCIP_Bool  value,
    int  varidx,
    int *  idx,
    SCIP_Bool values,
    int  p,
    int  nvars,
    int  nbinvars,
    int *  cliquepartition,
    int *  ncliqueparts 
    )
    static

    add largest clique containing a given variable to part of clique partitioning

    Parameters
    varvariable to treat
    valuevalue of variable
    varidxindex of variable
    idxmapping of problem variable indices to given subset
    valuesvalues of variables in given subset
    ppart index
    nvarsnumber of variables in the array
    nbinvarstotal number of binary variables
    cliquepartitionarray of length nvars to store the clique partition
    ncliquepartsarray to store the size of each part

    Definition at line 8913 of file scip_var.c.

    References MAXNUMEARCHCLIQUE, NULL, SCIP_Bool, SCIPcliqueGetNVars(), SCIPcliqueGetValues(), SCIPcliqueGetVars(), SCIPvarGetCliques(), SCIPvarGetNCliques(), SCIPvarGetProbindex(), and SCIPvarIsActive().

    Referenced by calcCliquePartitionGreedy().

    ◆ calcCliquePartitionGreedy()

    static SCIP_RETCODE calcCliquePartitionGreedy ( SCIP *const  scip,
    SCIP_VAR **const  vars,
    SCIP_Bool *const  values,
    int const  nvars,
    int **  probtoidxmap,
    int *  probtoidxmapsize,
    int *const  cliquepartition,
    int *const  ncliques 
    )
    static

    calculates a partition of the given set of binary variables into cliques

    The output array contains one value for each variable, such that two variables have the same value iff they were assigned to the same clique; the first variable is always assigned to clique 0, and a variable can only be assigned to clique i if at least one of the preceding variables was assigned to clique i-1; for each clique at most 1 variables can be set to TRUE in a feasible solution;

    The implementation currently runs in O(n^2) time, because we have to clear the counter array nneigh. It could be turned into a linear time algorithm by using a clean buffer.

    Parameters
    scipSCIP data structure
    varsbinary variables in the clique from which at most one can be set to 1
    valuesclique value (TRUE or FALSE) for each variable in the clique
    nvarsnumber of variables in the array
    probtoidxmapcleared memory array with default values -1
    probtoidxmapsizereturns size of probtoidxmap
    cliquepartitionarray of length nvars to store the clique partition
    ncliquespointer to store the number of cliques actually contained in the partition

    Definition at line 9079 of file scip_var.c.

    References addLargestCliquePart(), BMSclearMemoryArray, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPallocClearBufferArray, SCIPcliqueGetNVars(), SCIPcliqueGetValues(), SCIPcliqueGetVars(), SCIPfreeBufferArray, SCIPgetNContVars(), SCIPgetNVars(), SCIPreallocBlockMemoryArray, SCIPvarGetCliques(), SCIPvarGetNCliques(), SCIPvarGetProbindex(), SCIPvarIsActive(), and TRUE.

    Referenced by SCIPcalcCliquePartition().

    ◆ SCIPtestCliquePartition()

    static SCIP_RETCODE SCIPtestCliquePartition ( SCIP scip,
    SCIP_VAR **  vars,
    int  nvars,
    const int *  cliquepartition,
    int  ncliques 
    )
    static

    test whether a clique partition is correct

    Parameters
    scipSCIP data structure
    varsbinary variables in the clique from which at most one can be set to 1
    nvarsnumber of variables in the clique
    cliquepartitionarray of length nvars to store the clique partition
    ncliquespointer to store the number of cliques actually contained in the partition

    Definition at line 9271 of file scip_var.c.

    References FALSE, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPvarGetProbvarBinary(), SCIPvarsHaveCommonClique(), and TRUE.

    Referenced by SCIPcalcCliquePartition().

    ◆ tightenBounds()

    static SCIP_RETCODE tightenBounds ( SCIP scip,
    SCIP_VAR var,
    SCIP_Bool  integral,
    SCIP_Bool infeasible 
    )
    static

    tightens the variable bounds due to a new variable type

    Parameters
    scipSCIP data structure
    varvariable to change the bound for
    integraldid the variable become integral?
    infeasiblepointer to store whether an infeasibility was detected (, due to integrality condition of the new variable type)

    Definition at line 10039 of file scip_var.c.

    References FALSE, NULL, SCIP_Var::scip, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_PRESOLVING, SCIP_STAGE_PROBLEM, SCIPfeasCeil(), SCIPfeasFloor(), SCIPgetStage(), SCIPisFeasGE(), SCIPisFeasIntegral(), SCIPisFeasLE(), SCIPisIntegral(), SCIPsetIsEQ(), SCIPtightenVarLbGlobal(), SCIPtightenVarUbGlobal(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), SCIPvarIsIntegral(), SCIPvarIsTransformed(), and TRUE.

    Referenced by SCIPchgVarImplType(), and SCIPchgVarType().