scip_var.h
Go to the documentation of this file.
29 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
70 /** creates and captures problem variable; if variable is of integral type, fractional bounds are automatically rounded;
71 * an integer variable with bounds zero and one is automatically converted into a binary variable;
73 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will
74 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the
75 * original objective function value of variables created during the solving process has to be multiplied by
78 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
90 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar()
104 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data, or NULL */
105 SCIP_DECL_VARDELTRANS ((*vardeltrans)), /**< frees user data of transformed variable, or NULL */
110 /** creates and captures problem variable with optional callbacks and variable data set to NULL, which can be set
112 * SCIPvarSetDeltransData(), SCIPvarSetCopy(), and SCIPvarSetData(); sets variable flags initial=TRUE
113 * and removable = FALSE, which can be adjusted by using SCIPvarSetInitial() and SCIPvarSetRemovable(), resp.;
115 * an integer variable with bounds zero and one is automatically converted into a binary variable;
117 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will
118 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the
119 * original objective function value of variables created during the solving process has to be multiplied by
122 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
134 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar()
149 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
174 /** print the given list of variables to output stream separated by the given delimiter character;
176 * i. e. the variables x1, x2, ..., xn with given delimiter ',' are written as: <x1>, <x2>, ..., <xn>;
180 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
214 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
248 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
279 /** parses variable information (in cip format) out of a string; if the parsing process was successful a variable is
280 * created and captured; if variable is of integral type, fractional bounds are automatically rounded; an integer
283 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
304 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data */
311 /** parses the given string for a variable name and stores the variable in the corresponding pointer if such a variable
314 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
334 /** parse the given string as variable list (here ',' is the delimiter)) (<x1>, <x2>, ..., <xn>) (see
337 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
349 * @note The pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist.
351 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens
352 * except that the required size is stored in the corresponding integer; the reason for this approach is that we
353 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP
369 /** parse the given string as linear sum of variables and coefficients (c1 <x1> + c2 <x2> + ... + cn <xn>)
372 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
384 * @note The pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist.
386 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens
387 * except that the required size is stored in the corresponding integer; the reason for this approach is that we
388 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP
409 * monomialcoefs, monomialnvars, *nmonomials) short after SCIPparseVarsPolynomial to free all the
410 * allocated memory again. Do not keep the arrays created by SCIPparseVarsPolynomial around, since
413 * Parsing is stopped at the end of string (indicated by the \\0-character) or when no more monomials
416 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
443 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
467 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
489 /** decreases usage counter of variable, if the usage pointer reaches zero the variable gets freed
491 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
518 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
532 /** gets and captures transformed variable of a given variable; if the variable is not yet transformed,
535 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
556 * if a variable of the array is not yet transformed, a new transformed variable for this variable is created;
559 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
583 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
608 * it is possible to call this method with vars == transvars, but remember that variables that are not
611 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
635 /** gets negated variable x' = lb + ub - x of variable x; negated variable is created, if not yet existing
637 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
661 /** gets negated variables x' = lb + ub - x of variables x; negated variables are created, if not yet existing;
662 * in difference to \ref SCIPcreateVar, the negated variable must not be released (unless captured explicitly)
664 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
689 /** gets a binary variable that is equal to the given binary variable, and that is either active, fixed, or
692 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
712 SCIP_Bool* negated /**< pointer to store whether the negation of an active variable was returned */
715 /** gets binary variables that are equal to the given binary variables, and which are either active, fixed, or
718 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
739 SCIP_Bool* negated /**< array to store whether the negation of an active variable was returned */
742 /** flattens aggregation graph of multi-aggregated variable in order to avoid exponential recursion later on
744 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
762 /** Transforms a given linear sum of variables, that is a_1*x_1 + ... + a_n*x_n + c into a corresponding linear sum of
765 * If the number of needed active variables is greater than the available slots in the variable array, nothing happens
766 * except that the required size is stored in the corresponding variable (requiredsize). Otherwise, the active variable
769 * The reason for this approach is that we cannot reallocate memory, since we do not know how the memory has been
772 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
787 * @note The resulting linear sum is stored into the given variable array, scalar array, and constant. That means the
790 * @note That method can be used to convert a single variables into variable space of active variables. Therefore call
812 SCIP_Bool mergemultiples /**< should multiple occurrences of a var be replaced by a single coeff? */
817 * "scalar" will be 0.0 and the value of the sum will be stored in "constant"; a multi-aggregation
819 * is treated like an aggregation; if the multi-aggregation constant is infinite, "scalar" will be 0.0
821 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
844 /** return for given variables all their active counterparts; all active variables will be pairwise different
845 * @note It does not hold that the first output variable is the active variable for the first input variable.
847 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
881 * @note The return value of this method should be used carefully if the dual feasibility check was explictely disabled.
897 * @note The return value of this method should be used carefully if the dual feasibility check was explictely disabled.
920 /** returns lower bound of variable directly before or after the bound change given by the bound change index
931 /** returns upper bound of variable directly before or after the bound change given by the bound change index
942 /** returns lower or upper bound of variable directly before or after the bound change given by the bound change index
954 /** returns whether the binary variable was fixed at the time given by the bound change index */
979 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
996 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1010 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation;
1015 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1022 * @note This method incrementally updates the objective value of the relaxation solution. If the whole solution
1023 * should be updated, using SCIPsetRelaxSolVals() instead or calling SCIPclearRelaxSolVals() before setting
1034 /** sets the values of the given variables in the global relaxation solution and informs SCIP about the validity
1036 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation;
1039 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1056 /** sets the values of the variables in the global relaxation solution to the values in the given primal solution
1057 * and informs SCIP about the validity and whether the solution can be enforced via linear cuts;
1058 * the relaxation solution can be filled by the relaxation handlers and might be used by heuristics and for separation
1060 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1088 /** informs SCIP that the relaxation solution is valid and whether the relaxation can be enforced through linear cuts
1090 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1106 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1158 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1165 * @note if propagation is enabled, strong branching is not done directly on the LP, but probing nodes are created
1171 SCIP_Bool enablepropagation /**< should propagation be done before solving the strong branching LP? */
1176 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1190 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1202 SCIP_Bool idempotent, /**< should scip's state remain the same after the call (statistics, column states...), or should it be updated ? */
1205 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1209 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
1211 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
1221 * Before calling this method, the strong branching mode must have been activated by calling SCIPstartStrongbranch();
1222 * after strong branching was done for all candidate variables, the strong branching mode must be ended by
1223 * SCIPendStrongbranch(). Since this method applies domain propagation before strongbranching, propagation has to be be
1226 * Before solving the strong branching LP, domain propagation can be performed. The number of propagation rounds
1229 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1236 * @warning When using this method, LP banching candidates and solution values must be copied beforehand, because
1250 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1254 SCIP_Longint* ndomredsdown, /**< pointer to store the number of domain reductions down, or NULL */
1256 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
1258 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
1268 /** gets strong branching information on column variable x with integral LP solution value (val); that is, the down branch
1271 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1278 * @note If the integral LP solution value is the lower or upper bound of the variable, the corresponding branch will be
1286 SCIP_Bool idempotent, /**< should scip's state remain the same after the call (statistics, column states...), or should it be updated ? */
1289 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1293 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
1295 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
1305 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1320 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL;
1324 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */
1336 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1351 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL;
1355 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */
1365 /** get LP solution status of last strong branching call (currently only works for strong branching with propagation) */
1372 /** gets strong branching information on COLUMN variable of the last SCIPgetVarStrongbranch() call;
1373 * returns values of SCIP_INVALID, if strong branching was not yet called on the given variable;
1374 * keep in mind, that the returned old values may have nothing to do with the current LP solution
1376 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1389 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1393 SCIP_Real* solval, /**< stores LP solution value of variable at last strong branching call, or NULL */
1399 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1421 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1434 /** gets node number of the last node in current branch and bound run, where strong branching was used on the
1437 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1458 /** if strong branching was already applied on the variable at the current node, returns the number of LPs solved after
1462 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1485 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1508 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1536 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1563 /** add locks of type @p locktype of variable with respect to the lock status of the constraint and its negation;
1564 * this method should be called whenever the lock status of a variable in a constraint changes, for example if
1565 * the coefficient of the variable changed its sign or if the left or right hand sides of the constraint were
1568 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1591 /** remove locks of type @p locktype of variable with respect to the lock status of the constraint and its negation;
1592 * this method should be called whenever the lock status of a variable in a constraint changes, for example if
1593 * the coefficient of the variable changed its sign or if the left or right hand sides of the constraint were
1596 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1621 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1638 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1655 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) lower bound value;
1658 * @return adjusted lower bound for the given variable; the bound of the variable is not changed
1681 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) upper bound value;
1684 * @return adjusted upper bound for the given variable; the bound of the variable is not changed
1707 /** depending on SCIP's stage, changes lower bound of variable in the problem, in preprocessing, or in current node;
1708 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such
1711 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1714 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1723 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1732 /** depending on SCIP's stage, changes upper bound of variable in the problem, in preprocessing, or in current node;
1733 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such
1736 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1739 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1748 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1757 /** changes lower bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any
1758 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching
1761 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1774 /** changes upper bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any
1775 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching
1778 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1791 /** changes global lower bound of variable; if possible, adjust bound to integral value; also tightens the local bound,
1794 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1797 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1807 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1816 /** changes global upper bound of variable; if possible, adjust bound to integral value; also tightens the local bound,
1819 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1822 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1832 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1841 /** changes lazy lower bound of the variable, this is only possible if the variable is not in the LP yet
1844 * Setting a lazy lower bound has the consequence that for variables which lower bound equals the lazy lower bound,
1848 * @attention If the variable has a global lower bound below lazylb, then the global lower bound is tightened to
1851 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1868 /** changes lazy upper bound of the variable, this is only possible if the variable is not in the LP yet
1871 * Setting a lazy upper bound has the consequence that for variables which upper bound equals the lazy upper bound,
1875 * @attention If the variable has a global upper bound above lazyub, then the global upper bound is tightened to
1878 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1895 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
1896 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1897 * doesn't store any inference information in the bound change, such that in conflict analysis, this change
1900 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1903 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1911 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1923 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
1924 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1925 * doesn't store any inference information in the bound change, such that in conflict analysis, this change
1928 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1931 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1939 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1951 /** fixes variable in preprocessing or in the current node, if the new bound is tighter (w.r.t. bound strengthening
1952 * epsilon) than the current bound; if possible, adjusts bound to integral value; the given inference constraint is
1953 * stored, such that the conflict analysis is able to find out the reason for the deduction of the bound change
1955 * @note In presolving stage when not in probing mode the variable will be fixed directly, otherwise this method
1956 * changes first the lowerbound by calling SCIPinferVarLbCons and second the upperbound by calling
1959 * @note If SCIP is in presolving stage, it can happen that the internal variable array (which get be accessed via
1962 * @note During presolving, an integer variable which bound changes to {0,1} is upgraded to a binary variable.
1976 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
1977 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1978 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
1981 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1984 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1992 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2006 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
2007 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
2008 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
2011 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2014 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2022 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2036 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
2037 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason for the
2040 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2056 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
2059 /** fixes variable in preprocessing or in the current node, if the new bound is tighter (w.r.t. bound strengthening
2060 * epsilon) than the current bound; if possible, adjusts bound to integral value; the given inference constraint is
2061 * stored, such that the conflict analysis is able to find out the reason for the deduction of the bound change
2063 * @note In presolving stage when not in probing mode the variable will be fixed directly, otherwise this method
2064 * changes first the lowerbound by calling SCIPinferVarLbProp and second the upperbound by calling
2067 * @note If SCIP is in presolving stage, it can happen that the internal variable array (which get be accessed via
2070 * @note During presolving, an integer variable which bound changes to {0,1} is upgraded to a binary variable.
2084 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
2085 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
2086 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
2089 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2092 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2100 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2114 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
2115 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
2116 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
2119 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2122 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2130 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2144 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
2145 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason for the
2148 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2165 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
2168 /** changes global lower bound of variable in preprocessing or in the current node, if the new bound is tighter
2169 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value;
2172 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2175 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2184 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2196 /** changes global upper bound of variable in preprocessing or in the current node, if the new bound is tighter
2197 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value;
2200 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2203 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2212 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2224 /** for a multi-aggregated variable, returns the global lower bound computed by adding the global bounds from all aggregation variables
2226 * 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
2227 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbGlobal.
2229 * @return the global lower bound computed by adding the global bounds from all aggregation variables
2237 /** for a multi-aggregated variable, returns the global upper bound computed by adding the global bounds from all aggregation variables
2239 * 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
2240 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbGlobal.
2242 * @return the global upper bound computed by adding the global bounds from all aggregation variables
2250 /** for a multi-aggregated variable, returns the local lower bound computed by adding the local bounds from all aggregation variables
2252 * 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
2253 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbLocal.
2255 * @return the local lower bound computed by adding the global bounds from all aggregation variables
2263 /** for a multi-aggregated variable, returns the local upper bound computed by adding the local bounds from all aggregation variables
2265 * 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
2266 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbLocal.
2268 * @return the local upper bound computed by adding the global bounds from all aggregation variables
2276 /** for a multi-aggregated variable, gives the global lower bound computed by adding the global bounds from all
2277 * aggregation variables, this global bound may be tighter than the one given by SCIPvarGetLbGlobal, since the latter is
2288 /** for a multi-aggregated variable, gives the global upper bound computed by adding the global bounds from all
2289 * aggregation variables, this upper bound may be tighter than the one given by SCIPvarGetUbGlobal, since the latter is
2300 /** for a multi-aggregated variable, gives the local lower bound computed by adding the local bounds from all
2301 * aggregation variables, this lower bound may be tighter than the one given by SCIPvarGetLbLocal, since the latter is
2312 /** for a multi-aggregated variable, gives the local upper bound computed by adding the local bounds from all
2313 * aggregation variables, this upper bound may be tighter than the one given by SCIPvarGetUbLocal, since the latter is
2326 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
2330 #define SCIPcomputeVarLbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrLbGlobal(scip, var) : SCIPvarGetLbGlobal(var))
2331 #define SCIPcomputeVarUbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrUbGlobal(scip, var) : SCIPvarGetUbGlobal(var))
2332 #define SCIPcomputeVarLbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrLbLocal(scip, var) : SCIPvarGetLbLocal(var))
2333 #define SCIPcomputeVarUbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrUbLocal(scip, var) : SCIPvarGetUbLocal(var))
2337 /** returns solution value and index of variable lower bound that is closest to the variable's value in the given primal
2338 * solution or current LP solution if no primal solution is given; returns an index of -1 if no variable lower bound is
2341 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2355 /** returns solution value and index of variable upper bound that is closest to the variable's value in the given primal solution;
2356 * or current LP solution if no primal solution is given; returns an index of -1 if no variable upper bound is available
2358 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2372 /** informs variable x about a globally valid variable lower bound x >= b*z + d with integer variable z;
2378 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2398 /** informs variable x about a globally valid variable upper bound x <= b*z + d with integer variable z;
2404 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2423 /** informs binary variable x about a globally valid implication: x == 0 or x == 1 ==> y <= b or y >= b;
2426 * if the variable is already fixed to the given value, the implication is performed immediately;
2429 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2442 SCIP_Bool varfixing, /**< FALSE if y should be added in implications for x == 0, TRUE for x == 1 */
2451 /** adds a clique information to SCIP, stating that at most one of the given binary variables can be set to 1;
2454 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2467 SCIP_Bool* values, /**< values of the variables in the clique; NULL to use TRUE for all vars */
2474 /** calculates a partition of the given set of binary variables into cliques; takes into account independent clique components
2481 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
2483 * the first variable is always assigned to clique 0, and a variable can only be assigned to clique i if at least one of
2487 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2500 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
2503 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
2507 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
2509 * the first variable is always assigned to clique 0 and a variable can only be assigned to clique i if at least one of
2511 * for each clique with n_c variables at least n_c-1 variables can be set to TRUE in a feasible solution;
2513 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2526 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
2529 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
2532 /** force SCIP to clean up all cliques; cliques do not get automatically cleaned up after presolving. Use
2617 * if regardimplics is TRUE, both the cliques and the implications of the implication graph are regarded
2619 * @return TRUE, if there is a clique that contains both variable/clique pairs; FALSE, otherwise
2647 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2663 * If @p writenodeweights is true, only nodes corresponding to variables that have a fractional value and only edges
2673 /** Removes (irrelevant) variable from all its global structures, i.e. cliques, implications and variable bounds.
2695 /** sets the branch factor of the variable; this value can be used in the branching methods to scale the score
2696 * values of the variables; higher factor leads to a higher probability that this variable is chosen for branching
2698 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2720 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2742 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2762 /** sets the branch priority of the variable; variables with higher branch priority are always preferred to variables
2765 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2787 /** changes the branch priority of the variable to the given value, if it is larger than the current priority
2789 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2806 int branchpriority /**< new branch priority of the variable, if it is larger than current priority */
2811 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2831 /** sets the branch direction of the variable (-1: prefer downwards branch, 0: automatic selection, +1: prefer upwards
2834 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2851 SCIP_BRANCHDIR branchdirection /**< preferred branch direction of the variable (downwards, upwards, auto) */
2856 * @warning This type change might change the variable array returned from SCIPgetVars() and SCIPgetVarsData();
2858 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2866 * @note If SCIP is already beyond the SCIP_STAGE_PROBLEM and a original variable is passed, the variable type of the
2867 * corresponding transformed variable is changed; the type of the original variable does not change
2869 * @note If the type changes from a continuous variable to a non-continuous variable the bounds of the variable get
2881 /** in problem creation and solving stage, both bounds of the variable are set to the given value;
2882 * in presolving stage, the variable is converted into a fixed variable, and bounds are changed respectively;
2883 * conversion into a fixed variable changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
2886 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2900 SCIP_Bool* fixed /**< pointer to store whether the fixing was performed (variable was unfixed) */
2903 /** From a given equality a*x + b*y == c, aggregates one of the variables and removes it from the set of
2904 * active problem variables. This changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
2905 * and also renders the arrays returned from the SCIPvarGetImpl...() methods for the two variables invalid.
2906 * In the first step, the equality is transformed into an equality with active problem variables
2907 * a'*x' + b'*y' == c'. If x' == y', this leads to the detection of redundancy if a' == -b' and c' == 0,
2908 * of infeasibility, if a' == -b' and c' != 0, or to a variable fixing x' == c'/(a'+b') (and possible
2910 * In the second step, the variable to be aggregated is chosen among x' and y', prefering a less strict variable
2911 * type as aggregation variable (i.e. continuous variables are preferred over implicit integers, implicit integers
2912 * over integers, and integers over binaries). If none of the variables is continuous, it is tried to find an integer
2913 * aggregation (i.e. integral coefficients a'' and b'', such that a''*x' + b''*y' == c''). This can lead to
2914 * the detection of infeasibility (e.g. if c'' is fractional), or to a rejection of the aggregation (denoted by
2915 * aggregated == FALSE), if the resulting integer coefficients are too large and thus numerically instable.
2920 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
2922 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2940 /** converts variable into multi-aggregated variable; this changes the variable array returned from
2943 * @warning The integrality condition is not checked anymore on the multi-aggregated variable. You must not
2944 * multi-aggregate an integer variable without being sure, that integrality on the aggregation variables
2949 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
2951 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3005 * @note A reduction is called strong dual, if it may discard feasible/optimal solutions, but leaves at least one
3006 * optimal solution intact. Often such reductions are based on analyzing the objective function and variable
3025 * @note A reduction is called weak dual, if it may discard feasible solutions, but leaves at all optimal solutions
3026 * intact. Often such reductions are based on analyzing the objective function, reduced costs, and/or dual LPs.
3035 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3047 * @note There exists no "unmark" method since it has to be ensured that if a plugin requires that a variable is not
3058 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3070 * @note There exists no "unmark" method since it has to be ensured that if a plugin requires that a variable is not
3109 /** updates the pseudo costs of the given variable and the global pseudo costs after a change of "solvaldelta" in the
3110 * variable's solution value and resulting change of "objdelta" in the in the LP's objective value;
3113 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3213 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction
3215 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction
3233 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction,
3236 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction,
3255 /** get pseudo cost variance of the variable, either for entire solve or only for current branch and bound run
3276 /** calculates a confidence bound for this variable under the assumption of normally distributed pseudo costs
3278 * The confidence bound \f$ \theta \geq 0\f$ denotes the interval borders \f$ [X - \theta, \ X + \theta]\f$, which contains
3279 * the true pseudo costs of the variable, i.e., the expected value of the normal distribution, with a probability
3293 /** check if variable pseudo-costs have a significant difference in location. The significance depends on
3294 * the choice of \p clevel and on the kind of tested hypothesis. The one-sided hypothesis, which
3298 * This method is applied best if variable x has a better pseudo-cost score than y. The method hypothesizes that y were actually
3299 * better than x (despite the current information), meaning that y can be expected to yield branching
3300 * decisions as least as good as x in the long run. If the method returns TRUE, the current history information is
3301 * sufficient to safely rely on the alternative hypothesis that x yields indeed a better branching score (on average)
3306 * @note set \p onesided to FALSE if you are not sure which variable is better. The hypothesis tested then reads
3323 /** tests at a given confidence level whether the variable pseudo-costs only have a small probability to
3324 * exceed a \p threshold. This is useful to determine if past observations provide enough evidence
3325 * to skip an expensive strong-branching step if there is already a candidate that has been proven to yield an improvement
3328 * @note use \p clevel to adjust the level of confidence. For SCIP_CONFIDENCELEVEL_MIN, the method returns TRUE if
3331 * @see SCIP_Confidencelevel for a list of available levels. The used probability limits refer to the one-sided levels
3334 * @return TRUE if the variable pseudo-cost probabilistic model is likely to be smaller than \p threshold
3347 /** check if the current pseudo cost relative error in a direction violates the given threshold. The Relative
3558 /** returns the average number of inferences found after branching on the variable in given direction;
3559 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
3562 * @return the average number of inferences found after branching on the variable in given direction
3580 /** returns the average number of inferences found after branching on the variable in given direction in the current run;
3581 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
3584 * @return the average number of inferences found after branching on the variable in given direction in the current run
3621 /** returns the variable's average inference score value only using inferences of the current run
3623 * @return the variable's average inference score value only using inferences of the current run
3640 /** initializes the upwards and downwards pseudocosts, conflict scores, conflict lengths, inference scores, cutoff scores
3643 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3659 SCIP_Real downpscost, /**< value to which pseudocosts for downwards branching should be initialized */
3660 SCIP_Real uppscost, /**< value to which pseudocosts for upwards branching should be initialized */
3661 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */
3662 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */
3663 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */
3664 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */
3665 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */
3666 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */
3667 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */
3668 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */
3671 /** initializes the upwards and downwards conflict scores, conflict lengths, inference scores, cutoff scores of a
3674 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3691 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */
3692 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */
3693 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */
3694 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */
3695 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */
3696 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */
3697 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */
3698 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */
3701 /** returns the average number of cutoffs found after branching on the variable in given direction;
3702 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
3705 * @return the average number of cutoffs found after branching on the variable in given direction
3723 /** returns the average number of cutoffs found after branching on the variable in given direction in the current run;
3724 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
3727 * @return the average number of cutoffs found after branching on the variable in given direction in the current run
3783 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
3804 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
3807 * @return the variable's average inference/cutoff score value, only using inferences and cutoffs of the current run
3827 * @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:1690
SCIP_RETCODE SCIPchgVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4940
Definition: struct_var.h:99
SCIP_Real SCIPgetVarAvgInferences(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9416
SCIP_Real SCIPgetVarAvgCutoffs(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9670
SCIP_RETCODE SCIPtightenVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5200
SCIP_Real SCIPgetVarUbAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:2125
SCIP_RETCODE SCIPsetRelaxSolValsSol(SCIP *scip, SCIP_RELAX *relax, SCIP_SOL *sol, SCIP_Bool includeslp)
Definition: scip_var.c:2486
SCIP_RETCODE SCIPgetBinvarRepresentative(SCIP *scip, SCIP_VAR *var, SCIP_VAR **repvar, SCIP_Bool *negated)
Definition: scip_var.c:1594
type definitions for miscellaneous datastructures
SCIP_Real SCIPgetVarAvgInferenceCutoffScore(SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight)
Definition: scip_var.c:9787
type definitions for implications, variable bounds, and cliques
SCIP_RETCODE SCIPaddVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real addobj)
Definition: scip_var.c:4559
Definition: struct_scip.h:59
SCIP_Real SCIPgetVarLbAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:1989
SCIP_RETCODE SCIPclearRelaxSolVals(SCIP *scip, SCIP_RELAX *relax)
Definition: scip_var.c:2361
SCIP_Real SCIPgetVarAvgInferencesCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9444
SCIP_Real SCIPgetVarConflictlengthScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9331
SCIP_Real SCIPgetVarPseudocostVal(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta)
Definition: scip_var.c:8811
SCIP_RETCODE SCIPgetNegatedVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **negvars)
Definition: scip_var.c:1557
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:4007
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:5892
SCIP_RETCODE SCIPchgVarLbNode(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4843
SCIP_Bool SCIPpscostThresholdProbabilityTest(SCIP *scip, SCIP_VAR *var, SCIP_Real frac, SCIP_Real threshold, SCIP_BRANCHDIR dir, SCIP_CONFIDENCELEVEL clevel)
Definition: scip_var.c:9056
Definition: struct_var.h:198
SCIP_RETCODE SCIPgetTransformedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar)
Definition: scip_var.c:1436
SCIP_RETCODE SCIPparseVarName(SCIP *scip, const char *str, SCIP_VAR **var, char **endptr)
Definition: scip_var.c:524
SCIP_RETCODE SCIPchgVarUbLazy(SCIP *scip, SCIP_VAR *var, SCIP_Real lazyub)
Definition: scip_var.c:5161
SCIP_Real SCIPgetVarPseudocostCountCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8947
SCIP_RETCODE SCIPsetRelaxSolVals(SCIP *scip, SCIP_RELAX *relax, int nvars, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Bool includeslp)
Definition: scip_var.c:2444
SCIP_Real SCIPgetVarPseudocostScoreCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real solval)
Definition: scip_var.c:9138
SCIP_Real SCIPadjustedVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real ub)
Definition: scip_var.c:4642
SCIP_Real SCIPgetVarVSIDS(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9174
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:6117
SCIP_Real SCIPgetVarMultaggrUbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6588
SCIP_Real SCIPgetVarPseudocostValCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta)
Definition: scip_var.c:8839
SCIP_RETCODE SCIPaddVarLocks(SCIP *scip, SCIP_VAR *var, int nlocksdown, int nlocksup)
Definition: scip_var.c:4314
SCIP_Longint SCIPgetVarStrongbranchNode(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:4157
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:185
SCIP_Real SCIPgetVarAvgCutoffsCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9698
SCIP_Real SCIPgetVarVSIDSCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9206
SCIP_Real SCIPgetVarAvgCutoffScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9755
public methods for problem variables
SCIP_Bool SCIPisVarPscostRelerrorReliable(SCIP *scip, SCIP_VAR *var, SCIP_Real threshold, SCIP_CONFIDENCELEVEL clevel)
Definition: scip_var.c:9075
SCIP_RETCODE SCIPtightenVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5317
SCIP_Bool SCIPgetVarWasFixedAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:2279
type definitions for return codes for SCIP methods
SCIP_Real SCIPgetVarPseudocost(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8865
SCIP_RETCODE SCIPchgVarUbNode(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4887
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:395
SCIP_Real SCIPgetVarMultaggrUbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6558
SCIP_RETCODE SCIPchgVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4673
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:6658
SCIP_Real SCIPadjustedVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real lb)
Definition: scip_var.c:4610
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:6717
SCIP_RETCODE SCIPchgVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:5029
SCIP_RETCODE SCIPgetTransformedVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars)
Definition: scip_var.c:1477
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:3659
Definition: struct_tree.h:132
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:700
SCIP_RETCODE SCIPgetVarClosestVlb(SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvlb, int *closestvlbidx)
Definition: scip_var.c:6606
SCIP_Real SCIPcomputeVarUbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6481
SCIP_Real SCIPcomputeVarLbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6502
SCIP_Bool SCIPisStrongbranchDownFirst(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:2652
SCIP_RETCODE SCIPtransformVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars)
Definition: scip_var.c:1386
SCIP_Real SCIPgetVarPseudocostScore(SCIP *scip, SCIP_VAR *var, SCIP_Real solval)
Definition: scip_var.c:9100
SCIP_RETCODE SCIPscaleVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real scale)
Definition: scip_var.c:7918
type definitions for LP management
Definition: struct_sol.h:64
SCIP_RETCODE SCIPtryStrongbranchLPSol(SCIP *scip, SCIP_Bool *foundsol, SCIP_Bool *cutoff)
Definition: scip_var.c:4076
SCIP_RETCODE SCIPaddVarLocksType(SCIP *scip, SCIP_VAR *var, SCIP_LOCKTYPE locktype, int nlocksdown, int nlocksup)
Definition: scip_var.c:4256
SCIP_RETCODE SCIPupdateVarPseudocost(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta, SCIP_Real objdelta, SCIP_Real weight)
Definition: scip_var.c:8777
SCIP_Real SCIPgetVarBdAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:2261
SCIP_RETCODE SCIPchgVarType(SCIP *scip, SCIP_VAR *var, SCIP_VARTYPE vartype, SCIP_Bool *infeasible)
Definition: scip_var.c:8173
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:6918
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:8532
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:601
SCIP_RETCODE SCIPmarkDoNotAggrVar(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:8679
SCIP_Real SCIPgetVarPseudocostVariance(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun)
Definition: scip_var.c:8973
SCIP_RETCODE SCIPgetBinvarRepresentatives(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **repvars, SCIP_Bool *negated)
Definition: scip_var.c:1641
Definition: struct_cons.h:37
SCIP_RETCODE SCIPchgVarLbLazy(SCIP *scip, SCIP_VAR *var, SCIP_Real lazylb)
Definition: scip_var.c:5120
SCIP_Bool SCIPdoNotMultaggrVar(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:8595
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:5429
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:9534
SCIP_RETCODE SCIPgetProbvarSum(SCIP *scip, SCIP_VAR **var, SCIP_Real *scalar, SCIP_Real *constant)
Definition: scip_var.c:1791
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:6777
SCIP_RETCODE SCIPunlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)
Definition: scip_var.c:4434
SCIP_RETCODE SCIPchgVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4763
SCIP_Real SCIPcalculatePscostConfidenceBound(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun, SCIP_CONFIDENCELEVEL clevel)
Definition: scip_var.c:8995
SCIP_RETCODE SCIPmarkDoNotMultaggrVar(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:8712
SCIP_RETCODE SCIPsetRelaxSolVal(SCIP *scip, SCIP_RELAX *relax, SCIP_VAR *var, SCIP_Real val)
Definition: scip_var.c:2411
SCIP_RETCODE SCIPtightenVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:6225
SCIP_Real SCIPgetVarConflictlengthScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9300
SCIP_Real SCIPgetVarAvgInferenceScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9501
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:9026
SCIP_Real SCIPcomputeVarUbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6523
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:6007
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:1735
SCIP_Real SCIPgetVarAvgConflictlength(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9362
SCIP_RETCODE SCIPremoveVarFromGlobalStructures(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:7856
SCIP_RETCODE SCIPgetVarClosestVub(SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvub, int *closestvubidx)
Definition: scip_var.c:6629
type definitions for problem variables
SCIP_Longint SCIPgetVarStrongbranchLPAge(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:4191
type definitions for relaxators
SCIP_Real SCIPgetVarPseudocostCount(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8919
Definition: struct_prop.h:37
SCIP_Real SCIPgetVarPseudocostCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8893
SCIP_RETCODE SCIPchgVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real newobj)
Definition: scip_var.c:4510
SCIP_RETCODE SCIPstartStrongbranch(SCIP *scip, SCIP_Bool enablepropagation)
Definition: scip_var.c:2683
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:5823
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:3349
SCIP_RETCODE SCIPmarkRelaxSolValid(SCIP *scip, SCIP_RELAX *relax, SCIP_Bool includeslp)
Definition: scip_var.c:2554
SCIP_RETCODE SCIPcalcCliquePartition(SCIP *const scip, SCIP_VAR **const vars, int const nvars, int *const cliquepartition, int *const ncliques)
Definition: scip_var.c:7253
SCIP_RETCODE SCIPwriteCliqueGraph(SCIP *scip, const char *fname, SCIP_Bool writenodeweights)
Definition: scip_var.c:7707
SCIP_Real SCIPcomputeVarLbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6460
SCIP_Real SCIPgetVarAvgInferenceCutoffScoreCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight)
Definition: scip_var.c:9831
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:3881
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:105
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:8273
SCIP_RETCODE SCIPchgVarBranchPriority(SCIP *scip, SCIP_VAR *var, int branchpriority)
Definition: scip_var.c:7977
SCIP_RETCODE SCIPlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)
Definition: scip_var.c:4348
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:5498
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:2916
type definitions for storing primal CIP solutions
SCIP_Real SCIPgetVarMultaggrLbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6573
SCIP_RETCODE SCIPwriteVarsLinearsum(SCIP *scip, FILE *file, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_Bool type)
Definition: scip_var.c:334
type definitions for propagators
SCIP_Real SCIPgetVarAvgConflictlengthCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9388
SCIP_RETCODE SCIPaddVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real addfactor)
Definition: scip_var.c:7946
SCIP_LPSOLSTAT SCIPgetLastStrongbranchLPSolStat(SCIP *scip, SCIP_BRANCHDIR branchdir)
Definition: scip_var.c:3985
SCIP_RETCODE SCIPwriteVarsList(SCIP *scip, FILE *file, SCIP_VAR **vars, int nvars, SCIP_Bool type, char delimiter)
Definition: scip_var.c:283
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:4041
SCIP_Real SCIPgetVarImplRedcost(SCIP *scip, SCIP_VAR *var, SCIP_Bool varfixing)
Definition: scip_var.c:1906
void SCIPfreeParseVarsPolynomialData(SCIP *scip, SCIP_VAR ****monomialvars, SCIP_Real ***monomialexps, SCIP_Real **monomialcoefs, int **monomialnvars, int nmonomials)
Definition: scip_var.c:1155
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:5612
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:3770
SCIP_RETCODE SCIPgetVarSols(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_Real *vals)
Definition: scip_var.c:2324
SCIP_RETCODE SCIPaddVarBranchPriority(SCIP *scip, SCIP_VAR *var, int addpriority)
Definition: scip_var.c:8051
SCIP_RETCODE SCIPcalcNegatedCliquePartition(SCIP *const scip, SCIP_VAR **const vars, int const nvars, int *const cliquepartition, int *const ncliques)
Definition: scip_var.c:7472
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:8398
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:8082
SCIP_Bool SCIPhaveVarsCommonClique(SCIP *scip, SCIP_VAR *var1, SCIP_Bool value1, SCIP_VAR *var2, SCIP_Bool value2, SCIP_Bool regardimplics)
Definition: scip_var.c:7656
Definition: struct_implics.h:66
SCIP_RETCODE SCIPtransformVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar)
Definition: scip_var.c:1346
Definition: struct_relax.h:37
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:809
SCIP_Real SCIPgetVarConflictScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9269
SCIP_Real SCIPgetVarMultaggrLbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6543
SCIP_RETCODE SCIPtightenVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:6345
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:9605
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:8018
Definition: objbenders.h:33
SCIP_RETCODE SCIPcleanupCliques(SCIP *scip, SCIP_Bool *infeasible)
Definition: scip_var.c:7529
SCIP_Real SCIPgetVarFarkasCoef(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:1951
SCIP_RETCODE SCIPwriteVarName(SCIP *scip, FILE *file, SCIP_VAR *var, SCIP_Bool type)
Definition: scip_var.c:221
int SCIPgetVarNStrongbranchs(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:4223
SCIP_RETCODE SCIPgetActiveVars(SCIP *scip, SCIP_VAR **vars, int *nvars, int varssize, int *requiredsize)
Definition: scip_var.c:1827
SCIP_Real SCIPgetVarAvgInferenceScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9470
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:5720
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:465
SCIP_RETCODE SCIPchgVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real branchfactor)
Definition: scip_var.c:7890
SCIP_RETCODE SCIPprintVar(SCIP *scip, SCIP_VAR *var, FILE *file)
Definition: scip_var.c:9882
SCIP_RETCODE SCIPgetNegatedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **negvar)
Definition: scip_var.c:1524
type definitions for constraints and constraint handlers
SCIP_Real SCIPgetVarConflictScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9238
SCIP_Real SCIPgetRelaxSolVal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:2600
SCIP_RETCODE SCIPchgVarName(SCIP *scip, SCIP_VAR *var, const char *name)
Definition: scip_var.c:1296
SCIP_Real SCIPgetVarAvgCutoffScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9724