scip_var.h
Go to the documentation of this file.
38 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
79 /** creates and captures problem variable; if variable is of integral type, fractional bounds are automatically rounded;
80 * an integer variable with bounds zero and one is automatically converted into a binary variable;
82 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will
83 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the
84 * original objective function value of variables created during the solving process has to be multiplied by
87 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
99 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar()
113 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data, or NULL */
114 SCIP_DECL_VARDELTRANS ((*vardeltrans)), /**< frees user data of transformed variable, or NULL */
119 /** creates and captures problem variable with optional callbacks and variable data set to NULL, which can be set
121 * SCIPvarSetDeltransData(), SCIPvarSetCopy(), and SCIPvarSetData(); sets variable flags initial=TRUE
122 * and removable = FALSE, which can be adjusted by using SCIPvarSetInitial() and SCIPvarSetRemovable(), resp.;
124 * an integer variable with bounds zero and one is automatically converted into a binary variable;
126 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will
127 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the
128 * original objective function value of variables created during the solving process has to be multiplied by
131 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
143 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar()
158 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
183 /** print the given list of variables to output stream separated by the given delimiter character;
185 * i. e. the variables x1, x2, ..., xn with given delimiter ',' are written as: <x1>, <x2>, ..., <xn>;
189 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
223 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
257 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
288 /** parses variable information (in cip format) out of a string; if the parsing process was successful a variable is
289 * created and captured; if variable is of integral type, fractional bounds are automatically rounded; an integer
292 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
313 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data */
320 /** parses the given string for a variable name and stores the variable in the corresponding pointer if such a variable
323 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
343 /** parse the given string as variable list (here ',' is the delimiter)) (<x1>, <x2>, ..., <xn>) (see
346 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
358 * @note The pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist.
360 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens
361 * except that the required size is stored in the corresponding integer; the reason for this approach is that we
362 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP
378 /** parse the given string as linear sum of variables and coefficients (c1 <x1> + c2 <x2> + ... + cn <xn>)
381 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
393 * @note The pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist.
395 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens
396 * except that the required size is stored in the corresponding integer; the reason for this approach is that we
397 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP
418 * monomialcoefs, monomialnvars, *nmonomials) short after SCIPparseVarsPolynomial to free all the
419 * allocated memory again. Do not keep the arrays created by SCIPparseVarsPolynomial around, since
422 * Parsing is stopped at the end of string (indicated by the \\0-character) or when no more monomials
425 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
452 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
476 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
498 /** decreases usage counter of variable, if the usage pointer reaches zero the variable gets freed
500 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
527 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
541 /** gets and captures transformed variable of a given variable; if the variable is not yet transformed,
544 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
565 * if a variable of the array is not yet transformed, a new transformed variable for this variable is created;
568 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
592 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
617 * it is possible to call this method with vars == transvars, but remember that variables that are not
620 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
644 /** gets negated variable x' = lb + ub - x of variable x; negated variable is created, if not yet existing
646 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
670 /** gets negated variables x' = lb + ub - x of variables x; negated variables are created, if not yet existing;
671 * in difference to \ref SCIPcreateVar, the negated variable must not be released (unless captured explicitly)
673 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
698 /** gets a binary variable that is equal to the given binary variable, and that is either active, fixed, or
701 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
721 SCIP_Bool* negated /**< pointer to store whether the negation of an active variable was returned */
724 /** gets binary variables that are equal to the given binary variables, and which are either active, fixed, or
727 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
748 SCIP_Bool* negated /**< array to store whether the negation of an active variable was returned */
751 /** flattens aggregation graph of multi-aggregated variable in order to avoid exponential recursion later on
753 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
771 /** Transforms a given linear sum of variables, that is a_1*x_1 + ... + a_n*x_n + c into a corresponding linear sum of
774 * If the number of needed active variables is greater than the available slots in the variable array, nothing happens
775 * except that the required size is stored in the corresponding variable (requiredsize). Otherwise, the active variable
778 * The reason for this approach is that we cannot reallocate memory, since we do not know how the memory has been
781 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
796 * @note The resulting linear sum is stored into the given variable array, scalar array, and constant. That means the
799 * @note That method can be used to convert a single variables into variable space of active variables. Therefore call
821 SCIP_Bool mergemultiples /**< should multiple occurrences of a var be replaced by a single coeff? */
826 * "scalar" will be 0.0 and the value of the sum will be stored in "constant"; a multi-aggregation
828 * is treated like an aggregation; if the multi-aggregation constant is infinite, "scalar" will be 0.0
830 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
853 /** return for given variables all their active counterparts; all active variables will be pairwise different
854 * @note It does not hold that the first output variable is the active variable for the first input variable.
856 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
890 * @note The return value of this method should be used carefully if the dual feasibility check was explictely disabled.
906 * @note The return value of this method should be used carefully if the dual feasibility check was explictely disabled.
929 /** returns lower bound of variable directly before or after the bound change given by the bound change index
940 /** returns upper bound of variable directly before or after the bound change given by the bound change index
951 /** returns lower or upper bound of variable directly before or after the bound change given by the bound change index
963 /** returns whether the binary variable was fixed at the time given by the bound change index */
988 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1005 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1019 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation;
1024 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1031 * @note This method incrementally updates the objective value of the relaxation solution. If the whole solution
1032 * should be updated, using SCIPsetRelaxSolVals() instead or calling SCIPclearRelaxSolVals() before setting
1043 /** sets the values of the given variables in the global relaxation solution and informs SCIP about the validity
1045 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation;
1048 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1065 /** sets the values of the variables in the global relaxation solution to the values in the given primal solution
1066 * and informs SCIP about the validity and whether the solution can be enforced via linear cuts;
1067 * the relaxation solution can be filled by the relaxation handlers and might be used by heuristics and for separation
1069 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1097 /** informs SCIP that the relaxation solution is valid and whether the relaxation can be enforced through linear cuts
1099 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1115 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1167 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1174 * @note if propagation is enabled, strong branching is not done directly on the LP, but probing nodes are created
1180 SCIP_Bool enablepropagation /**< should propagation be done before solving the strong branching LP? */
1185 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1199 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1211 SCIP_Bool idempotent, /**< should scip's state remain the same after the call (statistics, column states...), or should it be updated ? */
1214 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1218 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
1220 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
1230 * Before calling this method, the strong branching mode must have been activated by calling SCIPstartStrongbranch();
1231 * after strong branching was done for all candidate variables, the strong branching mode must be ended by
1232 * SCIPendStrongbranch(). Since this method applies domain propagation before strongbranching, propagation has to be be
1235 * Before solving the strong branching LP, domain propagation can be performed. The number of propagation rounds
1238 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1245 * @warning When using this method, LP banching candidates and solution values must be copied beforehand, because
1259 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1263 SCIP_Longint* ndomredsdown, /**< pointer to store the number of domain reductions down, or NULL */
1265 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
1267 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
1277 /** gets strong branching information on column variable x with integral LP solution value (val); that is, the down branch
1280 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1287 * @note If the integral LP solution value is the lower or upper bound of the variable, the corresponding branch will be
1295 SCIP_Bool idempotent, /**< should scip's state remain the same after the call (statistics, column states...), or should it be updated ? */
1298 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1302 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
1304 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
1314 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1329 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL;
1333 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */
1345 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1360 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL;
1364 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */
1374 /** get LP solution status of last strong branching call (currently only works for strong branching with propagation) */
1381 /** gets strong branching information on COLUMN variable of the last SCIPgetVarStrongbranch() call;
1382 * returns values of SCIP_INVALID, if strong branching was not yet called on the given variable;
1383 * keep in mind, that the returned old values may have nothing to do with the current LP solution
1385 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1398 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1402 SCIP_Real* solval, /**< stores LP solution value of variable at last strong branching call, or NULL */
1408 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1430 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1443 /** gets node number of the last node in current branch and bound run, where strong branching was used on the
1446 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1467 /** if strong branching was already applied on the variable at the current node, returns the number of LPs solved after
1471 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1494 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1517 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1545 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1572 /** add locks of type @p locktype of variable with respect to the lock status of the constraint and its negation;
1573 * this method should be called whenever the lock status of a variable in a constraint changes, for example if
1574 * the coefficient of the variable changed its sign or if the left or right hand sides of the constraint were
1577 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1600 /** remove locks of type @p locktype of variable with respect to the lock status of the constraint and its negation;
1601 * this method should be called whenever the lock status of a variable in a constraint changes, for example if
1602 * the coefficient of the variable changed its sign or if the left or right hand sides of the constraint were
1605 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1630 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1647 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1664 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) lower bound value;
1667 * @return adjusted lower bound for the given variable; the bound of the variable is not changed
1690 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) upper bound value;
1693 * @return adjusted upper bound for the given variable; the bound of the variable is not changed
1716 /** depending on SCIP's stage, changes lower bound of variable in the problem, in preprocessing, or in current node;
1717 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such
1720 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1723 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1732 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1741 /** depending on SCIP's stage, changes upper bound of variable in the problem, in preprocessing, or in current node;
1742 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such
1745 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1748 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1757 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1766 /** changes lower bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any
1767 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching
1770 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1783 /** changes upper bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any
1784 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching
1787 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1800 /** changes global lower bound of variable; if possible, adjust bound to integral value; also tightens the local bound,
1803 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1806 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1816 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1825 /** changes global upper bound of variable; if possible, adjust bound to integral value; also tightens the local bound,
1828 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1831 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1841 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1850 /** changes lazy lower bound of the variable, this is only possible if the variable is not in the LP yet
1853 * Setting a lazy lower bound has the consequence that for variables which lower bound equals the lazy lower bound,
1857 * @attention If the variable has a global lower bound below lazylb, then the global lower bound is tightened to
1860 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1877 /** changes lazy upper bound of the variable, this is only possible if the variable is not in the LP yet
1880 * Setting a lazy upper bound has the consequence that for variables which upper bound equals the lazy upper bound,
1884 * @attention If the variable has a global upper bound above lazyub, then the global upper bound is tightened to
1887 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1904 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
1905 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1906 * doesn't store any inference information in the bound change, such that in conflict analysis, this change
1909 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1912 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1920 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1932 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
1933 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1934 * doesn't store any inference information in the bound change, such that in conflict analysis, this change
1937 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1940 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1948 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1960 /** fixes variable in preprocessing or in the current node, if the new bound is tighter (w.r.t. bound strengthening
1961 * epsilon) than the current bound; if possible, adjusts bound to integral value; the given inference constraint is
1962 * stored, such that the conflict analysis is able to find out the reason for the deduction of the bound change
1964 * @note In presolving stage when not in probing mode the variable will be fixed directly, otherwise this method
1965 * changes first the lowerbound by calling SCIPinferVarLbCons and second the upperbound by calling
1968 * @note If SCIP is in presolving stage, it can happen that the internal variable array (which get be accessed via
1971 * @note During presolving, an integer variable which bound changes to {0,1} is upgraded to a binary variable.
1985 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
1986 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1987 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
1990 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1993 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2001 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2015 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
2016 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
2017 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
2020 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2023 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2031 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2045 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
2046 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason for the
2049 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2065 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
2068 /** fixes variable in preprocessing or in the current node, if the new bound is tighter (w.r.t. bound strengthening
2069 * epsilon) than the current bound; if possible, adjusts bound to integral value; the given inference constraint is
2070 * stored, such that the conflict analysis is able to find out the reason for the deduction of the bound change
2072 * @note In presolving stage when not in probing mode the variable will be fixed directly, otherwise this method
2073 * changes first the lowerbound by calling SCIPinferVarLbProp and second the upperbound by calling
2076 * @note If SCIP is in presolving stage, it can happen that the internal variable array (which get be accessed via
2079 * @note During presolving, an integer variable which bound changes to {0,1} is upgraded to a binary variable.
2093 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
2094 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
2095 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
2098 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2101 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2109 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2123 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
2124 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
2125 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
2128 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2131 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2139 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2153 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
2154 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason for the
2157 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2174 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
2177 /** changes global lower bound of variable in preprocessing or in the current node, if the new bound is tighter
2178 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value;
2181 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2184 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2193 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2205 /** changes global upper bound of variable in preprocessing or in the current node, if the new bound is tighter
2206 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value;
2209 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2212 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2221 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2233 /** for a multi-aggregated variable, returns the global lower bound computed by adding the global bounds from all aggregation variables
2235 * This global bound may be tighter than the one given by SCIPvarGetLbGlobal, since the latter is not updated if bounds of aggregation variables are changing
2236 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbGlobal.
2238 * @return the global lower bound computed by adding the global bounds from all aggregation variables
2246 /** for a multi-aggregated variable, returns the global upper bound computed by adding the global bounds from all aggregation variables
2248 * This global bound may be tighter than the one given by SCIPvarGetUbGlobal, since the latter is not updated if bounds of aggregation variables are changing
2249 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbGlobal.
2251 * @return the global upper bound computed by adding the global bounds from all aggregation variables
2259 /** for a multi-aggregated variable, returns the local lower bound computed by adding the local bounds from all aggregation variables
2261 * This local bound may be tighter than the one given by SCIPvarGetLbLocal, since the latter is not updated if bounds of aggregation variables are changing
2262 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbLocal.
2264 * @return the local lower bound computed by adding the global bounds from all aggregation variables
2272 /** for a multi-aggregated variable, returns the local upper bound computed by adding the local bounds from all aggregation variables
2274 * This local bound may be tighter than the one given by SCIPvarGetUbLocal, since the latter is not updated if bounds of aggregation variables are changing
2275 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbLocal.
2277 * @return the local upper bound computed by adding the global bounds from all aggregation variables
2285 /** for a multi-aggregated variable, gives the global lower bound computed by adding the global bounds from all
2286 * aggregation variables, this global bound may be tighter than the one given by SCIPvarGetLbGlobal, since the latter is
2297 /** for a multi-aggregated variable, gives the global upper bound computed by adding the global bounds from all
2298 * aggregation variables, this upper bound may be tighter than the one given by SCIPvarGetUbGlobal, since the latter is
2309 /** for a multi-aggregated variable, gives the local lower bound computed by adding the local bounds from all
2310 * aggregation variables, this lower bound may be tighter than the one given by SCIPvarGetLbLocal, since the latter is
2321 /** for a multi-aggregated variable, gives the local upper bound computed by adding the local bounds from all
2322 * aggregation variables, this upper bound may be tighter than the one given by SCIPvarGetUbLocal, since the latter is
2335 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
2339 #define SCIPcomputeVarLbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrLbGlobal(scip, var) : SCIPvarGetLbGlobal(var))
2340 #define SCIPcomputeVarUbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrUbGlobal(scip, var) : SCIPvarGetUbGlobal(var))
2341 #define SCIPcomputeVarLbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrLbLocal(scip, var) : SCIPvarGetLbLocal(var))
2342 #define SCIPcomputeVarUbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrUbLocal(scip, var) : SCIPvarGetUbLocal(var))
2346 /** returns solution value and index of variable lower bound that is closest to the variable's value in the given primal
2347 * solution or current LP solution if no primal solution is given; returns an index of -1 if no variable lower bound is
2350 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2364 /** returns solution value and index of variable upper bound that is closest to the variable's value in the given primal solution;
2365 * or current LP solution if no primal solution is given; returns an index of -1 if no variable upper bound is available
2367 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2381 /** informs variable x about a globally valid variable lower bound x >= b*z + d with integer variable z;
2387 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2407 /** informs variable x about a globally valid variable upper bound x <= b*z + d with integer variable z;
2413 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2432 /** informs binary variable x about a globally valid implication: x == 0 or x == 1 ==> y <= b or y >= b;
2435 * if the variable is already fixed to the given value, the implication is performed immediately;
2438 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2451 SCIP_Bool varfixing, /**< FALSE if y should be added in implications for x == 0, TRUE for x == 1 */
2460 /** adds a clique information to SCIP, stating that at most one of the given binary variables can be set to 1;
2463 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2476 SCIP_Bool* values, /**< values of the variables in the clique; NULL to use TRUE for all vars */
2483 /** calculates a partition of the given set of binary variables into cliques; takes into account independent clique components
2490 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
2492 * the first variable is always assigned to clique 0, and a variable can only be assigned to clique i if at least one of
2496 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2509 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
2512 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
2516 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
2518 * the first variable is always assigned to clique 0 and a variable can only be assigned to clique i if at least one of
2520 * for each clique with n_c variables at least n_c-1 variables can be set to TRUE in a feasible solution;
2522 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2535 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
2538 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
2541 /** force SCIP to clean up all cliques; cliques do not get automatically cleaned up after presolving. Use
2626 * if regardimplics is TRUE, both the cliques and the implications of the implication graph are regarded
2628 * @return TRUE, if there is a clique that contains both variable/clique pairs; FALSE, otherwise
2656 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2672 * If @p writenodeweights is true, only nodes corresponding to variables that have a fractional value and only edges
2682 /** Removes (irrelevant) variable from all its global structures, i.e. cliques, implications and variable bounds.
2704 /** sets the branch factor of the variable; this value can be used in the branching methods to scale the score
2705 * values of the variables; higher factor leads to a higher probability that this variable is chosen for branching
2707 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2729 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2751 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2771 /** sets the branch priority of the variable; variables with higher branch priority are always preferred to variables
2774 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2796 /** changes the branch priority of the variable to the given value, if it is larger than the current priority
2798 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2815 int branchpriority /**< new branch priority of the variable, if it is larger than current priority */
2820 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2840 /** sets the branch direction of the variable (-1: prefer downwards branch, 0: automatic selection, +1: prefer upwards
2843 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2860 SCIP_BRANCHDIR branchdirection /**< preferred branch direction of the variable (downwards, upwards, auto) */
2865 * @warning This type change might change the variable array returned from SCIPgetVars() and SCIPgetVarsData();
2867 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2875 * @note If SCIP is already beyond the SCIP_STAGE_PROBLEM and a original variable is passed, the variable type of the
2876 * corresponding transformed variable is changed; the type of the original variable does not change
2878 * @note If the type changes from a continuous variable to a non-continuous variable the bounds of the variable get
2890 /** in problem creation and solving stage, both bounds of the variable are set to the given value;
2891 * in presolving stage, the variable is converted into a fixed variable, and bounds are changed respectively;
2892 * conversion into a fixed variable changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
2895 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2909 SCIP_Bool* fixed /**< pointer to store whether the fixing was performed (variable was unfixed) */
2912 /** From a given equality a*x + b*y == c, aggregates one of the variables and removes it from the set of
2913 * active problem variables. This changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
2914 * and also renders the arrays returned from the SCIPvarGetImpl...() methods for the two variables invalid.
2915 * In the first step, the equality is transformed into an equality with active problem variables
2916 * a'*x' + b'*y' == c'. If x' == y', this leads to the detection of redundancy if a' == -b' and c' == 0,
2917 * of infeasibility, if a' == -b' and c' != 0, or to a variable fixing x' == c'/(a'+b') (and possible
2919 * In the second step, the variable to be aggregated is chosen among x' and y', prefering a less strict variable
2920 * type as aggregation variable (i.e. continuous variables are preferred over implicit integers, implicit integers
2921 * over integers, and integers over binaries). If none of the variables is continuous, it is tried to find an integer
2922 * aggregation (i.e. integral coefficients a'' and b'', such that a''*x' + b''*y' == c''). This can lead to
2923 * the detection of infeasibility (e.g. if c'' is fractional), or to a rejection of the aggregation (denoted by
2924 * aggregated == FALSE), if the resulting integer coefficients are too large and thus numerically instable.
2929 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
2931 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2949 /** converts variable into multi-aggregated variable; this changes the variable array returned from
2952 * @warning The integrality condition is not checked anymore on the multi-aggregated variable. You must not
2953 * multi-aggregate an integer variable without being sure, that integrality on the aggregation variables
2958 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
2960 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3014 * @note A reduction is called strong dual, if it may discard feasible/optimal solutions, but leaves at least one
3015 * optimal solution intact. Often such reductions are based on analyzing the objective function and variable
3034 * @note A reduction is called weak dual, if it may discard feasible solutions, but leaves at all optimal solutions
3035 * intact. Often such reductions are based on analyzing the objective function, reduced costs, and/or dual LPs.
3044 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3056 * @note There exists no "unmark" method since it has to be ensured that if a plugin requires that a variable is not
3067 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3079 * @note There exists no "unmark" method since it has to be ensured that if a plugin requires that a variable is not
3118 /** updates the pseudo costs of the given variable and the global pseudo costs after a change of "solvaldelta" in the
3119 * variable's solution value and resulting change of "objdelta" in the in the LP's objective value;
3122 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3222 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction
3224 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction
3242 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction,
3245 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction,
3264 /** get pseudo cost variance of the variable, either for entire solve or only for current branch and bound run
3285 /** calculates a confidence bound for this variable under the assumption of normally distributed pseudo costs
3287 * The confidence bound \f$ \theta \geq 0\f$ denotes the interval borders \f$ [X - \theta, \ X + \theta]\f$, which contains
3288 * the true pseudo costs of the variable, i.e., the expected value of the normal distribution, with a probability
3302 /** check if variable pseudo-costs have a significant difference in location. The significance depends on
3303 * the choice of \p clevel and on the kind of tested hypothesis. The one-sided hypothesis, which
3307 * This method is applied best if variable x has a better pseudo-cost score than y. The method hypothesizes that y were actually
3308 * better than x (despite the current information), meaning that y can be expected to yield branching
3309 * decisions as least as good as x in the long run. If the method returns TRUE, the current history information is
3310 * sufficient to safely rely on the alternative hypothesis that x yields indeed a better branching score (on average)
3315 * @note set \p onesided to FALSE if you are not sure which variable is better. The hypothesis tested then reads
3332 /** tests at a given confidence level whether the variable pseudo-costs only have a small probability to
3333 * exceed a \p threshold. This is useful to determine if past observations provide enough evidence
3334 * to skip an expensive strong-branching step if there is already a candidate that has been proven to yield an improvement
3337 * @note use \p clevel to adjust the level of confidence. For SCIP_CONFIDENCELEVEL_MIN, the method returns TRUE if
3340 * @see SCIP_Confidencelevel for a list of available levels. The used probability limits refer to the one-sided levels
3343 * @return TRUE if the variable pseudo-cost probabilistic model is likely to be smaller than \p threshold
3356 /** check if the current pseudo cost relative error in a direction violates the given threshold. The Relative
3567 /** returns the average number of inferences found after branching on the variable in given direction;
3568 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
3571 * @return the average number of inferences found after branching on the variable in given direction
3589 /** returns the average number of inferences found after branching on the variable in given direction in the current run;
3590 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
3593 * @return the average number of inferences found after branching on the variable in given direction in the current run
3630 /** returns the variable's average inference score value only using inferences of the current run
3632 * @return the variable's average inference score value only using inferences of the current run
3649 /** initializes the upwards and downwards pseudocosts, conflict scores, conflict lengths, inference scores, cutoff scores
3652 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3668 SCIP_Real downpscost, /**< value to which pseudocosts for downwards branching should be initialized */
3669 SCIP_Real uppscost, /**< value to which pseudocosts for upwards branching should be initialized */
3670 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */
3671 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */
3672 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */
3673 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */
3674 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */
3675 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */
3676 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */
3677 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */
3680 /** initializes the upwards and downwards conflict scores, conflict lengths, inference scores, cutoff scores of a
3683 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3700 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */
3701 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */
3702 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */
3703 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */
3704 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */
3705 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */
3706 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */
3707 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */
3710 /** returns the average number of cutoffs found after branching on the variable in given direction;
3711 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
3714 * @return the average number of cutoffs found after branching on the variable in given direction
3732 /** returns the average number of cutoffs found after branching on the variable in given direction in the current run;
3733 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
3736 * @return the average number of cutoffs found after branching on the variable in given direction in the current run
3792 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
3813 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
3816 * @return the variable's average inference/cutoff score value, only using inferences and cutoffs of the current run
3836 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
SCIP_RETCODE SCIPflattenVarAggregationGraph(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:1693
SCIP_RETCODE SCIPchgVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4943
Definition: struct_var.h:108
SCIP_Real SCIPgetVarAvgInferences(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9419
SCIP_Real SCIPgetVarAvgCutoffs(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9673
SCIP_RETCODE SCIPtightenVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5203
SCIP_Real SCIPgetVarUbAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:2128
SCIP_RETCODE SCIPsetRelaxSolValsSol(SCIP *scip, SCIP_RELAX *relax, SCIP_SOL *sol, SCIP_Bool includeslp)
Definition: scip_var.c:2489
SCIP_RETCODE SCIPgetBinvarRepresentative(SCIP *scip, SCIP_VAR *var, SCIP_VAR **repvar, SCIP_Bool *negated)
Definition: scip_var.c:1597
type definitions for miscellaneous datastructures
SCIP_Real SCIPgetVarAvgInferenceCutoffScore(SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight)
Definition: scip_var.c:9790
type definitions for implications, variable bounds, and cliques
SCIP_RETCODE SCIPaddVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real addobj)
Definition: scip_var.c:4562
Definition: struct_scip.h:68
SCIP_Real SCIPgetVarLbAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:1992
SCIP_RETCODE SCIPclearRelaxSolVals(SCIP *scip, SCIP_RELAX *relax)
Definition: scip_var.c:2364
SCIP_Real SCIPgetVarAvgInferencesCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9447
SCIP_Real SCIPgetVarConflictlengthScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9334
SCIP_Real SCIPgetVarPseudocostVal(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta)
Definition: scip_var.c:8814
SCIP_RETCODE SCIPgetNegatedVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **negvars)
Definition: scip_var.c:1560
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)
Definition: scip_var.c:4010
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)
Definition: scip_var.c:5895
SCIP_RETCODE SCIPchgVarLbNode(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4846
SCIP_Bool SCIPpscostThresholdProbabilityTest(SCIP *scip, SCIP_VAR *var, SCIP_Real frac, SCIP_Real threshold, SCIP_BRANCHDIR dir, SCIP_CONFIDENCELEVEL clevel)
Definition: scip_var.c:9059
Definition: struct_var.h:207
SCIP_RETCODE SCIPgetTransformedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar)
Definition: scip_var.c:1439
SCIP_RETCODE SCIPparseVarName(SCIP *scip, const char *str, SCIP_VAR **var, char **endptr)
Definition: scip_var.c:533
SCIP_RETCODE SCIPchgVarUbLazy(SCIP *scip, SCIP_VAR *var, SCIP_Real lazyub)
Definition: scip_var.c:5164
SCIP_Real SCIPgetVarPseudocostCountCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8950
SCIP_RETCODE SCIPsetRelaxSolVals(SCIP *scip, SCIP_RELAX *relax, int nvars, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Bool includeslp)
Definition: scip_var.c:2447
SCIP_Real SCIPgetVarPseudocostScoreCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real solval)
Definition: scip_var.c:9141
SCIP_Real SCIPadjustedVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real ub)
Definition: scip_var.c:4645
SCIP_Real SCIPgetVarVSIDS(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9177
SCIP_RETCODE SCIPinferBinvarProp(SCIP *scip, SCIP_VAR *var, SCIP_Bool fixedval, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:6120
SCIP_Real SCIPgetVarMultaggrUbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6591
SCIP_Real SCIPgetVarPseudocostValCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta)
Definition: scip_var.c:8842
SCIP_RETCODE SCIPaddVarLocks(SCIP *scip, SCIP_VAR *var, int nlocksdown, int nlocksup)
Definition: scip_var.c:4317
SCIP_Longint SCIPgetVarStrongbranchNode(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:4160
SCIP_RETCODE SCIPcreateVarBasic(SCIP *scip, SCIP_VAR **var, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype)
Definition: scip_var.c:194
SCIP_Real SCIPgetVarAvgCutoffsCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9701
SCIP_Real SCIPgetVarVSIDSCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9209
SCIP_Real SCIPgetVarAvgCutoffScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9758
public methods for problem variables
SCIP_Bool SCIPisVarPscostRelerrorReliable(SCIP *scip, SCIP_VAR *var, SCIP_Real threshold, SCIP_CONFIDENCELEVEL clevel)
Definition: scip_var.c:9078
SCIP_RETCODE SCIPtightenVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5320
SCIP_Bool SCIPgetVarWasFixedAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:2282
type definitions for return codes for SCIP methods
SCIP_Real SCIPgetVarPseudocost(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8868
SCIP_RETCODE SCIPchgVarUbNode(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4890
SCIP_RETCODE SCIPwriteVarsPolynomial(SCIP *scip, FILE *file, SCIP_VAR ***monomialvars, SCIP_Real **monomialexps, SCIP_Real *monomialcoefs, int *monomialnvars, int nmonomials, SCIP_Bool type)
Definition: scip_var.c:404
SCIP_Real SCIPgetVarMultaggrUbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6561
SCIP_RETCODE SCIPchgVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4676
SCIP_RETCODE SCIPaddVarVlb(SCIP *scip, SCIP_VAR *var, SCIP_VAR *vlbvar, SCIP_Real vlbcoef, SCIP_Real vlbconstant, SCIP_Bool *infeasible, int *nbdchgs)
Definition: scip_var.c:6661
SCIP_Real SCIPadjustedVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real lb)
Definition: scip_var.c:4613
SCIP_RETCODE SCIPaddVarVub(SCIP *scip, SCIP_VAR *var, SCIP_VAR *vubvar, SCIP_Real vubcoef, SCIP_Real vubconstant, SCIP_Bool *infeasible, int *nbdchgs)
Definition: scip_var.c:6720
SCIP_RETCODE SCIPchgVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:5032
SCIP_RETCODE SCIPgetTransformedVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars)
Definition: scip_var.c:1480
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)
Definition: scip_var.c:3662
Definition: struct_tree.h:141
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)
Definition: scip_var.c:704
SCIP_RETCODE SCIPgetVarClosestVlb(SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvlb, int *closestvlbidx)
Definition: scip_var.c:6609
SCIP_Real SCIPcomputeVarUbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6484
SCIP_Real SCIPcomputeVarLbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6505
SCIP_Bool SCIPisStrongbranchDownFirst(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:2655
SCIP_RETCODE SCIPtransformVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars)
Definition: scip_var.c:1389
SCIP_Real SCIPgetVarPseudocostScore(SCIP *scip, SCIP_VAR *var, SCIP_Real solval)
Definition: scip_var.c:9103
SCIP_RETCODE SCIPscaleVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real scale)
Definition: scip_var.c:7921
type definitions for LP management
Definition: struct_sol.h:73
SCIP_RETCODE SCIPtryStrongbranchLPSol(SCIP *scip, SCIP_Bool *foundsol, SCIP_Bool *cutoff)
Definition: scip_var.c:4079
SCIP_RETCODE SCIPaddVarLocksType(SCIP *scip, SCIP_VAR *var, SCIP_LOCKTYPE locktype, int nlocksdown, int nlocksup)
Definition: scip_var.c:4259
SCIP_RETCODE SCIPupdateVarPseudocost(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta, SCIP_Real objdelta, SCIP_Real weight)
Definition: scip_var.c:8780
SCIP_Real SCIPgetVarBdAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:2264
SCIP_RETCODE SCIPchgVarType(SCIP *scip, SCIP_VAR *var, SCIP_VARTYPE vartype, SCIP_Bool *infeasible)
Definition: scip_var.c:8176
SCIP_RETCODE SCIPaddClique(SCIP *scip, SCIP_VAR **vars, SCIP_Bool *values, int nvars, SCIP_Bool isequation, SCIP_Bool *infeasible, int *nbdchgs)
Definition: scip_var.c:6921
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)
Definition: scip_var.c:8535
SCIP_RETCODE SCIPparseVarsList(SCIP *scip, const char *str, SCIP_VAR **vars, int *nvars, int varssize, int *requiredsize, char **endptr, char delimiter, SCIP_Bool *success)
Definition: scip_var.c:610
SCIP_RETCODE SCIPmarkDoNotAggrVar(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:8682
SCIP_Real SCIPgetVarPseudocostVariance(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun)
Definition: scip_var.c:8976
SCIP_RETCODE SCIPgetBinvarRepresentatives(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **repvars, SCIP_Bool *negated)
Definition: scip_var.c:1644
Definition: struct_cons.h:46
SCIP_RETCODE SCIPchgVarLbLazy(SCIP *scip, SCIP_VAR *var, SCIP_Real lazylb)
Definition: scip_var.c:5123
SCIP_Bool SCIPdoNotMultaggrVar(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:8598
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)
Definition: scip_var.c:5432
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)
Definition: scip_var.c:9537
SCIP_RETCODE SCIPgetProbvarSum(SCIP *scip, SCIP_VAR **var, SCIP_Real *scalar, SCIP_Real *constant)
Definition: scip_var.c:1794
type definitions for SCIP's main datastructure
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)
Definition: scip_var.c:6780
SCIP_RETCODE SCIPunlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)
Definition: scip_var.c:4437
SCIP_RETCODE SCIPchgVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4766
SCIP_Real SCIPcalculatePscostConfidenceBound(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun, SCIP_CONFIDENCELEVEL clevel)
Definition: scip_var.c:8998
SCIP_RETCODE SCIPmarkDoNotMultaggrVar(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:8715
SCIP_RETCODE SCIPsetRelaxSolVal(SCIP *scip, SCIP_RELAX *relax, SCIP_VAR *var, SCIP_Real val)
Definition: scip_var.c:2414
SCIP_RETCODE SCIPtightenVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:6228
SCIP_Real SCIPgetVarConflictlengthScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9303
SCIP_Real SCIPgetVarAvgInferenceScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9504
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)
Definition: scip_var.c:9029
SCIP_Real SCIPcomputeVarUbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6526
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)
Definition: scip_var.c:6010
SCIP_RETCODE SCIPgetProbvarLinearSum(SCIP *scip, SCIP_VAR **vars, SCIP_Real *scalars, int *nvars, int varssize, SCIP_Real *constant, int *requiredsize, SCIP_Bool mergemultiples)
Definition: scip_var.c:1738
SCIP_Real SCIPgetVarAvgConflictlength(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9365
SCIP_RETCODE SCIPremoveVarFromGlobalStructures(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:7859
SCIP_RETCODE SCIPgetVarClosestVub(SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvub, int *closestvubidx)
Definition: scip_var.c:6632
type definitions for problem variables
SCIP_Longint SCIPgetVarStrongbranchLPAge(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:4194
type definitions for relaxators
SCIP_Real SCIPgetVarPseudocostCount(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8922
Definition: struct_prop.h:46
SCIP_Real SCIPgetVarPseudocostCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8896
SCIP_RETCODE SCIPchgVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real newobj)
Definition: scip_var.c:4513
SCIP_RETCODE SCIPstartStrongbranch(SCIP *scip, SCIP_Bool enablepropagation)
Definition: scip_var.c:2686
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)
Definition: scip_var.c:5826
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)
Definition: scip_var.c:3352
SCIP_RETCODE SCIPmarkRelaxSolValid(SCIP *scip, SCIP_RELAX *relax, SCIP_Bool includeslp)
Definition: scip_var.c:2557
SCIP_RETCODE SCIPcalcCliquePartition(SCIP *const scip, SCIP_VAR **const vars, int const nvars, int *const cliquepartition, int *const ncliques)
Definition: scip_var.c:7256
SCIP_RETCODE SCIPwriteCliqueGraph(SCIP *scip, const char *fname, SCIP_Bool writenodeweights)
Definition: scip_var.c:7710
SCIP_Real SCIPcomputeVarLbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6463
SCIP_Real SCIPgetVarAvgInferenceCutoffScoreCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight)
Definition: scip_var.c:9834
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)
Definition: scip_var.c:3884
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)
Definition: scip_var.c:114
type definitions for branch and bound tree
SCIP_RETCODE SCIPfixVar(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_Bool *infeasible, SCIP_Bool *fixed)
Definition: scip_var.c:8276
SCIP_RETCODE SCIPchgVarBranchPriority(SCIP *scip, SCIP_VAR *var, int branchpriority)
Definition: scip_var.c:7980
SCIP_RETCODE SCIPlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)
Definition: scip_var.c:4351
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)
Definition: scip_var.c:5501
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)
Definition: scip_var.c:2919
type definitions for storing primal CIP solutions
SCIP_Real SCIPgetVarMultaggrLbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6576
SCIP_RETCODE SCIPwriteVarsLinearsum(SCIP *scip, FILE *file, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_Bool type)
Definition: scip_var.c:343
type definitions for propagators
SCIP_Real SCIPgetVarAvgConflictlengthCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9391
SCIP_RETCODE SCIPaddVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real addfactor)
Definition: scip_var.c:7949
SCIP_LPSOLSTAT SCIPgetLastStrongbranchLPSolStat(SCIP *scip, SCIP_BRANCHDIR branchdir)
Definition: scip_var.c:3988
SCIP_RETCODE SCIPwriteVarsList(SCIP *scip, FILE *file, SCIP_VAR **vars, int nvars, SCIP_Bool type, char delimiter)
Definition: scip_var.c:292
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)
Definition: scip_var.c:4044
SCIP_Real SCIPgetVarImplRedcost(SCIP *scip, SCIP_VAR *var, SCIP_Bool varfixing)
Definition: scip_var.c:1909
void SCIPfreeParseVarsPolynomialData(SCIP *scip, SCIP_VAR ****monomialvars, SCIP_Real ***monomialexps, SCIP_Real **monomialcoefs, int **monomialnvars, int nmonomials)
Definition: scip_var.c:1158
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)
Definition: scip_var.c:5615
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)
Definition: scip_var.c:3773
SCIP_RETCODE SCIPgetVarSols(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_Real *vals)
Definition: scip_var.c:2327
SCIP_RETCODE SCIPaddVarBranchPriority(SCIP *scip, SCIP_VAR *var, int addpriority)
Definition: scip_var.c:8054
SCIP_RETCODE SCIPcalcNegatedCliquePartition(SCIP *const scip, SCIP_VAR **const vars, int const nvars, int *const cliquepartition, int *const ncliques)
Definition: scip_var.c:7475
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)
Definition: scip_var.c:8401
result codes for SCIP callback methods
type definitions for branching and inference history
SCIP_RETCODE SCIPchgVarBranchDirection(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR branchdirection)
Definition: scip_var.c:8085
SCIP_Bool SCIPhaveVarsCommonClique(SCIP *scip, SCIP_VAR *var1, SCIP_Bool value1, SCIP_VAR *var2, SCIP_Bool value2, SCIP_Bool regardimplics)
Definition: scip_var.c:7659
Definition: struct_implics.h:75
SCIP_RETCODE SCIPtransformVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar)
Definition: scip_var.c:1349
Definition: struct_relax.h:46
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)
Definition: scip_var.c:813
SCIP_Real SCIPgetVarConflictScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9272
SCIP_Real SCIPgetVarMultaggrLbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6546
SCIP_RETCODE SCIPtightenVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:6348
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)
Definition: scip_var.c:9608
common defines and data types used in all packages of SCIP
SCIP_RETCODE SCIPupdateVarBranchPriority(SCIP *scip, SCIP_VAR *var, int branchpriority)
Definition: scip_var.c:8021
Definition: objbenders.h:43
SCIP_RETCODE SCIPcleanupCliques(SCIP *scip, SCIP_Bool *infeasible)
Definition: scip_var.c:7532
SCIP_Real SCIPgetVarFarkasCoef(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:1954
SCIP_RETCODE SCIPwriteVarName(SCIP *scip, FILE *file, SCIP_VAR *var, SCIP_Bool type)
Definition: scip_var.c:230
int SCIPgetVarNStrongbranchs(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:4226
SCIP_RETCODE SCIPgetActiveVars(SCIP *scip, SCIP_VAR **vars, int *nvars, int varssize, int *requiredsize)
Definition: scip_var.c:1830
SCIP_Real SCIPgetVarAvgInferenceScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9473
SCIP_RETCODE SCIPinferBinvarCons(SCIP *scip, SCIP_VAR *var, SCIP_Bool fixedval, SCIP_CONS *infercons, int inferinfo, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5723
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)
Definition: scip_var.c:474
SCIP_RETCODE SCIPchgVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real branchfactor)
Definition: scip_var.c:7893
SCIP_RETCODE SCIPprintVar(SCIP *scip, SCIP_VAR *var, FILE *file)
Definition: scip_var.c:9885
SCIP_RETCODE SCIPgetNegatedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **negvar)
Definition: scip_var.c:1527
type definitions for constraints and constraint handlers
SCIP_Real SCIPgetVarConflictScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9241
SCIP_Real SCIPgetRelaxSolVal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:2603
SCIP_RETCODE SCIPchgVarName(SCIP *scip, SCIP_VAR *var, const char *name)
Definition: scip_var.c:1299
SCIP_Real SCIPgetVarAvgCutoffScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9727