Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    Constraint handler for AND-constraints, \(r = x_1 \wedge x_2 \wedge \dots \wedge x_n\).

    Author
    Tobias Achterberg
    Stefan Heinz
    Michael Winkler

    This constraint handler deals with AND-constraints. These are constraint of the form:

    \[ r = x_1 \wedge x_2 \wedge \dots \wedge x_n \]

    where \(x_i\) is a binary variable for all \(i\). Hence, \(r\) is also of binary type. The variable \(r\) is called resultant and the \(x\)'s operators.

    Definition in file cons_and.c.

    #include "blockmemshell/memory.h"
    #include "scip/cons_and.h"
    #include "scip/cons_linear.h"
    #include "scip/cons_logicor.h"
    #include "scip/cons_pseudoboolean.h"
    #include "scip/cons_setppc.h"
    #include "scip/expr_product.h"
    #include "scip/expr_var.h"
    #include "scip/debug.h"
    #include "scip/pub_cons.h"
    #include "scip/pub_event.h"
    #include "scip/pub_lp.h"
    #include "scip/pub_message.h"
    #include "scip/pub_misc.h"
    #include "scip/pub_misc_sort.h"
    #include "scip/pub_var.h"
    #include "scip/scip_conflict.h"
    #include "scip/scip_cons.h"
    #include "scip/scip_copy.h"
    #include "scip/scip_cut.h"
    #include "scip/scip_event.h"
    #include "scip/scip_expr.h"
    #include "scip/scip_general.h"
    #include "scip/scip_lp.h"
    #include "scip/scip_mem.h"
    #include "scip/scip_message.h"
    #include "scip/scip_nlp.h"
    #include "scip/scip_numerics.h"
    #include "scip/scip_param.h"
    #include "scip/scip_prob.h"
    #include "scip/scip_probing.h"
    #include "scip/scip_sol.h"
    #include "scip/scip_tree.h"
    #include "scip/scip_var.h"
    #include "scip/symmetry_graph.h"
    #include "symmetry/struct_symmetry.h"
    #include <string.h>

    Go to the source code of this file.

    Macros

    #define CONSHDLR_NAME   "and"
     
    #define CONSHDLR_DESC   "constraint handler for AND-constraints: r = and(x1, ..., xn)"
     
    #define CONSHDLR_SEPAPRIORITY   +850100
     
    #define CONSHDLR_ENFOPRIORITY   -850100
     
    #define CONSHDLR_CHECKPRIORITY   -850100
     
    #define CONSHDLR_SEPAFREQ   1
     
    #define CONSHDLR_PROPFREQ   1
     
    #define CONSHDLR_EAGERFREQ   100
     
    #define CONSHDLR_MAXPREROUNDS   -1
     
    #define CONSHDLR_DELAYSEPA   FALSE
     
    #define CONSHDLR_DELAYPROP   FALSE
     
    #define CONSHDLR_NEEDSCONS   TRUE
     
    #define CONSHDLR_PRESOLTIMING   (SCIP_PRESOLTIMING_FAST | SCIP_PRESOLTIMING_EXHAUSTIVE)
     
    #define CONSHDLR_PROP_TIMING   SCIP_PROPTIMING_BEFORELP
     
    #define EVENTHDLR_NAME   "and"
     
    #define EVENTHDLR_DESC   "bound change event handler for AND-constraints"
     
    #define DEFAULT_PRESOLPAIRWISE   TRUE
     
    #define DEFAULT_LINEARIZE   FALSE
     
    #define DEFAULT_ENFORCECUTS   TRUE
     
    #define DEFAULT_AGGRLINEARIZATION   FALSE
     
    #define DEFAULT_UPGRRESULTANT   FALSE
     
    #define DEFAULT_DUALPRESOLVING   TRUE
     
    #define HASHSIZE_ANDCONS   500
     
    #define DEFAULT_PRESOLUSEHASHING   TRUE
     
    #define NMINCOMPARISONS   200000
     
    #define MINGAINPERNMINCOMPARISONS   1e-06
     

    Typedefs

    typedef enum Proprule PROPRULE
     

    Enumerations

    enum  Proprule {
      PROPRULE_INVALID = 0 ,
      PROPRULE_1 = 1 ,
      PROPRULE_2 = 2 ,
      PROPRULE_3 = 3 ,
      PROPRULE_4 = 4 ,
      PROPRULE_0_INVALID = 0 ,
      PROPRULE_1_CORETIMES = 1 ,
      PROPRULE_2_EDGEFINDING = 2 ,
      PROPRULE_3_TTEF = 3 ,
      PROPRULE_1_RHS = 1 ,
      PROPRULE_1_LHS = 2 ,
      PROPRULE_1_RANGEDROW = 3 ,
      PROPRULE_INVALID = 0 ,
      PROPRULE_1_RHS = 1 ,
      PROPRULE_1_LHS = 2 ,
      PROPRULE_1_RANGEDROW = 3 ,
      PROPRULE_INVALID = 0 ,
      PROPRULE_1 = 0 ,
      PROPRULE_2 = 1 ,
      PROPRULE_3 = 2 ,
      PROPRULE_4 = 3 ,
      PROPRULE_INVALID = 4 ,
      PROPRULE_1 ,
      PROPRULE_2 ,
      PROPRULE_3 ,
      PROPRULE_4 ,
      PROPRULE_0 ,
      PROPRULE_1 ,
      PROPRULE_INTLB ,
      PROPRULE_INTUB ,
      PROPRULE_INVALID
    }
     

    Functions

    static SCIP_RETCODE lockRounding (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *var)
     
    static SCIP_RETCODE unlockRounding (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *var)
     
    static SCIP_RETCODE conshdlrdataCreate (SCIP *scip, SCIP_CONSHDLRDATA **conshdlrdata, SCIP_EVENTHDLR *eventhdlr)
     
    static void conshdlrdataFree (SCIP *scip, SCIP_CONSHDLRDATA **conshdlrdata)
     
    static SCIP_RETCODE consdataCatchWatchedEvents (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_EVENTHDLR *eventhdlr, int pos, int *filterpos)
     
    static SCIP_RETCODE consdataDropWatchedEvents (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_EVENTHDLR *eventhdlr, int pos, int filterpos)
     
    static SCIP_RETCODE consdataCatchEvents (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_EVENTHDLR *eventhdlr)
     
    static SCIP_RETCODE consdataDropEvents (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_EVENTHDLR *eventhdlr)
     
    static SCIP_RETCODE consdataSwitchWatchedvars (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_EVENTHDLR *eventhdlr, int watchedvar1, int watchedvar2)
     
    static SCIP_RETCODE consdataEnsureVarsSize (SCIP *scip, SCIP_CONSDATA *consdata, int num)
     
    static SCIP_RETCODE consdataCreate (SCIP *scip, SCIP_CONSDATA **consdata, SCIP_EVENTHDLR *eventhdlr, int nvars, SCIP_VAR **vars, SCIP_VAR *resvar)
     
    static SCIP_RETCODE consdataFreeRows (SCIP *scip, SCIP_CONSDATA *consdata)
     
    static SCIP_RETCODE consdataFree (SCIP *scip, SCIP_CONSDATA **consdata, SCIP_EVENTHDLR *eventhdlr)
     
    static SCIP_RETCODE consdataPrint (SCIP *scip, SCIP_CONSDATA *consdata, FILE *file)
     
    static SCIP_RETCODE addCoef (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, SCIP_VAR *var)
     
    static SCIP_RETCODE delCoefPos (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, int pos)
     
    static void consdataSort (SCIP_CONSDATA *consdata)
     
    static SCIP_RETCODE applyFixings (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, int *nchgcoefs)
     
    static SCIP_RETCODE createRelaxation (SCIP *scip, SCIP_CONS *cons)
     
    static SCIP_RETCODE addRelaxation (SCIP *scip, SCIP_CONS *cons, SCIP_Bool *infeasible)
     
    static SCIP_RETCODE addNlrow (SCIP *scip, SCIP_CONS *cons)
     
    static SCIP_RETCODE checkCons (SCIP *scip, SCIP_CONS *cons, SCIP_SOL *sol, SCIP_Bool checklprows, SCIP_Bool printreason, SCIP_Bool *violated)
     
    static SCIP_RETCODE separateCons (SCIP *scip, SCIP_CONS *cons, SCIP_SOL *sol, SCIP_Bool *separated, SCIP_Bool *cutoff)
     
    static SCIP_RETCODE analyzeConflictOne (SCIP *scip, SCIP_CONS *cons, int falsepos)
     
    static SCIP_RETCODE analyzeConflictZero (SCIP *scip, SCIP_CONS *cons)
     
    static SCIP_RETCODE consdataFixResultantZero (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *resvar, int pos, SCIP_Bool *cutoff, int *nfixedvars)
     
    static SCIP_RETCODE consdataFixOperandsOne (SCIP *scip, SCIP_CONS *cons, SCIP_VAR **vars, int nvars, SCIP_Bool *cutoff, int *nfixedvars)
     
    static SCIP_RETCODE consdataLinearize (SCIP *scip, SCIP_CONS *cons, SCIP_Bool *cutoff, int *nfixedvars, int *nupgdconss)
     
    static SCIP_RETCODE analyzeZeroResultant (SCIP *scip, SCIP_CONS *cons, int watchedvar1, int watchedvar2, SCIP_Bool *cutoff, int *nfixedvars)
     
    static SCIP_RETCODE mergeMultiples (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, unsigned char **entries, int *nentries, int *nfixedvars, int *nchgcoefs, int *ndelconss)
     
    static SCIP_RETCODE propagateCons (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, SCIP_Bool *cutoff, int *nfixedvars, int *nupgdconss)
     
    static SCIP_RETCODE resolvePropagation (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *infervar, PROPRULE proprule, SCIP_BDCHGIDX *bdchgidx, SCIP_RESULT *result)
     
    static SCIP_RETCODE dualPresolve (SCIP *scip, SCIP_CONS **conss, int nconss, SCIP_EVENTHDLR *eventhdlr, unsigned char **entries, int *nentries, SCIP_Bool *cutoff, int *nfixedvars, int *naggrvars, int *nchgcoefs, int *ndelconss, int *nupgdconss, int *naddconss)
     
    static SCIP_RETCODE cliquePresolve (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, SCIP_Bool *cutoff, int *nfixedvars, int *naggrvars, int *nchgcoefs, int *ndelconss, int *naddconss)
     
    static SCIP_DECL_HASHGETKEY (hashGetKeyAndcons)
     
    static SCIP_DECL_HASHKEYEQ (hashKeyEqAndcons)
     
    static SCIP_DECL_HASHKEYVAL (hashKeyValAndcons)
     
    static SCIP_RETCODE detectRedundantConstraints (SCIP *scip, BMS_BLKMEM *blkmem, SCIP_CONS **conss, int nconss, int *firstchange, SCIP_Bool *cutoff, int *naggrvars, int *ndelconss)
     
    static SCIP_RETCODE enforceConstraint (SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_CONS **conss, int nconss, SCIP_SOL *sol, SCIP_RESULT *result)
     
    static SCIP_RETCODE preprocessConstraintPairs (SCIP *scip, SCIP_CONS **conss, int firstchange, int chkind, SCIP_Bool *cutoff, int *naggrvars, int *nbdchgs, int *ndelconss)
     
    static SCIP_RETCODE addSymmetryInformation (SCIP *scip, SYM_SYMTYPE symtype, SCIP_CONS *cons, SYM_GRAPH *graph, SCIP_Bool *success)
     
    static SCIP_DECL_CONSHDLRCOPY (conshdlrCopyAnd)
     
    static SCIP_DECL_CONSFREE (consFreeAnd)
     
    static SCIP_DECL_CONSINITPRE (consInitpreAnd)
     
    static SCIP_DECL_CONSINITSOL (consInitsolAnd)
     
    static SCIP_DECL_CONSEXITSOL (consExitsolAnd)
     
    static SCIP_DECL_CONSDELETE (consDeleteAnd)
     
    static SCIP_DECL_CONSTRANS (consTransAnd)
     
    static SCIP_DECL_CONSINITLP (consInitlpAnd)
     
    static SCIP_DECL_CONSSEPALP (consSepalpAnd)
     
    static SCIP_DECL_CONSSEPASOL (consSepasolAnd)
     
    static SCIP_DECL_CONSENFOLP (consEnfolpAnd)
     
    static SCIP_DECL_CONSENFORELAX (consEnforelaxAnd)
     
    static SCIP_DECL_CONSENFOPS (consEnfopsAnd)
     
    static SCIP_DECL_CONSCHECK (consCheckAnd)
     
    static SCIP_DECL_CONSPROP (consPropAnd)
     
    static SCIP_DECL_CONSPRESOL (consPresolAnd)
     
    static SCIP_DECL_CONSRESPROP (consRespropAnd)
     
    static SCIP_DECL_CONSLOCK (consLockAnd)
     
    static SCIP_DECL_CONSACTIVE (consActiveAnd)
     
    static SCIP_DECL_CONSDEACTIVE (consDeactiveAnd)
     
    static SCIP_DECL_CONSPRINT (consPrintAnd)
     
    static SCIP_DECL_CONSCOPY (consCopyAnd)
     
    static SCIP_DECL_CONSPARSE (consParseAnd)
     
    static SCIP_DECL_CONSGETVARS (consGetVarsAnd)
     
    static SCIP_DECL_CONSGETNVARS (consGetNVarsAnd)
     
    static SCIP_DECL_CONSGETPERMSYMGRAPH (consGetPermsymGraphAnd)
     
    static SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH (consGetSignedPermsymGraphAnd)
     
    static SCIP_DECL_EVENTEXEC (eventExecAnd)
     
    SCIP_RETCODE SCIPincludeConshdlrAnd (SCIP *scip)
     
    SCIP_RETCODE SCIPcreateConsAnd (SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR *resvar, int nvars, SCIP_VAR **vars, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode)
     
    SCIP_RETCODE SCIPcreateConsBasicAnd (SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR *resvar, int nvars, SCIP_VAR **vars)
     
    int SCIPgetNVarsAnd (SCIP *scip, SCIP_CONS *cons)
     
    SCIP_VAR ** SCIPgetVarsAnd (SCIP *scip, SCIP_CONS *cons)
     
    SCIP_VARSCIPgetResultantAnd (SCIP *scip, SCIP_CONS *cons)
     
    SCIP_Bool SCIPisAndConsSorted (SCIP *scip, SCIP_CONS *cons)
     
    SCIP_RETCODE SCIPsortAndCons (SCIP *scip, SCIP_CONS *cons)
     

    Macro Definition Documentation

    ◆ CONSHDLR_NAME

    #define CONSHDLR_NAME   "and"

    Definition at line 85 of file cons_and.c.

    ◆ CONSHDLR_DESC

    #define CONSHDLR_DESC   "constraint handler for AND-constraints: r = and(x1, ..., xn)"

    Definition at line 86 of file cons_and.c.

    ◆ CONSHDLR_SEPAPRIORITY

    #define CONSHDLR_SEPAPRIORITY   +850100

    priority of the constraint handler for separation

    Definition at line 87 of file cons_and.c.

    ◆ CONSHDLR_ENFOPRIORITY

    #define CONSHDLR_ENFOPRIORITY   -850100

    priority of the constraint handler for constraint enforcing

    Definition at line 88 of file cons_and.c.

    ◆ CONSHDLR_CHECKPRIORITY

    #define CONSHDLR_CHECKPRIORITY   -850100

    priority of the constraint handler for checking feasibility

    Definition at line 89 of file cons_and.c.

    ◆ CONSHDLR_SEPAFREQ

    #define CONSHDLR_SEPAFREQ   1

    frequency for separating cuts; zero means to separate only in the root node

    Definition at line 90 of file cons_and.c.

    ◆ CONSHDLR_PROPFREQ

    #define CONSHDLR_PROPFREQ   1

    frequency for propagating domains; zero means only preprocessing propagation

    Definition at line 91 of file cons_and.c.

    ◆ CONSHDLR_EAGERFREQ

    #define CONSHDLR_EAGERFREQ   100

    frequency for using all instead of only the useful constraints in separation, propagation and enforcement, -1 for no eager evaluations, 0 for first only

    Definition at line 93 of file cons_and.c.

    ◆ CONSHDLR_MAXPREROUNDS

    #define CONSHDLR_MAXPREROUNDS   -1

    maximal number of presolving rounds the constraint handler participates in (-1: no limit)

    Definition at line 94 of file cons_and.c.

    ◆ CONSHDLR_DELAYSEPA

    #define CONSHDLR_DELAYSEPA   FALSE

    should separation method be delayed, if other separators found cuts?

    Definition at line 95 of file cons_and.c.

    ◆ CONSHDLR_DELAYPROP

    #define CONSHDLR_DELAYPROP   FALSE

    should propagation method be delayed, if other propagators found reductions?

    Definition at line 96 of file cons_and.c.

    ◆ CONSHDLR_NEEDSCONS

    #define CONSHDLR_NEEDSCONS   TRUE

    should the constraint handler be skipped, if no constraints are available?

    Definition at line 97 of file cons_and.c.

    ◆ CONSHDLR_PRESOLTIMING

    #define CONSHDLR_PRESOLTIMING   (SCIP_PRESOLTIMING_FAST | SCIP_PRESOLTIMING_EXHAUSTIVE)

    Definition at line 99 of file cons_and.c.

    ◆ CONSHDLR_PROP_TIMING

    #define CONSHDLR_PROP_TIMING   SCIP_PROPTIMING_BEFORELP

    Definition at line 100 of file cons_and.c.

    ◆ EVENTHDLR_NAME

    #define EVENTHDLR_NAME   "and"

    Definition at line 102 of file cons_and.c.

    ◆ EVENTHDLR_DESC

    #define EVENTHDLR_DESC   "bound change event handler for AND-constraints"

    Definition at line 103 of file cons_and.c.

    ◆ DEFAULT_PRESOLPAIRWISE

    #define DEFAULT_PRESOLPAIRWISE   TRUE

    should pairwise constraint comparison be performed in presolving?

    Definition at line 105 of file cons_and.c.

    ◆ DEFAULT_LINEARIZE

    #define DEFAULT_LINEARIZE   FALSE

    should constraint get linearized and removed?

    Definition at line 106 of file cons_and.c.

    ◆ DEFAULT_ENFORCECUTS

    #define DEFAULT_ENFORCECUTS   TRUE

    should cuts be separated during LP enforcing?

    Definition at line 107 of file cons_and.c.

    ◆ DEFAULT_AGGRLINEARIZATION

    #define DEFAULT_AGGRLINEARIZATION   FALSE

    should an aggregated linearization be used?

    Definition at line 108 of file cons_and.c.

    ◆ DEFAULT_UPGRRESULTANT

    #define DEFAULT_UPGRRESULTANT   FALSE

    should implied integrality of resultant variables be detected?

    Definition at line 109 of file cons_and.c.

    ◆ DEFAULT_DUALPRESOLVING

    #define DEFAULT_DUALPRESOLVING   TRUE

    should dual presolving be performed?

    Definition at line 110 of file cons_and.c.

    ◆ HASHSIZE_ANDCONS

    #define HASHSIZE_ANDCONS   500

    minimal size of hash table in and constraint tables

    Definition at line 112 of file cons_and.c.

    ◆ DEFAULT_PRESOLUSEHASHING

    #define DEFAULT_PRESOLUSEHASHING   TRUE

    should hash table be used for detecting redundant constraints in advance

    Definition at line 113 of file cons_and.c.

    ◆ NMINCOMPARISONS

    #define NMINCOMPARISONS   200000

    number for minimal pairwise presolving comparisons

    Definition at line 114 of file cons_and.c.

    ◆ MINGAINPERNMINCOMPARISONS

    #define MINGAINPERNMINCOMPARISONS   1e-06

    minimal gain per minimal pairwise presolving comparisons to repeat pairwise comparison round

    Definition at line 115 of file cons_and.c.

    Typedef Documentation

    ◆ PROPRULE

    typedef enum Proprule PROPRULE

    Definition at line 173 of file cons_and.c.

    Enumeration Type Documentation

    ◆ Proprule

    enum Proprule
    Enumerator
    PROPRULE_INVALID 

    propagation was applied without a specific propagation rule

    PROPRULE_1 

    v_i = FALSE => r = FALSE

    PROPRULE_2 

    r = TRUE => v_i = TRUE for all i

    PROPRULE_3 

    v_i = TRUE for all i => r = TRUE

    PROPRULE_4 

    r = FALSE, v_i = TRUE for all i except j => v_j = FALSE

    PROPRULE_0_INVALID 

    invalid inference information

    PROPRULE_1_CORETIMES 

    core-time propagator

    PROPRULE_2_EDGEFINDING 

    edge-finder

    PROPRULE_3_TTEF 

    time-table edeg-finding

    PROPRULE_1_RHS 

    activity residuals of all other variables tighten bounds of single variable due to the right hand side of the inequality

    PROPRULE_1_LHS 

    activity residuals of all other variables tighten bounds of single variable due to the left hand side of the inequality

    PROPRULE_1_RANGEDROW 

    fixed variables and gcd of all left variables tighten bounds of a single variable in this reanged row

    PROPRULE_INVALID 

    propagation was applied without a specific propagation rule

    PROPRULE_1_RHS 

    activity residuals of all other variables tighten bounds of single variable due to the right hand side of the inequality

    PROPRULE_1_LHS 

    activity residuals of all other variables tighten bounds of single variable due to the left hand side of the inequality

    PROPRULE_1_RANGEDROW 

    fixed variables and gcd of all left variables tighten bounds of a single variable in this reanged row

    PROPRULE_INVALID 

    propagation was applied without a specific propagation rule

    PROPRULE_1 

    v_i = TRUE => r = TRUE

    PROPRULE_2 

    r = FALSE => v_i = FALSE for all i

    PROPRULE_3 

    v_i = FALSE for all i => r = FALSE

    PROPRULE_4 

    r = TRUE, v_i = FALSE for all i except j => v_j = TRUE

    PROPRULE_INVALID 

    propagation was applied without a specific propagation rule

    PROPRULE_1 

    left hand side and bounds on y -> lower bound on x

    PROPRULE_2 

    left hand side and upper bound on x -> bound on y

    PROPRULE_3 

    right hand side and bounds on y -> upper bound on x

    PROPRULE_4 

    right hand side and lower bound on x -> bound on y

    PROPRULE_0 

    all variables are fixed => fix integral variable

    PROPRULE_1 

    all except one variable fixed => fix remaining variable

    PROPRULE_INTLB 

    lower bound propagation of integral variable

    PROPRULE_INTUB 

    upper bound propagation of integral variable

    PROPRULE_INVALID 

    propagation was applied without a specific propagation rule

    Definition at line 165 of file cons_and.c.

    Function Documentation

    ◆ lockRounding()

    static SCIP_RETCODE lockRounding ( SCIP scip,
    SCIP_CONS cons,
    SCIP_VAR var 
    )
    static

    installs rounding locks for the given variable in the given AND-constraint

    Parameters
    scipSCIP data structure
    consconstraint data
    varvariable of constraint entry

    Definition at line 182 of file cons_and.c.

    References SCIP_CALL, SCIP_OKAY, SCIPlockVarCons(), and TRUE.

    Referenced by addCoef().

    ◆ unlockRounding()

    static SCIP_RETCODE unlockRounding ( SCIP scip,
    SCIP_CONS cons,
    SCIP_VAR var 
    )
    static

    removes rounding locks for the given variable in the given AND-constraint

    Parameters
    scipSCIP data structure
    consconstraint data
    varvariable of constraint entry

    Definition at line 196 of file cons_and.c.

    References SCIP_CALL, SCIP_OKAY, SCIPunlockVarCons(), and TRUE.

    Referenced by delCoefPos().

    ◆ conshdlrdataCreate()

    static SCIP_RETCODE conshdlrdataCreate ( SCIP scip,
    SCIP_CONSHDLRDATA **  conshdlrdata,
    SCIP_EVENTHDLR eventhdlr 
    )
    static

    creates constraint handler data

    Parameters
    scipSCIP data structure
    conshdlrdatapointer to store the constraint handler data
    eventhdlrevent handler

    Definition at line 210 of file cons_and.c.

    References NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocBlockMemory.

    Referenced by SCIPincludeConshdlrAnd().

    ◆ conshdlrdataFree()

    static void conshdlrdataFree ( SCIP scip,
    SCIP_CONSHDLRDATA **  conshdlrdata 
    )
    static

    frees constraint handler data

    Parameters
    scipSCIP data structure
    conshdlrdatapointer to the constraint handler data

    Definition at line 230 of file cons_and.c.

    References NULL, and SCIPfreeBlockMemory.

    Referenced by SCIP_DECL_CONSFREE().

    ◆ consdataCatchWatchedEvents()

    static SCIP_RETCODE consdataCatchWatchedEvents ( SCIP scip,
    SCIP_CONSDATA consdata,
    SCIP_EVENTHDLR eventhdlr,
    int  pos,
    int *  filterpos 
    )
    static

    catches events for the watched variable at given position

    Parameters
    scipSCIP data structure
    consdataAND-constraint data
    eventhdlrevent handler to call for the event processing
    posarray position of variable to catch bound change events for
    filterpospointer to store position of event filter entry

    Definition at line 243 of file cons_and.c.

    References NULL, SCIP_CALL, SCIP_EVENTTYPE_LBTIGHTENED, SCIP_EVENTTYPE_UBRELAXED, SCIP_OKAY, and SCIPcatchVarEvent().

    Referenced by consdataSwitchWatchedvars().

    ◆ consdataDropWatchedEvents()

    static SCIP_RETCODE consdataDropWatchedEvents ( SCIP scip,
    SCIP_CONSDATA consdata,
    SCIP_EVENTHDLR eventhdlr,
    int  pos,
    int  filterpos 
    )
    static

    drops events for the watched variable at given position

    Parameters
    scipSCIP data structure
    consdataAND-constraint data
    eventhdlrevent handler to call for the event processing
    posarray position of watched variable to drop bound change events for
    filterposposition of event filter entry

    Definition at line 267 of file cons_and.c.

    References NULL, SCIP_CALL, SCIP_EVENTTYPE_LBTIGHTENED, SCIP_EVENTTYPE_UBRELAXED, SCIP_OKAY, and SCIPdropVarEvent().

    Referenced by consdataSwitchWatchedvars().

    ◆ consdataCatchEvents()

    static SCIP_RETCODE consdataCatchEvents ( SCIP scip,
    SCIP_CONSDATA consdata,
    SCIP_EVENTHDLR eventhdlr 
    )
    static

    catches needed events on all variables of constraint, except the special ones for watched variables

    Parameters
    scipSCIP data structure
    consdataAND-constraint data
    eventhdlrevent handler to call for the event processing

    Definition at line 290 of file cons_and.c.

    References NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, and SCIPcatchVarEvent().

    Referenced by consdataCreate().

    ◆ consdataDropEvents()

    static SCIP_RETCODE consdataDropEvents ( SCIP scip,
    SCIP_CONSDATA consdata,
    SCIP_EVENTHDLR eventhdlr 
    )
    static

    drops events on all variables of constraint, except the special ones for watched variables

    Parameters
    scipSCIP data structure
    consdataAND-constraint data
    eventhdlrevent handler to call for the event processing

    Definition at line 316 of file cons_and.c.

    References NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, and SCIPdropVarEvent().

    Referenced by consdataFree().

    ◆ consdataSwitchWatchedvars()

    static SCIP_RETCODE consdataSwitchWatchedvars ( SCIP scip,
    SCIP_CONSDATA consdata,
    SCIP_EVENTHDLR eventhdlr,
    int  watchedvar1,
    int  watchedvar2 
    )
    static

    stores the given variable numbers as watched variables, and updates the event processing

    Parameters
    scipSCIP data structure
    consdataAND-constraint data
    eventhdlrevent handler to call for the event processing
    watchedvar1new first watched variable
    watchedvar2new second watched variable

    Definition at line 342 of file cons_and.c.

    References consdataCatchWatchedEvents(), consdataDropWatchedEvents(), NULL, SCIP_CALL, and SCIP_OKAY.

    Referenced by consdataFree(), delCoefPos(), and propagateCons().

    ◆ consdataEnsureVarsSize()

    static SCIP_RETCODE consdataEnsureVarsSize ( SCIP scip,
    SCIP_CONSDATA consdata,
    int  num 
    )
    static

    ensures, that the vars array can store at least num entries

    Parameters
    scipSCIP data structure
    consdatalinear constraint data
    numminimum number of entries to store

    Definition at line 402 of file cons_and.c.

    References NULL, SCIP_CALL, SCIP_OKAY, SCIPcalcMemGrowSize(), and SCIPreallocBlockMemoryArray.

    Referenced by addCoef().

    ◆ consdataCreate()

    static SCIP_RETCODE consdataCreate ( SCIP scip,
    SCIP_CONSDATA **  consdata,
    SCIP_EVENTHDLR eventhdlr,
    int  nvars,
    SCIP_VAR **  vars,
    SCIP_VAR resvar 
    )
    static

    creates constraint data for AND-constraint

    Parameters
    scipSCIP data structure
    consdatapointer to store the constraint data
    eventhdlrevent handler to call for the event processing
    nvarsnumber of variables in the AND-constraint
    varsvariables in AND-constraint
    resvarresultant variable

    Definition at line 426 of file cons_and.c.

    References consdataCatchEvents(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_EXITPRESOLVE, SCIPallocBlockMemory, SCIPcaptureVar(), SCIPduplicateBlockMemoryArray, SCIPgetStage(), SCIPgetTransformedVar(), SCIPgetTransformedVars(), SCIPisTransformed(), SCIPmarkDoNotMultaggrVar(), SCIPvarIsBinary(), and TRUE.

    Referenced by SCIP_DECL_CONSTRANS(), and SCIPcreateConsAnd().

    ◆ consdataFreeRows()

    static SCIP_RETCODE consdataFreeRows ( SCIP scip,
    SCIP_CONSDATA consdata 
    )
    static

    releases LP rows of constraint data and frees rows array

    Parameters
    scipSCIP data structure
    consdataconstraint data

    Definition at line 501 of file cons_and.c.

    References NULL, r, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemoryArray, and SCIPreleaseRow().

    Referenced by consdataFree(), and SCIP_DECL_CONSEXITSOL().

    ◆ consdataFree()

    static SCIP_RETCODE consdataFree ( SCIP scip,
    SCIP_CONSDATA **  consdata,
    SCIP_EVENTHDLR eventhdlr 
    )
    static

    frees constraint data for AND-constraint

    Parameters
    scipSCIP data structure
    consdatapointer to the constraint data
    eventhdlrevent handler to call for the event processing

    Definition at line 532 of file cons_and.c.

    References consdataDropEvents(), consdataFreeRows(), consdataSwitchWatchedvars(), NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArray, SCIPisTransformed(), SCIPreleaseNlRow(), and SCIPreleaseVar().

    Referenced by SCIP_DECL_CONSDELETE().

    ◆ consdataPrint()

    static SCIP_RETCODE consdataPrint ( SCIP scip,
    SCIP_CONSDATA consdata,
    FILE *  file 
    )
    static

    prints AND-constraint to file stream

    Parameters
    scipSCIP data structure
    consdataAND-constraint data
    fileoutput file (or NULL for standard output)

    Definition at line 582 of file cons_and.c.

    References NULL, SCIP_CALL, SCIP_OKAY, SCIPinfoMessage(), SCIPwriteVarName(), SCIPwriteVarsList(), and TRUE.

    Referenced by applyFixings(), and SCIP_DECL_CONSPRINT().

    ◆ addCoef()

    static SCIP_RETCODE addCoef ( SCIP scip,
    SCIP_CONS cons,
    SCIP_EVENTHDLR eventhdlr,
    SCIP_VAR var 
    )
    static

    adds coefficient to AND-constraint

    Parameters
    scipSCIP data structure
    conslinear constraint
    eventhdlrevent handler to call for the event processing
    varvariable to add to the constraint

    Definition at line 607 of file cons_and.c.

    References consdataEnsureVarsSize(), FALSE, lockRounding(), NULL, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcaptureVar(), SCIPcatchVarEvent(), SCIPconsGetData(), SCIPconsIsTransformed(), SCIPerrorMessage, SCIPgetTransformedVar(), SCIPvarIsTransformed(), and TRUE.

    Referenced by applyFixings().

    ◆ delCoefPos()

    static SCIP_RETCODE delCoefPos ( SCIP scip,
    SCIP_CONS cons,
    SCIP_EVENTHDLR eventhdlr,
    int  pos 
    )
    static

    deletes coefficient at given position from AND-constraint data

    Parameters
    scipSCIP data structure
    consAND-constraint
    eventhdlrevent handler to call for the event processing
    posposition of coefficient to delete

    Definition at line 667 of file cons_and.c.

    References consdataSwitchWatchedvars(), FALSE, NULL, SCIP_CALL, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsTransformed(), SCIPdropVarEvent(), SCIPreleaseVar(), SCIPvarIsTransformed(), TRUE, and unlockRounding().

    Referenced by applyFixings(), cliquePresolve(), dualPresolve(), and mergeMultiples().

    ◆ consdataSort()

    static void consdataSort ( SCIP_CONSDATA consdata)
    static

    sorts AND-constraint's variables by non-decreasing variable index

    Parameters
    consdataconstraint data

    Definition at line 730 of file cons_and.c.

    References NULL, SCIP_Bool, SCIPsortedvecFindPtr(), SCIPsortPtr(), SCIPvarCompare(), and TRUE.

    Referenced by detectRedundantConstraints(), preprocessConstraintPairs(), SCIP_DECL_HASHKEYEQ(), and SCIPsortAndCons().

    ◆ applyFixings()

    static SCIP_RETCODE applyFixings ( SCIP scip,
    SCIP_CONS cons,
    SCIP_EVENTHDLR eventhdlr,
    int *  nchgcoefs 
    )
    static

    deletes all one-fixed variables

    Parameters
    scipSCIP data structure
    consAND-constraint
    eventhdlrevent handler to call for the event processing
    nchgcoefspointer to add up the number of changed coefficients

    Definition at line 811 of file cons_and.c.

    References addCoef(), consdataPrint(), delCoefPos(), NULL, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_OKAY, SCIPcaptureVar(), SCIPcatchVarEvent(), SCIPconsGetData(), SCIPconsIsTransformed(), SCIPdebug, SCIPdebugMsg, SCIPdebugMsgPrint, SCIPdropVarEvent(), SCIPgetBinvarRepresentative(), SCIPisFeasEQ(), SCIPreleaseVar(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), SCIPvarIsActive(), SCIPvarIsBinary(), and TRUE.

    Referenced by dualPresolve(), and SCIP_DECL_CONSPRESOL().

    ◆ createRelaxation()

    static SCIP_RETCODE createRelaxation ( SCIP scip,
    SCIP_CONS cons 
    )
    static

    creates a linearization of the AND-constraint

    Parameters
    scipSCIP data structure
    consconstraint to check

    Definition at line 911 of file cons_and.c.

    References NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddVarsToRowSameCoef(), SCIPaddVarToRow(), SCIPallocBlockMemoryArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsRemovable(), SCIPcreateEmptyRowCons(), SCIPinfinity(), and SCIPsnprintf().

    Referenced by addRelaxation(), and separateCons().

    ◆ addRelaxation()

    static SCIP_RETCODE addRelaxation ( SCIP scip,
    SCIP_CONS cons,
    SCIP_Bool infeasible 
    )
    static

    adds linear relaxation of AND-constraint to the LP

    Parameters
    scipSCIP data structure
    consconstraint to check
    infeasiblepointer to store whether an infeasibility was detected

    Definition at line 958 of file cons_and.c.

    References createRelaxation(), FALSE, NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddRow(), SCIPaddVarsToRowSameCoef(), SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsRemovable(), SCIPcreateEmptyRowCons(), SCIPinfinity(), SCIProwIsInLP(), and SCIPsnprintf().

    Referenced by SCIP_DECL_CONSINITLP().

    ◆ addNlrow()

    static SCIP_RETCODE addNlrow ( SCIP scip,
    SCIP_CONS cons 
    )
    static

    ◆ checkCons()

    static SCIP_RETCODE checkCons ( SCIP scip,
    SCIP_CONS cons,
    SCIP_SOL sol,
    SCIP_Bool  checklprows,
    SCIP_Bool  printreason,
    SCIP_Bool violated 
    )
    static

    checks AND-constraint for feasibility of given solution: returns TRUE iff constraint is feasible

    Parameters
    scipSCIP data structure
    consconstraint to check
    solsolution to check, NULL for current solution
    checklprowsDo constraints represented by rows in the current LP have to be checked?
    printreasonShould the reason for the violation be printed?
    violatedpointer to store whether the constraint is violated

    Definition at line 1071 of file cons_and.c.

    References FALSE, MAX3, NULL, r, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPgetSolVal(), SCIPincConsAge(), SCIPinfoMessage(), SCIPisFeasPositive(), SCIPprintCons(), SCIPresetConsAge(), SCIProwIsInLP(), SCIPupdateSolConsViolation(), SCIPvarGetName(), and TRUE.

    Referenced by enforceConstraint(), SCIP_DECL_CONSCHECK(), and SCIP_DECL_CONSENFOPS().

    ◆ separateCons()

    static SCIP_RETCODE separateCons ( SCIP scip,
    SCIP_CONS cons,
    SCIP_SOL sol,
    SCIP_Bool separated,
    SCIP_Bool cutoff 
    )
    static

    separates given primal solution

    Parameters
    scipSCIP data structure
    consconstraint to check
    solprimal CIP solution, NULL for current LP solution
    separatedpointer to store whether a cut was found
    cutoffwhether a cutoff has been detected

    Definition at line 1183 of file cons_and.c.

    References createRelaxation(), FALSE, NULL, r, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddRow(), SCIPconsGetData(), SCIPgetRowSolFeasibility(), SCIPisFeasNegative(), SCIProwIsInLP(), and TRUE.

    Referenced by enforceConstraint(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().

    ◆ analyzeConflictOne()

    static SCIP_RETCODE analyzeConflictOne ( SCIP scip,
    SCIP_CONS cons,
    int  falsepos 
    )
    static

    analyzes conflicting TRUE assignment to resultant of given constraint, and adds conflict constraint to problem

    Parameters
    scipSCIP data structure
    consAND-constraint that detected the conflict
    falseposposition of operand that is fixed to FALSE

    Definition at line 1232 of file cons_and.c.

    References FALSE, NULL, SCIP_CALL, SCIP_CONFTYPE_PROPAGATION, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPaddConflictBinvar(), SCIPanalyzeConflictCons(), SCIPconsGetData(), SCIPgetStage(), SCIPinitConflictAnalysis(), SCIPinProbing(), SCIPisConflictAnalysisApplicable(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal().

    Referenced by consdataFixOperandsOne(), and consdataFixResultantZero().

    ◆ analyzeConflictZero()

    static SCIP_RETCODE analyzeConflictZero ( SCIP scip,
    SCIP_CONS cons 
    )
    static

    analyzes conflicting FALSE assignment to resultant of given constraint, and adds conflict constraint to problem

    Parameters
    scipSCIP data structure
    consor constraint that detected the conflict

    Definition at line 1264 of file cons_and.c.

    References FALSE, NULL, SCIP_CALL, SCIP_CONFTYPE_PROPAGATION, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPaddConflictBinvar(), SCIPanalyzeConflictCons(), SCIPconsGetData(), SCIPconsIsModifiable(), SCIPgetStage(), SCIPinitConflictAnalysis(), SCIPinProbing(), SCIPisConflictAnalysisApplicable(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal().

    Referenced by analyzeZeroResultant(), and propagateCons().

    ◆ consdataFixResultantZero()

    static SCIP_RETCODE consdataFixResultantZero ( SCIP scip,
    SCIP_CONS cons,
    SCIP_VAR resvar,
    int  pos,
    SCIP_Bool cutoff,
    int *  nfixedvars 
    )
    static

    tries to fix the given resultant to zero

    Parameters
    scipSCIP data structure
    consAND-constraint to be processed
    resvarresultant variable to fix to zero
    posposition of operand that is fixed to FALSE
    cutoffpointer to store TRUE, if the node can be cut off
    nfixedvarspointer to add up the number of found domain reductions

    Definition at line 1300 of file cons_and.c.

    References analyzeConflictOne(), FALSE, PROPRULE_1, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetName(), SCIPdebugMsg, SCIPdelConsLocal(), SCIPinferBinvarCons(), SCIPresetConsAge(), SCIPvarGetName(), and TRUE.

    Referenced by propagateCons().

    ◆ consdataFixOperandsOne()

    static SCIP_RETCODE consdataFixOperandsOne ( SCIP scip,
    SCIP_CONS cons,
    SCIP_VAR **  vars,
    int  nvars,
    SCIP_Bool cutoff,
    int *  nfixedvars 
    )
    static

    fix all operands to one

    Parameters
    scipSCIP data structure
    consAND-constraint to be processed
    varsarray of operands
    nvarsnumber of operands
    cutoffpointer to store TRUE, if the node can be cut off
    nfixedvarspointer to add up the number of found domain reductions

    Definition at line 1339 of file cons_and.c.

    References analyzeConflictOne(), PROPRULE_2, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetName(), SCIPdebugMsg, SCIPdelConsLocal(), SCIPinferBinvarCons(), SCIPresetConsAge(), SCIPvarGetName(), and TRUE.

    Referenced by propagateCons().

    ◆ consdataLinearize()

    static SCIP_RETCODE consdataLinearize ( SCIP scip,
    SCIP_CONS cons,
    SCIP_Bool cutoff,
    int *  nfixedvars,
    int *  nupgdconss 
    )
    static

    linearize AND-constraint due to a globally to zero fixed resultant; that is, creates, adds, and releases a logicor constraint and remove the AND-constraint globally.

    Since the resultant is fixed to zero the AND-constraint collapses to linear constraint of the form:

    • \(\sum_{i=0}^{n-1} v_i \leq n-1\)

    This can be transformed into a logicor constraint of the form

    • \(\sum_{i=0}^{n-1} ~v_i \geq 1\)
    Parameters
    scipSCIP data structure
    consAND-constraint to linearize
    cutoffpointer to store TRUE, if the node can be cut off
    nfixedvarspointer to add up the number of found domain reductions
    nupgdconsspointer to add up the number of upgraded constraints

    Definition at line 1393 of file cons_and.c.

    References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPaddConsUpgrade(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsLogicor(), SCIPcreateConsSetpack(), SCIPdebugPrintCons, SCIPdelCons(), SCIPfixVar(), SCIPfreeBufferArray, SCIPgetBinvarRepresentatives(), SCIPgetNegatedVar(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), and TRUE.

    Referenced by propagateCons().

    ◆ analyzeZeroResultant()

    static SCIP_RETCODE analyzeZeroResultant ( SCIP scip,
    SCIP_CONS cons,
    int  watchedvar1,
    int  watchedvar2,
    SCIP_Bool cutoff,
    int *  nfixedvars 
    )
    static

    the resultant is fixed to zero; in case all except one operator are fixed to TRUE the last operator has to fixed to FALSE

    Note
    consdata->watchedvars might not be the same to the watchedvar parameters, because the update was not yet done
    Parameters
    scipSCIP data structure
    consAND-constraint to be processed
    watchedvar1maybe last unfixed variable position
    watchedvar2second watched position
    cutoffpointer to store TRUE, if the node can be cut off
    nfixedvarspointer to add up the number of found domain reductions

    Definition at line 1502 of file cons_and.c.

    References analyzeConflictZero(), FALSE, NULL, PROPRULE_4, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPdelConsLocal(), SCIPinferBinvarCons(), SCIPresetConsAge(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE.

    Referenced by propagateCons().

    ◆ mergeMultiples()

    static SCIP_RETCODE mergeMultiples ( SCIP scip,
    SCIP_CONS cons,
    SCIP_EVENTHDLR eventhdlr,
    unsigned char **  entries,
    int *  nentries,
    int *  nfixedvars,
    int *  nchgcoefs,
    int *  ndelconss 
    )
    static

    replaces multiple occurrences of variables

    Parameters
    scipSCIP data structure
    consAND-constraint
    eventhdlrevent handler to call for the event processing
    entriesarray to store whether two positions in constraints represent the same variable
    nentriespointer for array size, if array will be to small it's corrected
    nfixedvarspointer to store number of fixed variables
    nchgcoefspointer to store number of changed coefficients
    ndelconsspointer to store number of deleted constraints

    Definition at line 1563 of file cons_and.c.

    References delCoefPos(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPdelCons(), SCIPfixVar(), SCIPgetNBinVars(), SCIPgetNImplVars(), SCIPgetNIntVars(), SCIPvarGetName(), SCIPvarGetNegatedVar(), SCIPvarGetProbindex(), SCIPvarGetType(), SCIPvarIsActive(), SCIPvarIsBinary(), SCIPvarIsImpliedIntegral(), SCIPvarIsNegated(), and TRUE.

    Referenced by dualPresolve(), and SCIP_DECL_CONSPRESOL().

    ◆ propagateCons()

    static SCIP_RETCODE propagateCons ( SCIP scip,
    SCIP_CONS cons,
    SCIP_EVENTHDLR eventhdlr,
    SCIP_Bool cutoff,
    int *  nfixedvars,
    int *  nupgdconss 
    )
    static

    propagates constraint with the following rules: (1) v_i = FALSE => r = FALSE (2) r = TRUE => v_i = TRUE for all i (3) v_i = TRUE for all i => r = TRUE (4) r = FALSE, v_i = TRUE for all i except j => v_j = FALSE

    additional if the resultant is fixed to zero during presolving or in the root node (globally), then the AND-constraint is collapsed to a linear (logicor) constraint of the form -> sum_{i=0}^{n-1} ~v_i >= 1

    Parameters
    scipSCIP data structure
    consAND-constraint to be processed
    eventhdlrevent handler to call for the event processing
    cutoffpointer to store TRUE, if the node can be cut off
    nfixedvarspointer to add up the number of found domain reductions
    nupgdconsspointer to add up the number of upgraded constraints

    Definition at line 1721 of file cons_and.c.

    References analyzeConflictZero(), analyzeZeroResultant(), consdataFixOperandsOne(), consdataFixResultantZero(), consdataLinearize(), consdataSwitchWatchedvars(), NULL, PROPRULE_3, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconsGetNUpgradeLocks(), SCIPconsIsModifiable(), SCIPcutoffNode(), SCIPdebugMsg, SCIPdelConsLocal(), SCIPgetDepth(), SCIPgetRootNode(), SCIPincConsAge(), SCIPinferBinvarCons(), SCIPinProbing(), SCIPinRepropagation(), SCIPisFeasEQ(), SCIPresetConsAge(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and TRUE.

    Referenced by dualPresolve(), SCIP_DECL_CONSPRESOL(), and SCIP_DECL_CONSPROP().

    ◆ resolvePropagation()

    static SCIP_RETCODE resolvePropagation ( SCIP scip,
    SCIP_CONS cons,
    SCIP_VAR infervar,
    PROPRULE  proprule,
    SCIP_BDCHGIDX bdchgidx,
    SCIP_RESULT result 
    )
    static

    resolves a conflict on the given variable by supplying the variables needed for applying the corresponding propagation rule (see propagateCons()): (1) v_i = FALSE => r = FALSE (2) r = TRUE => v_i = TRUE for all i (3) v_i = TRUE for all i => r = TRUE (4) r = FALSE, v_i = TRUE for all i except j => v_j = FALSE

    Parameters
    scipSCIP data structure
    consconstraint that inferred the bound change
    infervarvariable that was deduced
    proprulepropagation rule that deduced the value
    bdchgidxbound change index (time stamp of bound change), or NULL for current time
    resultpointer to store the result of the propagation conflict resolving call

    Definition at line 1926 of file cons_and.c.

    References FALSE, NULL, PROPRULE_1, PROPRULE_2, PROPRULE_3, PROPRULE_4, PROPRULE_INVALID, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_SUCCESS, SCIPaddConflictBinvar(), SCIPconsGetData(), SCIPconsGetName(), SCIPerrorMessage, SCIPgetVarLbAtIndex(), SCIPgetVarUbAtIndex(), and TRUE.

    Referenced by SCIP_DECL_CONSRESPROP().

    ◆ dualPresolve()

    static SCIP_RETCODE dualPresolve ( SCIP scip,
    SCIP_CONS **  conss,
    int  nconss,
    SCIP_EVENTHDLR eventhdlr,
    unsigned char **  entries,
    int *  nentries,
    SCIP_Bool cutoff,
    int *  nfixedvars,
    int *  naggrvars,
    int *  nchgcoefs,
    int *  ndelconss,
    int *  nupgdconss,
    int *  naddconss 
    )
    static

    perform dual presolving on AND-constraints

    Parameters
    scipSCIP data structure
    conssAND-constraints to perform dual presolving on
    nconssnumber of AND-constraints
    eventhdlrevent handler to call for the event processing
    entriesarray to store whether two positions in constraints represent the same variable
    nentriespointer for array size, if array will be to small it's corrected
    cutoffpointer to store TRUE, if the node can be cut off
    nfixedvarspointer to add up the number of found domain reductions
    naggrvarspointer to add up the number of aggregated variables
    nchgcoefspointer to add up the number of changed coefficients
    ndelconsspointer to add up the number of deleted constraints
    nupgdconsspointer to add up the number of upgraded constraints
    naddconsspointer to add up the number of added constraints

    Definition at line 2012 of file cons_and.c.

    References applyFixings(), delCoefPos(), FALSE, mergeMultiples(), NULL, propagateCons(), REALABS, SCIP_Bool, SCIP_CALL, SCIP_LOCKTYPE_MODEL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPaggregateVars(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsGetNUpgradeLocks(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsLinear(), SCIPdebugMsg, SCIPdelCons(), SCIPfixVar(), SCIPfreeBufferArray, SCIPgetNBinVars(), SCIPgetNImplVars(), SCIPinfinity(), SCIPisEQ(), SCIPisGE(), SCIPisGT(), SCIPisInfinity(), SCIPisLE(), SCIPisLT(), SCIPisNegative(), SCIPisPositive(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarGetAggregatedObj(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNLocksDownType(), SCIPvarGetNLocksUpType(), SCIPvarGetUbGlobal(), and TRUE.

    Referenced by SCIP_DECL_CONSPRESOL().

    ◆ cliquePresolve()

    static SCIP_RETCODE cliquePresolve ( SCIP scip,
    SCIP_CONS cons,
    SCIP_EVENTHDLR eventhdlr,
    SCIP_Bool cutoff,
    int *  nfixedvars,
    int *  naggrvars,
    int *  nchgcoefs,
    int *  ndelconss,
    int *  naddconss 
    )
    static
    1. check if at least two operands or one operand and the resultant are in one clique, if so, we can fix the resultant to zero and in the former case we can also delete this constraint but we need to extract the clique information as constraint

      x == AND(y, z) and clique(y,z) => x = 0, delete constraint and create y + z <= 1 x == AND(y, z) and clique(x,y) => x = 0

      special handled cases are:

      • if the resultant is a negation of an operand, in that case we fix the resultant to 0
      • if the resultant is equal to an operand, we will linearize this constraint by adding all necessary set-packing constraints like resultant + ~operand <= 1 and delete the old constraint

      x == AND(~x, y) => x = 0 x == AND(x, y) => add x + ~y <= 1 and delete the constraint

    2. check if one operand is in a clique with the negation of all other operands, this means we can aggregate this operand to the resultant

      r == AND(x,y,z) and clique(x,~y) and clique(x,~z) => r == x

    3. check if the resultant and the negations of all operands are in a clique

      r == AND(x,y) and clique(r, ~x,~y) => upgrade the constraint to a set-partitioning constraint r + ~x + ~y = 1

    Note
    We removed also fixed variables and propagate them, and if only one operand is remaining due to removal, we will aggregate the resultant with this operand
    Parameters
    scipSCIP data structure
    consconstraint to process
    eventhdlrevent handler to call for the event processing
    cutoffpointer to store TRUE, if the node can be cut off
    nfixedvarspointer to add up the number of found domain reductions
    naggrvarspointer to add up the number of aggregated variables
    nchgcoefspointer to add up the number of changed coefficients
    ndelconsspointer to add up the number of deleted constraints
    naddconsspointer to add up the number of added constraints

    Definition at line 2668 of file cons_and.c.

    References BMSclearMemoryArray, delCoefPos(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_VARSTATUS_FIXED, SCIPaddCons(), SCIPaddConsUpgrade(), SCIPaggregateVars(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsGetNUpgradeLocks(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsSetpack(), SCIPcreateConsSetpart(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPdelCons(), SCIPfixVar(), SCIPfreeBufferArray, SCIPgetNegatedVar(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNegatedVar(), SCIPvarGetProbvarBinary(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarsHaveCommonClique(), and TRUE.

    Referenced by SCIP_DECL_CONSPRESOL().

    ◆ SCIP_DECL_HASHGETKEY()

    static SCIP_DECL_HASHGETKEY ( hashGetKeyAndcons  )
    static

    gets the key of the given element

    Definition at line 3314 of file cons_and.c.

    ◆ SCIP_DECL_HASHKEYEQ()

    static SCIP_DECL_HASHKEYEQ ( hashKeyEqAndcons  )
    static

    returns TRUE iff both keys are equal; two constraints are equal if they have the same variables

    Definition at line 3322 of file cons_and.c.

    References consdataSort(), FALSE, NULL, SCIP_Bool, SCIPconsGetData(), SCIPvarCompare(), and TRUE.

    ◆ SCIP_DECL_HASHKEYVAL()

    static SCIP_DECL_HASHKEYVAL ( hashKeyValAndcons  )
    static

    returns the hash value of the key

    Definition at line 3368 of file cons_and.c.

    References NULL, SCIPconsGetData(), SCIPhashFour, and SCIPvarGetIndex().

    ◆ detectRedundantConstraints()

    static SCIP_RETCODE detectRedundantConstraints ( SCIP scip,
    BMS_BLKMEM blkmem,
    SCIP_CONS **  conss,
    int  nconss,
    int *  firstchange,
    SCIP_Bool cutoff,
    int *  naggrvars,
    int *  ndelconss 
    )
    static

    compares each constraint with all other constraints for possible redundancy and removes or changes constraint accordingly; in contrast to removeRedundantConstraints(), it uses a hash table

    Parameters
    scipSCIP data structure
    blkmemblock memory
    conssconstraint set
    nconssnumber of constraints in constraint set
    firstchangepointer to store first changed constraint
    cutoffpointer to store TRUE, if a cutoff was found
    naggrvarspointer to count number of aggregated variables
    ndelconsspointer to count number of deleted constraints

    Definition at line 3392 of file cons_and.c.

    References consdataSort(), FALSE, HASHSIZE_ANDCONS, MAX, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPaggregateVars(), SCIPconsGetData(), SCIPconsGetPos(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPdelCons(), SCIPdoNotAggr(), SCIPhashtableCreate(), SCIPhashtableFree(), SCIPhashtableInsert(), SCIPhashtableRetrieve(), SCIPupdateConsFlags(), SCIPvarCompare(), and TRUE.

    Referenced by SCIP_DECL_CONSPRESOL().

    ◆ enforceConstraint()

    static SCIP_RETCODE enforceConstraint ( SCIP scip,
    SCIP_CONSHDLR conshdlr,
    SCIP_CONS **  conss,
    int  nconss,
    SCIP_SOL sol,
    SCIP_RESULT result 
    )
    static

    helper function to enforce constraints

    Parameters
    scipSCIP data structure
    conshdlrconstraint handler
    conssconstraints to process
    nconssnumber of constraints
    solsolution to enforce (NULL for the LP solution)
    resultpointer to store the result of the enforcing call

    Definition at line 3509 of file cons_and.c.

    References checkCons(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_SEPARATED, SCIPconshdlrGetData(), and separateCons().

    Referenced by SCIP_DECL_CONSENFOLP(), and SCIP_DECL_CONSENFORELAX().

    ◆ preprocessConstraintPairs()

    static SCIP_RETCODE preprocessConstraintPairs ( SCIP scip,
    SCIP_CONS **  conss,
    int  firstchange,
    int  chkind,
    SCIP_Bool cutoff,
    int *  naggrvars,
    int *  nbdchgs,
    int *  ndelconss 
    )
    static

    compares constraint with all prior constraints for possible redundancy or aggregation, and removes or changes constraint accordingly

    Parameters
    scipSCIP data structure
    conssconstraint set
    firstchangefirst constraint that changed since last pair preprocessing round
    chkindindex of constraint to check against all prior indices upto startind
    cutoffpointer to store TRUE, if a cutoff was found
    naggrvarspointer to count number of aggregated variables
    nbdchgspointer to count the number of performed bound changes, or NULL
    ndelconsspointer to count number of deleted constraints

    Definition at line 3566 of file cons_and.c.

    References consdataSort(), FALSE, NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPABORT, SCIPaddVarImplication(), SCIPaggregateVars(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPdebugMsg, SCIPdelCons(), SCIPdoNotAggr(), SCIPerrorMessage, SCIPisStopped(), SCIPupdateConsFlags(), SCIPvarCompare(), SCIPvarGetName(), and TRUE.

    Referenced by SCIP_DECL_CONSPRESOL().

    ◆ addSymmetryInformation()

    static SCIP_RETCODE addSymmetryInformation ( SCIP scip,
    SYM_SYMTYPE  symtype,
    SCIP_CONS cons,
    SYM_GRAPH graph,
    SCIP_Bool success 
    )
    static

    adds symmetry information of constraint to a symmetry detection graph

    Parameters
    scipSCIP pointer
    symtypetype of symmetries that need to be added
    consconstraint
    graphsymmetry detection graph
    successpointer to store whether symmetry information could be added

    Definition at line 3766 of file cons_and.c.

    References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddSymgraphConsnode(), SCIPaddSymgraphEdge(), SCIPaddSymgraphOpnode(), SCIPaddSymgraphVarAggregation(), SCIPallocBufferArray, SCIPconsGetData(), SCIPfreeBufferArray, SCIPgetSymActiveVariables(), SCIPisTransformed(), SYM_CONSOPTYPE_AND, and TRUE.

    Referenced by SCIP_DECL_CONSGETPERMSYMGRAPH(), and SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH().

    ◆ SCIP_DECL_CONSHDLRCOPY()

    static SCIP_DECL_CONSHDLRCOPY ( conshdlrCopyAnd  )
    static

    copy method for constraint handler plugins (called when SCIP copies plugins)

    Definition at line 3839 of file cons_and.c.

    References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetName(), SCIPincludeConshdlrAnd(), and TRUE.

    ◆ SCIP_DECL_CONSFREE()

    static SCIP_DECL_CONSFREE ( consFreeAnd  )
    static

    destructor of constraint handler to free constraint handler data (called when SCIP is exiting)

    Definition at line 3855 of file cons_and.c.

    References conshdlrdataFree(), NULL, SCIP_OKAY, SCIPconshdlrGetData(), and SCIPconshdlrSetData().

    ◆ SCIP_DECL_CONSINITPRE()

    ◆ SCIP_DECL_CONSINITSOL()

    static SCIP_DECL_CONSINITSOL ( consInitsolAnd  )
    static

    solving process initialization method of constraint handler

    Definition at line 4156 of file cons_and.c.

    References addNlrow(), SCIP_CALL, SCIP_OKAY, and SCIPisNLPConstructed().

    ◆ SCIP_DECL_CONSEXITSOL()

    static SCIP_DECL_CONSEXITSOL ( consExitsolAnd  )
    static

    solving process deinitialization method of constraint handler (called before branch and bound process data is freed)

    Definition at line 4173 of file cons_and.c.

    References consdataFreeRows(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), and SCIPreleaseNlRow().

    ◆ SCIP_DECL_CONSDELETE()

    static SCIP_DECL_CONSDELETE ( consDeleteAnd  )
    static

    frees specific constraint data

    Definition at line 4198 of file cons_and.c.

    References consdataFree(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPconshdlrGetData().

    ◆ SCIP_DECL_CONSTRANS()

    ◆ SCIP_DECL_CONSINITLP()

    static SCIP_DECL_CONSINITLP ( consInitlpAnd  )
    static

    LP initialization method of constraint handler (called before the initial LP relaxation at a node is solved)

    Definition at line 4242 of file cons_and.c.

    References addRelaxation(), FALSE, SCIP_CALL, SCIP_OKAY, and SCIPconsIsInitial().

    ◆ SCIP_DECL_CONSSEPALP()

    static SCIP_DECL_CONSSEPALP ( consSepalpAnd  )
    static

    separation method of constraint handler for LP solutions

    Definition at line 4260 of file cons_and.c.

    References NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_SEPARATED, and separateCons().

    ◆ SCIP_DECL_CONSSEPASOL()

    static SCIP_DECL_CONSSEPASOL ( consSepasolAnd  )
    static

    separation method of constraint handler for arbitrary primal solutions

    Definition at line 4287 of file cons_and.c.

    References SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_SEPARATED, and separateCons().

    ◆ SCIP_DECL_CONSENFOLP()

    static SCIP_DECL_CONSENFOLP ( consEnfolpAnd  )
    static

    constraint enforcing method of constraint handler for LP solutions

    Definition at line 4314 of file cons_and.c.

    References enforceConstraint(), NULL, SCIP_CALL, and SCIP_OKAY.

    ◆ SCIP_DECL_CONSENFORELAX()

    static SCIP_DECL_CONSENFORELAX ( consEnforelaxAnd  )
    static

    constraint enforcing method of constraint handler for relaxation solutions

    Definition at line 4323 of file cons_and.c.

    References enforceConstraint(), SCIP_CALL, and SCIP_OKAY.

    ◆ SCIP_DECL_CONSENFOPS()

    static SCIP_DECL_CONSENFOPS ( consEnfopsAnd  )
    static

    constraint enforcing method of constraint handler for pseudo solutions

    Definition at line 4332 of file cons_and.c.

    References checkCons(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, and TRUE.

    ◆ SCIP_DECL_CONSCHECK()

    static SCIP_DECL_CONSCHECK ( consCheckAnd  )
    static

    feasibility check method of constraint handler and

    Definition at line 4354 of file cons_and.c.

    References checkCons(), SCIP_Bool, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, and SCIP_OKAY.

    ◆ SCIP_DECL_CONSPROP()

    static SCIP_DECL_CONSPROP ( consPropAnd  )
    static

    domain propagation method of constraint handler

    Definition at line 4373 of file cons_and.c.

    References FALSE, NULL, propagateCons(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, and SCIPconshdlrGetData().

    ◆ SCIP_DECL_CONSPRESOL()

    ◆ SCIP_DECL_CONSRESPROP()

    static SCIP_DECL_CONSRESPROP ( consRespropAnd  )
    static

    propagation conflict resolving method of constraint handler

    Definition at line 4637 of file cons_and.c.

    References resolvePropagation(), SCIP_CALL, and SCIP_OKAY.

    ◆ SCIP_DECL_CONSLOCK()

    static SCIP_DECL_CONSLOCK ( consLockAnd  )
    static

    variable rounding lock method of constraint handler

    Definition at line 4647 of file cons_and.c.

    References NULL, SCIP_CALL, SCIP_OKAY, SCIPaddVarLocksType(), and SCIPconsGetData().

    ◆ SCIP_DECL_CONSACTIVE()

    static SCIP_DECL_CONSACTIVE ( consActiveAnd  )
    static

    constraint activation notification method of constraint handler

    Definition at line 4669 of file cons_and.c.

    References addNlrow(), SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPgetStage(), and SCIPisNLPConstructed().

    ◆ SCIP_DECL_CONSDEACTIVE()

    static SCIP_DECL_CONSDEACTIVE ( consDeactiveAnd  )
    static

    constraint deactivation notification method of constraint handler

    Definition at line 4681 of file cons_and.c.

    References NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPconsGetData(), SCIPdelNlRow(), and SCIPgetStage().

    ◆ SCIP_DECL_CONSPRINT()

    static SCIP_DECL_CONSPRINT ( consPrintAnd  )
    static

    constraint display method of constraint handler

    Definition at line 4703 of file cons_and.c.

    References consdataPrint(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPconsGetData().

    ◆ SCIP_DECL_CONSCOPY()

    static SCIP_DECL_CONSCOPY ( consCopyAnd  )
    static

    ◆ SCIP_DECL_CONSPARSE()

    static SCIP_DECL_CONSPARSE ( consParseAnd  )
    static

    ◆ SCIP_DECL_CONSGETVARS()

    static SCIP_DECL_CONSGETVARS ( consGetVarsAnd  )
    static

    constraint method of constraint handler which returns the variables (if possible)

    Definition at line 4886 of file cons_and.c.

    References BMScopyMemoryArray, FALSE, NULL, SCIP_OKAY, SCIPconsGetData(), and TRUE.

    ◆ SCIP_DECL_CONSGETNVARS()

    static SCIP_DECL_CONSGETNVARS ( consGetNVarsAnd  )
    static

    constraint method of constraint handler which returns the number of variable (if possible)

    Definition at line 4907 of file cons_and.c.

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

    ◆ SCIP_DECL_CONSGETPERMSYMGRAPH()

    static SCIP_DECL_CONSGETPERMSYMGRAPH ( consGetPermsymGraphAnd  )
    static

    constraint handler method which returns the permutation symmetry detection graph of a constraint

    Definition at line 4924 of file cons_and.c.

    References addSymmetryInformation(), SCIP_CALL, SCIP_OKAY, and SYM_SYMTYPE_PERM.

    ◆ SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH()

    static SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH ( consGetSignedPermsymGraphAnd  )
    static

    constraint handler method which returns the signed permutation symmetry detection graph of a constraint

    Definition at line 4933 of file cons_and.c.

    References addSymmetryInformation(), SCIP_CALL, SCIP_OKAY, and SYM_SYMTYPE_SIGNPERM.

    ◆ SCIP_DECL_EVENTEXEC()

    static SCIP_DECL_EVENTEXEC ( eventExecAnd  )
    static

    Definition at line 4945 of file cons_and.c.

    References FALSE, NULL, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, and SCIPeventGetType().