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
1806 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1815 /** changes global upper bound of variable; if possible, adjust bound to integral value; also tightens the local bound,
1818 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1821 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1830 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1839 /** changes lazy lower bound of the variable, this is only possible if the variable is not in the LP yet
1841 * lazy bounds are bounds, that are enforced by constraints and the objective function; hence, these bounds do not need
1844 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1854 * @note lazy bounds are useful for branch-and-price since the corresponding variable bounds are not part of the LP
1863 /** changes lazy upper bound of the variable, this is only possible if the variable is not in the LP yet
1865 * lazy bounds are bounds, that are enforced by constraints and the objective function; hence, these bounds do not need
1868 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1878 * @note lazy bounds are useful for branch-and-price since the corresponding variable bounds are not part of the LP
1887 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
1888 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1889 * doesn't store any inference information in the bound change, such that in conflict analysis, this change
1892 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1895 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1903 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1915 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
1916 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1917 * doesn't store any inference information in the bound change, such that in conflict analysis, this change
1920 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1923 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1931 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1943 /** fixes variable in preprocessing or in the current node, if the new bound is tighter (w.r.t. bound strengthening
1944 * epsilon) than the current bound; if possible, adjusts bound to integral value; the given inference constraint is
1945 * stored, such that the conflict analysis is able to find out the reason for the deduction of the bound change
1947 * @note In presolving stage when not in probing mode the variable will be fixed directly, otherwise this method
1948 * changes first the lowerbound by calling SCIPinferVarLbCons and second the upperbound by calling
1951 * @note If SCIP is in presolving stage, it can happen that the internal variable array (which get be accessed via
1954 * @note During presolving, an integer variable which bound changes to {0,1} is upgraded to a binary variable.
1968 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
1969 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1970 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
1973 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1976 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1984 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1998 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
1999 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
2000 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
2003 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2006 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2014 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2028 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
2029 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason for the
2032 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2048 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
2051 /** fixes variable in preprocessing or in the current node, if the new bound is tighter (w.r.t. bound strengthening
2052 * epsilon) than the current bound; if possible, adjusts bound to integral value; the given inference constraint is
2053 * stored, such that the conflict analysis is able to find out the reason for the deduction of the bound change
2055 * @note In presolving stage when not in probing mode the variable will be fixed directly, otherwise this method
2056 * changes first the lowerbound by calling SCIPinferVarLbProp and second the upperbound by calling
2059 * @note If SCIP is in presolving stage, it can happen that the internal variable array (which get be accessed via
2062 * @note During presolving, an integer variable which bound changes to {0,1} is upgraded to a binary variable.
2076 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
2077 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
2078 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
2081 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2084 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2092 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2106 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
2107 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
2108 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
2111 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2114 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2122 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2136 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
2137 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason for the
2140 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2157 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
2160 /** changes global lower bound of variable in preprocessing or in the current node, if the new bound is tighter
2161 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value;
2164 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2167 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2176 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2188 /** changes global upper bound of variable in preprocessing or in the current node, if the new bound is tighter
2189 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value;
2192 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2195 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2204 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2216 /** for a multi-aggregated variable, returns the global lower bound computed by adding the global bounds from all aggregation variables
2218 * 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
2219 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbGlobal.
2221 * @return the global lower bound computed by adding the global bounds from all aggregation variables
2229 /** for a multi-aggregated variable, returns the global upper bound computed by adding the global bounds from all aggregation variables
2231 * 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
2232 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbGlobal.
2234 * @return the global upper bound computed by adding the global bounds from all aggregation variables
2242 /** for a multi-aggregated variable, returns the local lower bound computed by adding the local bounds from all aggregation variables
2244 * 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
2245 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbLocal.
2247 * @return the local lower bound computed by adding the global bounds from all aggregation variables
2255 /** for a multi-aggregated variable, returns the local upper bound computed by adding the local bounds from all aggregation variables
2257 * 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
2258 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbLocal.
2260 * @return the local upper bound computed by adding the global bounds from all aggregation variables
2268 /** for a multi-aggregated variable, gives the global lower bound computed by adding the global bounds from all
2269 * aggregation variables, this global bound may be tighter than the one given by SCIPvarGetLbGlobal, since the latter is
2280 /** for a multi-aggregated variable, gives the global upper bound computed by adding the global bounds from all
2281 * aggregation variables, this upper bound may be tighter than the one given by SCIPvarGetUbGlobal, since the latter is
2292 /** for a multi-aggregated variable, gives the local lower bound computed by adding the local bounds from all
2293 * aggregation variables, this lower bound may be tighter than the one given by SCIPvarGetLbLocal, since the latter is
2304 /** for a multi-aggregated variable, gives the local upper bound computed by adding the local bounds from all
2305 * aggregation variables, this upper bound may be tighter than the one given by SCIPvarGetUbLocal, since the latter is
2318 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
2322 #define SCIPcomputeVarLbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrLbGlobal(scip, var) : SCIPvarGetLbGlobal(var))
2323 #define SCIPcomputeVarUbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrUbGlobal(scip, var) : SCIPvarGetUbGlobal(var))
2324 #define SCIPcomputeVarLbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrLbLocal(scip, var) : SCIPvarGetLbLocal(var))
2325 #define SCIPcomputeVarUbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrUbLocal(scip, var) : SCIPvarGetUbLocal(var))
2329 /** returns solution value and index of variable lower bound that is closest to the variable's value in the given primal
2330 * solution or current LP solution if no primal solution is given; returns an index of -1 if no variable lower bound is
2333 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2347 /** returns solution value and index of variable upper bound that is closest to the variable's value in the given primal solution;
2348 * or current LP solution if no primal solution is given; returns an index of -1 if no variable upper bound is available
2350 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2364 /** informs variable x about a globally valid variable lower bound x >= b*z + d with integer variable z;
2370 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2390 /** informs variable x about a globally valid variable upper bound x <= b*z + d with integer variable z;
2396 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2415 /** informs binary variable x about a globally valid implication: x == 0 or x == 1 ==> y <= b or y >= b;
2418 * if the variable is already fixed to the given value, the implication is performed immediately;
2421 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2434 SCIP_Bool varfixing, /**< FALSE if y should be added in implications for x == 0, TRUE for x == 1 */
2443 /** adds a clique information to SCIP, stating that at most one of the given binary variables can be set to 1;
2446 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2459 SCIP_Bool* values, /**< values of the variables in the clique; NULL to use TRUE for all vars */
2466 /** calculates a partition of the given set of binary variables into cliques; takes into account independent clique components
2473 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
2475 * the first variable is always assigned to clique 0, and a variable can only be assigned to clique i if at least one of
2479 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2492 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
2495 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
2499 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
2501 * the first variable is always assigned to clique 0 and a variable can only be assigned to clique i if at least one of
2503 * for each clique with n_c variables at least n_c-1 variables can be set to TRUE in a feasible solution;
2505 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2518 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
2521 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
2524 /** force SCIP to clean up all cliques; cliques do not get automatically cleaned up after presolving. Use
2609 * if regardimplics is TRUE, both the cliques and the implications of the implication graph are regarded
2611 * @return TRUE, if there is a clique that contains both variable/clique pairs; FALSE, otherwise
2639 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2655 * If @p writenodeweights is true, only nodes corresponding to variables that have a fractional value and only edges
2665 /** Removes (irrelevant) variable from all its global structures, i.e. cliques, implications and variable bounds.
2687 /** sets the branch factor of the variable; this value can be used in the branching methods to scale the score
2688 * values of the variables; higher factor leads to a higher probability that this variable is chosen for branching
2690 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2712 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2734 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2754 /** sets the branch priority of the variable; variables with higher branch priority are always preferred to variables
2757 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2779 /** changes the branch priority of the variable to the given value, if it is larger than the current priority
2781 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2798 int branchpriority /**< new branch priority of the variable, if it is larger than current priority */
2803 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2823 /** sets the branch direction of the variable (-1: prefer downwards branch, 0: automatic selection, +1: prefer upwards
2826 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2843 SCIP_BRANCHDIR branchdirection /**< preferred branch direction of the variable (downwards, upwards, auto) */
2848 * @warning This type change might change the variable array returned from SCIPgetVars() and SCIPgetVarsData();
2850 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2858 * @note If SCIP is already beyond the SCIP_STAGE_PROBLEM and a original variable is passed, the variable type of the
2859 * corresponding transformed variable is changed; the type of the original variable does not change
2861 * @note If the type changes from a continuous variable to a non-continuous variable the bounds of the variable get
2873 /** in problem creation and solving stage, both bounds of the variable are set to the given value;
2874 * in presolving stage, the variable is converted into a fixed variable, and bounds are changed respectively;
2875 * conversion into a fixed variable changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
2878 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2892 SCIP_Bool* fixed /**< pointer to store whether the fixing was performed (variable was unfixed) */
2895 /** From a given equality a*x + b*y == c, aggregates one of the variables and removes it from the set of
2896 * active problem variables. This changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
2897 * and also renders the arrays returned from the SCIPvarGetImpl...() methods for the two variables invalid.
2898 * In the first step, the equality is transformed into an equality with active problem variables
2899 * a'*x' + b'*y' == c'. If x' == y', this leads to the detection of redundancy if a' == -b' and c' == 0,
2900 * of infeasibility, if a' == -b' and c' != 0, or to a variable fixing x' == c'/(a'+b') (and possible
2902 * In the second step, the variable to be aggregated is chosen among x' and y', prefering a less strict variable
2903 * type as aggregation variable (i.e. continuous variables are preferred over implicit integers, implicit integers
2904 * over integers, and integers over binaries). If none of the variables is continuous, it is tried to find an integer
2905 * aggregation (i.e. integral coefficients a'' and b'', such that a''*x' + b''*y' == c''). This can lead to
2906 * the detection of infeasibility (e.g. if c'' is fractional), or to a rejection of the aggregation (denoted by
2907 * aggregated == FALSE), if the resulting integer coefficients are too large and thus numerically instable.
2912 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
2914 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2932 /** converts variable into multi-aggregated variable; this changes the variable array returned from
2935 * @warning The integrality condition is not checked anymore on the multi-aggregated variable. You must not
2936 * multi-aggregate an integer variable without being sure, that integrality on the aggregation variables
2941 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
2943 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2990 * @note A reduction is called strong dual, if it may discard feasible/optimal solutions, but leaves at least one
2991 * optimal solution intact. Often such reductions are based on analyzing the objective function and variable
3010 * @note A reduction is called weak dual, if it may discard feasible solutions, but leaves at all optimal solutions
3011 * intact. Often such reductions are based on analyzing the objective function, reduced costs, and/or dual LPs.
3020 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3032 * @note There exists no "unmark" method since it has to be ensured that if a plugin requires that a variable is not
3071 /** updates the pseudo costs of the given variable and the global pseudo costs after a change of "solvaldelta" in the
3072 * variable's solution value and resulting change of "objdelta" in the in the LP's objective value;
3075 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3175 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction
3177 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction
3195 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction,
3198 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction,
3217 /** get pseudo cost variance of the variable, either for entire solve or only for current branch and bound run
3238 /** calculates a confidence bound for this variable under the assumption of normally distributed pseudo costs
3240 * The confidence bound \f$ \theta \geq 0\f$ denotes the interval borders \f$ [X - \theta, \ X + \theta]\f$, which contains
3241 * the true pseudo costs of the variable, i.e., the expected value of the normal distribution, with a probability
3255 /** check if variable pseudo-costs have a significant difference in location. The significance depends on
3256 * the choice of \p clevel and on the kind of tested hypothesis. The one-sided hypothesis, which
3260 * This method is applied best if variable x has a better pseudo-cost score than y. The method hypothesizes that y were actually
3261 * better than x (despite the current information), meaning that y can be expected to yield branching
3262 * decisions as least as good as x in the long run. If the method returns TRUE, the current history information is
3263 * sufficient to safely rely on the alternative hypothesis that x yields indeed a better branching score (on average)
3268 * @note set \p onesided to FALSE if you are not sure which variable is better. The hypothesis tested then reads
3285 /** tests at a given confidence level whether the variable pseudo-costs only have a small probability to
3286 * exceed a \p threshold. This is useful to determine if past observations provide enough evidence
3287 * to skip an expensive strong-branching step if there is already a candidate that has been proven to yield an improvement
3290 * @note use \p clevel to adjust the level of confidence. For SCIP_CONFIDENCELEVEL_MIN, the method returns TRUE if
3293 * @see SCIP_Confidencelevel for a list of available levels. The used probability limits refer to the one-sided levels
3296 * @return TRUE if the variable pseudo-cost probabilistic model is likely to be smaller than \p threshold
3309 /** check if the current pseudo cost relative error in a direction violates the given threshold. The Relative
3520 /** returns the average number of inferences found after branching on the variable in given direction;
3521 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
3524 * @return the average number of inferences found after branching on the variable in given direction
3542 /** returns the average number of inferences found after branching on the variable in given direction in the current run;
3543 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
3546 * @return the average number of inferences found after branching on the variable in given direction in the current run
3583 /** returns the variable's average inference score value only using inferences of the current run
3585 * @return the variable's average inference score value only using inferences of the current run
3602 /** initializes the upwards and downwards pseudocosts, conflict scores, conflict lengths, inference scores, cutoff scores
3605 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3621 SCIP_Real downpscost, /**< value to which pseudocosts for downwards branching should be initialized */
3622 SCIP_Real uppscost, /**< value to which pseudocosts for upwards branching should be initialized */
3623 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */
3624 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */
3625 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */
3626 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */
3627 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */
3628 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */
3629 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */
3630 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */
3633 /** initializes the upwards and downwards conflict scores, conflict lengths, inference scores, cutoff scores of a
3636 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3653 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */
3654 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */
3655 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */
3656 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */
3657 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */
3658 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */
3659 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */
3660 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */
3663 /** returns the average number of cutoffs found after branching on the variable in given direction;
3664 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
3667 * @return the average number of cutoffs found after branching on the variable in given direction
3685 /** returns the average number of cutoffs found after branching on the variable in given direction in the current run;
3686 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
3689 * @return the average number of cutoffs found after branching on the variable in given direction in the current run
3745 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
3766 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
3769 * @return the variable's average inference/cutoff score value, only using inferences and cutoffs of the current run
3789 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
SCIP_EXPORT SCIP_RETCODE SCIPcalcCliquePartition(SCIP *const scip, SCIP_VAR **const vars, int const nvars, int *const cliquepartition, int *const ncliques)
Definition: scip_var.c:7237
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostVariance(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun)
Definition: scip_var.c:8911
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8831
SCIP_EXPORT SCIP_Real SCIPgetVarAvgInferenceScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9439
SCIP_EXPORT SCIP_Real SCIPgetVarAvgCutoffScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9662
SCIP_EXPORT SCIP_RETCODE SCIPchgVarLbNode(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4847
SCIP_EXPORT SCIP_Real SCIPgetVarAvgInferenceCutoffScore(SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight)
Definition: scip_var.c:9725
Definition: struct_var.h:99
SCIP_EXPORT SCIP_RETCODE SCIPmarkRelaxSolValid(SCIP *scip, SCIP_RELAX *relax, SCIP_Bool includeslp)
Definition: scip_var.c:2561
SCIP_EXPORT SCIP_Bool SCIPhaveVarsCommonClique(SCIP *scip, SCIP_VAR *var1, SCIP_Bool value1, SCIP_VAR *var2, SCIP_Bool value2, SCIP_Bool regardimplics)
Definition: scip_var.c:7640
SCIP_EXPORT SCIP_RETCODE SCIPchgVarBranchDirection(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR branchdirection)
Definition: scip_var.c:8066
SCIP_EXPORT SCIP_Real SCIPgetVarLbAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:1996
SCIP_EXPORT SCIP_RETCODE SCIPwriteVarName(SCIP *scip, FILE *file, SCIP_VAR *var, SCIP_Bool type)
Definition: scip_var.c:221
type definitions for miscellaneous datastructures
type definitions for implications, variable bounds, and cliques
SCIP_EXPORT SCIP_RETCODE SCIPcleanupCliques(SCIP *scip, SCIP_Bool *infeasible)
Definition: scip_var.c:7513
SCIP_EXPORT SCIP_Longint SCIPgetVarStrongbranchLPAge(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:4198
SCIP_EXPORT void SCIPfreeParseVarsPolynomialData(SCIP *scip, SCIP_VAR ****monomialvars, SCIP_Real ***monomialexps, SCIP_Real **monomialcoefs, int **monomialnvars, int nmonomials)
Definition: scip_var.c:1162
Definition: struct_scip.h:59
SCIP_EXPORT SCIP_RETCODE SCIPtightenVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5184
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocost(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8803
SCIP_EXPORT 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:6642
SCIP_EXPORT SCIP_Real SCIPcomputeVarLbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6486
SCIP_EXPORT SCIP_Bool SCIPallowWeakDualReds(SCIP *scip)
Definition: scip_var.c:8624
SCIP_EXPORT 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:5876
SCIP_EXPORT SCIP_Bool SCIPisStrongbranchDownFirst(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:2659
SCIP_EXPORT SCIP_Real SCIPgetVarRedcost(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:1868
SCIP_EXPORT SCIP_Real SCIPgetVarAvgInferences(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9354
SCIP_EXPORT SCIP_RETCODE SCIPaddVarLocksType(SCIP *scip, SCIP_VAR *var, SCIP_LOCKTYPE locktype, int nlocksdown, int nlocksup)
Definition: scip_var.c:4263
SCIP_EXPORT SCIP_RETCODE SCIPprintVar(SCIP *scip, SCIP_VAR *var, FILE *file)
Definition: scip_var.c:9820
SCIP_EXPORT SCIP_RETCODE SCIPgetTransformedVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars)
Definition: scip_var.c:1484
SCIP_EXPORT SCIP_RETCODE SCIPgetNegatedVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **negvars)
Definition: scip_var.c:1564
SCIP_EXPORT 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:5704
SCIP_EXPORT SCIP_RETCODE SCIPgetBinvarRepresentative(SCIP *scip, SCIP_VAR *var, SCIP_VAR **repvar, SCIP_Bool *negated)
Definition: scip_var.c:1601
SCIP_EXPORT SCIP_RETCODE SCIPcaptureVar(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:1218
SCIP_EXPORT SCIP_RETCODE SCIPtightenVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5301
SCIP_EXPORT 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:2923
Definition: struct_var.h:198
SCIP_EXPORT SCIP_Real SCIPgetVarVSIDSCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9144
SCIP_EXPORT 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_EXPORT 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:5596
SCIP_EXPORT 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_EXPORT SCIP_Real SCIPgetVarAvgCutoffsCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9636
SCIP_EXPORT SCIP_Real SCIPgetVarAvgConflictlength(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9300
SCIP_EXPORT 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:5991
SCIP_EXPORT SCIP_RETCODE SCIPaddVarBranchPriority(SCIP *scip, SCIP_VAR *var, int addpriority)
Definition: scip_var.c:8035
SCIP_EXPORT SCIP_RETCODE SCIPparseVarName(SCIP *scip, const char *str, SCIP_VAR **var, char **endptr)
Definition: scip_var.c:524
SCIP_EXPORT SCIP_Real SCIPgetVarAvgInferenceCutoffScoreCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight)
Definition: scip_var.c:9769
SCIP_EXPORT SCIP_Bool SCIPpscostThresholdProbabilityTest(SCIP *scip, SCIP_VAR *var, SCIP_Real frac, SCIP_Real threshold, SCIP_BRANCHDIR dir, SCIP_CONFIDENCELEVEL clevel)
Definition: scip_var.c:8994
public methods for problem variables
SCIP_EXPORT SCIP_Real SCIPadjustedVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real ub)
Definition: scip_var.c:4646
type definitions for return codes for SCIP methods
SCIP_EXPORT SCIP_Real SCIPgetVarConflictlengthScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9238
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostCountCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8885
SCIP_EXPORT SCIP_RETCODE SCIPaddVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real addobj)
Definition: scip_var.c:4563
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostScore(SCIP *scip, SCIP_VAR *var, SCIP_Real solval)
Definition: scip_var.c:9038
SCIP_EXPORT SCIP_RETCODE SCIPtryStrongbranchLPSol(SCIP *scip, SCIP_Bool *foundsol, SCIP_Bool *cutoff)
Definition: scip_var.c:4083
SCIP_EXPORT SCIP_Real SCIPcalculatePscostConfidenceBound(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun, SCIP_CONFIDENCELEVEL clevel)
Definition: scip_var.c:8933
SCIP_EXPORT 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:3888
SCIP_EXPORT SCIP_RETCODE SCIPchgVarUbLazy(SCIP *scip, SCIP_VAR *var, SCIP_Real lazyub)
Definition: scip_var.c:5150
SCIP_EXPORT SCIP_RETCODE SCIPsetRelaxSolVal(SCIP *scip, SCIP_RELAX *relax, SCIP_VAR *var, SCIP_Real val)
Definition: scip_var.c:2418
SCIP_EXPORT SCIP_RETCODE SCIPaddVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real addfactor)
Definition: scip_var.c:7930
SCIP_EXPORT SCIP_RETCODE SCIPlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)
Definition: scip_var.c:4354
SCIP_EXPORT SCIP_RETCODE SCIPaddVarLocks(SCIP *scip, SCIP_VAR *var, int nlocksdown, int nlocksup)
Definition: scip_var.c:4321
SCIP_EXPORT SCIP_RETCODE SCIPgetVarClosestVub(SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvub, int *closestvubidx)
Definition: scip_var.c:6613
Definition: struct_tree.h:132
SCIP_EXPORT SCIP_Real SCIPgetVarVSIDS(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9112
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostScoreCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real solval)
Definition: scip_var.c:9076
type definitions for LP management
Definition: struct_sol.h:64
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostValCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta)
Definition: scip_var.c:8777
SCIP_EXPORT SCIP_RETCODE SCIPgetVarClosestVlb(SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvlb, int *closestvlbidx)
Definition: scip_var.c:6590
SCIP_EXPORT SCIP_RETCODE SCIPgetNegatedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **negvar)
Definition: scip_var.c:1531
SCIP_EXPORT SCIP_Real SCIPgetVarAvgCutoffs(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9608
SCIP_EXPORT SCIP_RETCODE SCIPmarkRelaxSolInvalid(SCIP *scip)
Definition: scip_var.c:2586
SCIP_EXPORT SCIP_RETCODE SCIPmarkDoNotMultaggrVar(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:8650
SCIP_EXPORT SCIP_Real SCIPgetVarConflictScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9176
SCIP_EXPORT 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:1742
SCIP_EXPORT 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:9543
SCIP_EXPORT 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:4014
SCIP_EXPORT SCIP_RETCODE SCIPchgVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4677
Definition: struct_cons.h:37
SCIP_EXPORT SCIP_RETCODE SCIPchgVarBranchPriority(SCIP *scip, SCIP_VAR *var, int branchpriority)
Definition: scip_var.c:7961
type definitions for SCIP's main datastructure
SCIP_EXPORT SCIP_RETCODE SCIPgetTransformedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar)
Definition: scip_var.c:1443
SCIP_EXPORT 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:8516
SCIP_EXPORT SCIP_Real SCIPcomputeVarUbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6507
SCIP_EXPORT SCIP_RETCODE SCIPwriteVarsList(SCIP *scip, FILE *file, SCIP_VAR **vars, int nvars, SCIP_Bool type, char delimiter)
Definition: scip_var.c:283
SCIP_EXPORT SCIP_Bool SCIPdoNotMultaggrVar(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:8566
SCIP_EXPORT SCIP_Real SCIPgetVarMultaggrLbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6527
SCIP_EXPORT SCIP_RETCODE SCIPwriteCliqueGraph(SCIP *scip, const char *fname, SCIP_Bool writenodeweights)
Definition: scip_var.c:7691
SCIP_EXPORT SCIP_Real SCIPgetVarAvgCutoffScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9693
type definitions for problem variables
SCIP_EXPORT SCIP_RETCODE SCIPgetBinvarRepresentatives(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **repvars, SCIP_Bool *negated)
Definition: scip_var.c:1648
type definitions for relaxators
SCIP_EXPORT 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:3666
SCIP_EXPORT SCIP_RETCODE SCIPupdateVarBranchPriority(SCIP *scip, SCIP_VAR *var, int branchpriority)
Definition: scip_var.c:8002
SCIP_EXPORT SCIP_RETCODE SCIPcalcNegatedCliquePartition(SCIP *const scip, SCIP_VAR **const vars, int const nvars, int *const cliquepartition, int *const ncliques)
Definition: scip_var.c:7456
SCIP_EXPORT 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:4048
SCIP_EXPORT SCIP_Real SCIPgetVarMultaggrLbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6557
Definition: struct_prop.h:37
SCIP_EXPORT SCIP_RETCODE SCIPscaleVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real scale)
Definition: scip_var.c:7902
SCIP_EXPORT 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:9472
SCIP_EXPORT SCIP_RETCODE SCIPchgVarLbLazy(SCIP *scip, SCIP_VAR *var, SCIP_Real lazylb)
Definition: scip_var.c:5117
SCIP_EXPORT SCIP_Real SCIPgetVarFarkasCoef(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:1958
SCIP_EXPORT SCIP_RETCODE SCIPunlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)
Definition: scip_var.c:4439
SCIP_EXPORT 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:5413
SCIP_EXPORT SCIP_RETCODE SCIPtransformVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar)
Definition: scip_var.c:1353
SCIP_EXPORT SCIP_Bool SCIPisVarPscostRelerrorReliable(SCIP *scip, SCIP_VAR *var, SCIP_Real threshold, SCIP_CONFIDENCELEVEL clevel)
Definition: scip_var.c:9013
SCIP_EXPORT SCIP_RETCODE SCIPendStrongbranch(SCIP *scip)
Definition: scip_var.c:2748
SCIP_EXPORT 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
SCIP_EXPORT SCIP_RETCODE SCIPgetActiveVars(SCIP *scip, SCIP_VAR **vars, int *nvars, int varssize, int *requiredsize)
Definition: scip_var.c:1834
SCIP_EXPORT SCIP_Real SCIPgetRelaxSolVal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:2607
SCIP_EXPORT SCIP_Real SCIPgetVarAvgConflictlengthCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9326
SCIP_EXPORT 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:3777
type definitions for branch and bound tree
SCIP_EXPORT SCIP_Real SCIPcomputeVarLbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6444
SCIP_EXPORT 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_EXPORT SCIP_RETCODE SCIPfixVar(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_Bool *infeasible, SCIP_Bool *fixed)
Definition: scip_var.c:8257
SCIP_EXPORT SCIP_RETCODE SCIPchgVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4943
SCIP_EXPORT SCIP_RETCODE SCIPclearRelaxSolVals(SCIP *scip, SCIP_RELAX *relax)
Definition: scip_var.c:2368
SCIP_EXPORT SCIP_Longint SCIPgetVarStrongbranchNode(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:4164
SCIP_EXPORT 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:6101
SCIP_EXPORT SCIP_RETCODE SCIPchgVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4767
SCIP_EXPORT SCIP_RETCODE SCIPchgVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real branchfactor)
Definition: scip_var.c:7874
SCIP_EXPORT 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:6701
type definitions for storing primal CIP solutions
SCIP_EXPORT SCIP_Real SCIPgetVarUbAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:2132
SCIP_EXPORT 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:810
type definitions for propagators
SCIP_EXPORT SCIP_Real SCIPcomputeVarUbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6465
SCIP_EXPORT SCIP_RETCODE SCIPchgVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:5030
SCIP_EXPORT 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:5482
SCIP_EXPORT SCIP_RETCODE SCIPstartStrongbranch(SCIP *scip, SCIP_Bool enablepropagation)
Definition: scip_var.c:2690
SCIP_EXPORT SCIP_RETCODE SCIPchgVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real newobj)
Definition: scip_var.c:4514
SCIP_EXPORT SCIP_RETCODE SCIPchgVarName(SCIP *scip, SCIP_VAR *var, const char *name)
Definition: scip_var.c:1303
SCIP_EXPORT 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:6902
SCIP_EXPORT SCIP_Real SCIPgetVarAvgInferencesCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9382
SCIP_EXPORT SCIP_RETCODE SCIPsetRelaxSolVals(SCIP *scip, SCIP_RELAX *relax, int nvars, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Bool includeslp)
Definition: scip_var.c:2451
SCIP_EXPORT SCIP_RETCODE SCIPreleaseVar(SCIP *scip, SCIP_VAR **var)
Definition: scip_var.c:1252
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostVal(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta)
Definition: scip_var.c:8749
SCIP_EXPORT SCIP_Real SCIPgetVarSol(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:2311
SCIP_EXPORT 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:3356
SCIP_EXPORT int SCIPgetVarNStrongbranchs(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:4230
result codes for SCIP callback methods
type definitions for branching and inference history
Definition: struct_implics.h:66
SCIP_EXPORT SCIP_Real SCIPgetVarImplRedcost(SCIP *scip, SCIP_VAR *var, SCIP_Bool varfixing)
Definition: scip_var.c:1913
SCIP_EXPORT SCIP_RETCODE SCIPtightenVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:6329
SCIP_EXPORT 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_EXPORT SCIP_RETCODE SCIPwriteVarsLinearsum(SCIP *scip, FILE *file, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_Bool type)
Definition: scip_var.c:334
SCIP_EXPORT SCIP_RETCODE SCIPgetProbvarSum(SCIP *scip, SCIP_VAR **var, SCIP_Real *scalar, SCIP_Real *constant)
Definition: scip_var.c:1798
Definition: struct_relax.h:37
SCIP_EXPORT SCIP_Real SCIPgetVarBdAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:2268
SCIP_EXPORT SCIP_Real SCIPgetVarConflictlengthScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9269
SCIP_EXPORT 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:8964
SCIP_EXPORT SCIP_RETCODE SCIPremoveVarFromGlobalStructures(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:7840
SCIP_EXPORT SCIP_Real SCIPgetVarAvgInferenceScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9408
SCIP_EXPORT SCIP_Bool SCIPallowStrongDualReds(SCIP *scip)
Definition: scip_var.c:8597
SCIP_EXPORT SCIP_Real SCIPgetVarMultaggrUbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6542
common defines and data types used in all packages of SCIP
SCIP_EXPORT SCIP_Real SCIPgetVarMultaggrUbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6572
SCIP_EXPORT SCIP_RETCODE SCIPchgVarUbNode(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4891
SCIP_EXPORT 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:6761
SCIP_EXPORT SCIP_RETCODE SCIPflattenVarAggregationGraph(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:1697
SCIP_EXPORT 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:8382
SCIP_EXPORT SCIP_RETCODE SCIPchgVarType(SCIP *scip, SCIP_VAR *var, SCIP_VARTYPE vartype, SCIP_Bool *infeasible)
Definition: scip_var.c:8157
Definition: objbenders.h:33
SCIP_EXPORT SCIP_Real SCIPadjustedVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real lb)
Definition: scip_var.c:4614
SCIP_EXPORT SCIP_RETCODE SCIPgetVarSols(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_Real *vals)
Definition: scip_var.c:2331
SCIP_EXPORT SCIP_Bool SCIPgetVarWasFixedAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:2286
SCIP_EXPORT SCIP_RETCODE SCIPupdateVarPseudocost(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta, SCIP_Real objdelta, SCIP_Real weight)
Definition: scip_var.c:8715
SCIP_EXPORT SCIP_RETCODE SCIPsetRelaxSolValsSol(SCIP *scip, SCIP_RELAX *relax, SCIP_SOL *sol, SCIP_Bool includeslp)
Definition: scip_var.c:2493
SCIP_EXPORT 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:5807
SCIP_EXPORT 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_EXPORT SCIP_LPSOLSTAT SCIPgetLastStrongbranchLPSolStat(SCIP *scip, SCIP_BRANCHDIR branchdir)
Definition: scip_var.c:3992
SCIP_EXPORT SCIP_Real SCIPgetVarConflictScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9207
type definitions for constraints and constraint handlers
SCIP_EXPORT SCIP_RETCODE SCIPtightenVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:6209
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostCount(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8857
SCIP_EXPORT SCIP_RETCODE SCIPtransformVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars)
Definition: scip_var.c:1393