scip_var.h
Go to the documentation of this file.
29 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
69 /** creates and captures problem variable; if variable is of integral type, fractional bounds are automatically rounded;
70 * an integer variable with bounds zero and one is automatically converted into a binary variable;
72 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will
73 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the
74 * original objective function value of variables created during the solving process has to be multiplied by
77 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
89 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar()
103 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data, or NULL */
104 SCIP_DECL_VARDELTRANS ((*vardeltrans)), /**< frees user data of transformed variable, or NULL */
109 /** creates and captures problem variable with optional callbacks and variable data set to NULL, which can be set
111 * SCIPvarSetDeltransData(), SCIPvarSetCopy(), and SCIPvarSetData(); sets variable flags initial=TRUE
112 * and removable = FALSE, which can be adjusted by using SCIPvarSetInitial() and SCIPvarSetRemovable(), resp.;
114 * an integer variable with bounds zero and one is automatically converted into a binary variable;
116 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will
117 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the
118 * original objective function value of variables created during the solving process has to be multiplied by
121 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
133 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar()
148 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
173 /** print the given list of variables to output stream separated by the given delimiter character;
175 * i. e. the variables x1, x2, ..., xn with given delimiter ',' are written as: <x1>, <x2>, ..., <xn>;
179 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
213 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
247 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
278 /** parses variable information (in cip format) out of a string; if the parsing process was successful a variable is
279 * created and captured; if variable is of integral type, fractional bounds are automatically rounded; an integer
282 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
303 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data */
310 /** parses the given string for a variable name and stores the variable in the corresponding pointer if such a variable
313 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
333 /** parse the given string as variable list (here ',' is the delimiter)) (<x1>, <x2>, ..., <xn>) (see
336 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
348 * @note The pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist.
350 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens
351 * except that the required size is stored in the corresponding integer; the reason for this approach is that we
352 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP
368 /** parse the given string as linear sum of variables and coefficients (c1 <x1> + c2 <x2> + ... + cn <xn>)
371 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
383 * @note The pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist.
385 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens
386 * except that the required size is stored in the corresponding integer; the reason for this approach is that we
387 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP
408 * monomialcoefs, monomialnvars, *nmonomials) short after SCIPparseVarsPolynomial to free all the
409 * allocated memory again. Do not keep the arrays created by SCIPparseVarsPolynomial around, since
412 * Parsing is stopped at the end of string (indicated by the \\0-character) or when no more monomials
415 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
442 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
466 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
488 /** decreases usage counter of variable, if the usage pointer reaches zero the variable gets freed
490 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
517 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
531 /** gets and captures transformed variable of a given variable; if the variable is not yet transformed,
534 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
555 * if a variable of the array is not yet transformed, a new transformed variable for this variable is created;
558 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
582 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
607 * it is possible to call this method with vars == transvars, but remember that variables that are not
610 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
634 /** gets negated variable x' = lb + ub - x of variable x; negated variable is created, if not yet existing
636 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
660 /** gets negated variables x' = lb + ub - x of variables x; negated variables are created, if not yet existing;
661 * in difference to \ref SCIPcreateVar, the negated variable must not be released (unless captured explicitly)
663 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
688 /** gets a binary variable that is equal to the given binary variable, and that is either active, fixed, or
691 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
711 SCIP_Bool* negated /**< pointer to store whether the negation of an active variable was returned */
714 /** gets binary variables that are equal to the given binary variables, and which are either active, fixed, or
717 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
738 SCIP_Bool* negated /**< array to store whether the negation of an active variable was returned */
741 /** flattens aggregation graph of multi-aggregated variable in order to avoid exponential recursion later on
743 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
761 /** Transforms a given linear sum of variables, that is a_1*x_1 + ... + a_n*x_n + c into a corresponding linear sum of
764 * If the number of needed active variables is greater than the available slots in the variable array, nothing happens
765 * except that the required size is stored in the corresponding variable (requiredsize). Otherwise, the active variable
768 * The reason for this approach is that we cannot reallocate memory, since we do not know how the memory has been
771 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
786 * @note The resulting linear sum is stored into the given variable array, scalar array, and constant. That means the
789 * @note That method can be used to convert a single variables into variable space of active variables. Therefore call
811 SCIP_Bool mergemultiples /**< should multiple occurrences of a var be replaced by a single coeff? */
816 * "scalar" will be 0.0 and the value of the sum will be stored in "constant"; a multi-aggregation
818 * is treated like an aggregation; if the multi-aggregation constant is infinite, "scalar" will be 0.0
820 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
843 /** return for given variables all their active counterparts; all active variables will be pairwise different
844 * @note It does not hold that the first output variable is the active variable for the first input variable.
846 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
880 * @note The return value of this method should be used carefully if the dual feasibility check was explictely disabled.
896 * @note The return value of this method should be used carefully if the dual feasibility check was explictely disabled.
919 /** returns lower bound of variable directly before or after the bound change given by the bound change index
930 /** returns upper bound of variable directly before or after the bound change given by the bound change index
941 /** returns lower or upper bound of variable directly before or after the bound change given by the bound change index
953 /** returns whether the binary variable was fixed at the time given by the bound change index */
978 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
995 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1008 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation;
1013 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1020 * @note This method incrementally updates the objective value of the relaxation solution. If the whole solution
1021 * should be updated, using SCIPsetRelaxSolVals() instead or calling SCIPclearRelaxSolVals() before setting
1031 /** sets the values of the given variables in the global relaxation solution and informs SCIP about the validity
1033 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation;
1036 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1052 /** sets the values of the variables in the global relaxation solution to the values in the given primal solution
1053 * and informs SCIP about the validity and whether the solution can be enforced via linear cuts;
1054 * the relaxation solution can be filled by the relaxation handlers and might be used by heuristics and for separation
1056 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1083 /** informs SCIP that the relaxation solution is valid and whether the relaxation can be enforced through linear cuts
1085 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1100 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1152 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1159 * @note if propagation is enabled, strong branching is not done directly on the LP, but probing nodes are created
1165 SCIP_Bool enablepropagation /**< should propagation be done before solving the strong branching LP? */
1170 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1184 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1198 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1202 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
1204 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
1214 * Before calling this method, the strong branching mode must have been activated by calling SCIPstartStrongbranch();
1215 * after strong branching was done for all candidate variables, the strong branching mode must be ended by
1216 * SCIPendStrongbranch(). Since this method applies domain propagation before strongbranching, propagation has to be be
1219 * Before solving the strong branching LP, domain propagation can be performed. The number of propagation rounds
1222 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1229 * @warning When using this method, LP banching candidates and solution values must be copied beforehand, because
1243 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1247 SCIP_Longint* ndomredsdown, /**< pointer to store the number of domain reductions down, or NULL */
1249 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
1251 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
1261 /** gets strong branching information on column variable x with integral LP solution value (val); that is, the down branch
1264 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1271 * @note If the integral LP solution value is the lower or upper bound of the variable, the corresponding branch will be
1281 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1285 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
1287 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
1297 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1312 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL;
1316 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */
1328 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1343 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL;
1347 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */
1357 /** get LP solution status of last strong branching call (currently only works for strong branching with propagation) */
1364 /** gets strong branching information on COLUMN variable of the last SCIPgetVarStrongbranch() call;
1365 * returns values of SCIP_INVALID, if strong branching was not yet called on the given variable;
1366 * keep in mind, that the returned old values may have nothing to do with the current LP solution
1368 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1381 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1385 SCIP_Real* solval, /**< stores LP solution value of variable at last strong branching call, or NULL */
1391 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1413 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1426 /** gets node number of the last node in current branch and bound run, where strong branching was used on the
1429 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1450 /** if strong branching was already applied on the variable at the current node, returns the number of LPs solved after
1454 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1477 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1500 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1528 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1555 /** add locks of type @p locktype of variable with respect to the lock status of the constraint and its negation;
1556 * this method should be called whenever the lock status of a variable in a constraint changes, for example if
1557 * the coefficient of the variable changed its sign or if the left or right hand sides of the constraint were
1560 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1583 /** remove locks of type @p locktype of variable with respect to the lock status of the constraint and its negation;
1584 * this method should be called whenever the lock status of a variable in a constraint changes, for example if
1585 * the coefficient of the variable changed its sign or if the left or right hand sides of the constraint were
1588 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1613 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1630 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1647 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) lower bound value;
1650 * @return adjusted lower bound for the given variable; the bound of the variable is not changed
1673 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) upper bound value;
1676 * @return adjusted upper bound for the given variable; the bound of the variable is not changed
1699 /** depending on SCIP's stage, changes lower bound of variable in the problem, in preprocessing, or in current node;
1700 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such
1703 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1706 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1715 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1724 /** depending on SCIP's stage, changes upper bound of variable in the problem, in preprocessing, or in current node;
1725 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such
1728 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1731 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1740 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1749 /** changes lower bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any
1750 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching
1753 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1766 /** changes upper bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any
1767 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching
1770 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1783 /** changes global lower bound of variable; if possible, adjust bound to integral value; also tightens the local bound,
1786 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1789 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1798 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1807 /** changes global upper bound of variable; if possible, adjust bound to integral value; also tightens the local bound,
1810 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1813 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1822 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1831 /** changes lazy lower bound of the variable, this is only possible if the variable is not in the LP yet
1833 * lazy bounds are bounds, that are enforced by constraints and the objective function; hence, these bounds do not need
1836 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1846 * @note lazy bounds are useful for branch-and-price since the corresponding variable bounds are not part of the LP
1855 /** changes lazy upper bound of the variable, this is only possible if the variable is not in the LP yet
1857 * lazy bounds are bounds, that are enforced by constraints and the objective function; hence, these bounds do not need
1860 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1870 * @note lazy bounds are useful for branch-and-price since the corresponding variable bounds are not part of the LP
1879 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
1880 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1881 * doesn't store any inference information in the bound change, such that in conflict analysis, this change
1884 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1887 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1895 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1907 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
1908 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1909 * doesn't store any inference information in the bound change, such that in conflict analysis, this change
1912 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1915 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1923 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1935 /** fixes variable in preprocessing or in the current node, if the new bound is tighter (w.r.t. bound strengthening
1936 * epsilon) than the current bound; if possible, adjusts bound to integral value; the given inference constraint is
1937 * stored, such that the conflict analysis is able to find out the reason for the deduction of the bound change
1939 * @note In presolving stage when not in probing mode the variable will be fixed directly, otherwise this method
1940 * changes first the lowerbound by calling SCIPinferVarLbCons and second the upperbound by calling
1943 * @note If SCIP is in presolving stage, it can happen that the internal variable array (which get be accessed via
1946 * @note During presolving, an integer variable which bound changes to {0,1} is upgraded to a binary variable.
1960 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
1961 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1962 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
1965 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1968 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1976 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1990 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
1991 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1992 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
1995 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1998 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2006 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2020 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
2021 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason for the
2024 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2040 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
2043 /** fixes variable in preprocessing or in the current node, if the new bound is tighter (w.r.t. bound strengthening
2044 * epsilon) than the current bound; if possible, adjusts bound to integral value; the given inference constraint is
2045 * stored, such that the conflict analysis is able to find out the reason for the deduction of the bound change
2047 * @note In presolving stage when not in probing mode the variable will be fixed directly, otherwise this method
2048 * changes first the lowerbound by calling SCIPinferVarLbProp and second the upperbound by calling
2051 * @note If SCIP is in presolving stage, it can happen that the internal variable array (which get be accessed via
2054 * @note During presolving, an integer variable which bound changes to {0,1} is upgraded to a binary variable.
2068 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
2069 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
2070 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
2073 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2076 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2084 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2098 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
2099 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
2100 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
2103 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2106 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2114 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2128 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
2129 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason for the
2132 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2149 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
2152 /** changes global lower bound of variable in preprocessing or in the current node, if the new bound is tighter
2153 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value;
2156 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2159 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2168 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2180 /** changes global upper bound of variable in preprocessing or in the current node, if the new bound is tighter
2181 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value;
2184 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2187 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2196 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2208 /** for a multi-aggregated variable, returns the global lower bound computed by adding the global bounds from all aggregation variables
2210 * 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
2211 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbGlobal.
2213 * @return the global lower bound computed by adding the global bounds from all aggregation variables
2221 /** for a multi-aggregated variable, returns the global upper bound computed by adding the global bounds from all aggregation variables
2223 * 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
2224 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbGlobal.
2226 * @return the global upper bound computed by adding the global bounds from all aggregation variables
2234 /** for a multi-aggregated variable, returns the local lower bound computed by adding the local bounds from all aggregation variables
2236 * 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
2237 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbLocal.
2239 * @return the local lower bound computed by adding the global bounds from all aggregation variables
2247 /** for a multi-aggregated variable, returns the local upper bound computed by adding the local bounds from all aggregation variables
2249 * 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
2250 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbLocal.
2252 * @return the local upper bound computed by adding the global bounds from all aggregation variables
2260 /** for a multi-aggregated variable, gives the global lower bound computed by adding the global bounds from all
2261 * aggregation variables, this global bound may be tighter than the one given by SCIPvarGetLbGlobal, since the latter is
2272 /** for a multi-aggregated variable, gives the global upper bound computed by adding the global bounds from all
2273 * aggregation variables, this upper bound may be tighter than the one given by SCIPvarGetUbGlobal, since the latter is
2284 /** for a multi-aggregated variable, gives the local lower bound computed by adding the local bounds from all
2285 * aggregation variables, this lower bound may be tighter than the one given by SCIPvarGetLbLocal, since the latter is
2296 /** for a multi-aggregated variable, gives the local upper bound computed by adding the local bounds from all
2297 * aggregation variables, this upper bound may be tighter than the one given by SCIPvarGetUbLocal, since the latter is
2310 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
2314 #define SCIPcomputeVarLbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrLbGlobal(scip, var) : SCIPvarGetLbGlobal(var))
2315 #define SCIPcomputeVarUbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrUbGlobal(scip, var) : SCIPvarGetUbGlobal(var))
2316 #define SCIPcomputeVarLbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrLbLocal(scip, var) : SCIPvarGetLbLocal(var))
2317 #define SCIPcomputeVarUbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrUbLocal(scip, var) : SCIPvarGetUbLocal(var))
2321 /** returns solution value and index of variable lower bound that is closest to the variable's value in the given primal
2322 * solution or current LP solution if no primal solution is given; returns an index of -1 if no variable lower bound is
2325 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2339 /** returns solution value and index of variable upper bound that is closest to the variable's value in the given primal solution;
2340 * or current LP solution if no primal solution is given; returns an index of -1 if no variable upper bound is available
2342 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2356 /** informs variable x about a globally valid variable lower bound x >= b*z + d with integer variable z;
2362 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2382 /** informs variable x about a globally valid variable upper bound x <= b*z + d with integer variable z;
2388 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2407 /** informs binary variable x about a globally valid implication: x == 0 or x == 1 ==> y <= b or y >= b;
2410 * if the variable is already fixed to the given value, the implication is performed immediately;
2413 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2426 SCIP_Bool varfixing, /**< FALSE if y should be added in implications for x == 0, TRUE for x == 1 */
2435 /** adds a clique information to SCIP, stating that at most one of the given binary variables can be set to 1;
2438 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2451 SCIP_Bool* values, /**< values of the variables in the clique; NULL to use TRUE for all vars */
2458 /** calculates a partition of the given set of binary variables into cliques; takes into account independent clique components
2465 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
2467 * the first variable is always assigned to clique 0, and a variable can only be assigned to clique i if at least one of
2471 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2484 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
2487 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
2491 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
2493 * the first variable is always assigned to clique 0 and a variable can only be assigned to clique i if at least one of
2495 * for each clique with n_c variables at least n_c-1 variables can be set to TRUE in a feasible solution;
2497 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2510 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
2513 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
2516 /** force SCIP to clean up all cliques; cliques do not get automatically cleaned up after presolving. Use
2601 * if regardimplics is TRUE, both the cliques and the implications of the implication graph are regarded
2603 * @return TRUE, if there is a clique that contains both variable/clique pairs; FALSE, otherwise
2631 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2647 * If @p writenodeweights is true, only nodes corresponding to variables that have a fractional value and only edges
2657 /** Removes (irrelevant) variable from all its global structures, i.e. cliques, implications and variable bounds.
2679 /** sets the branch factor of the variable; this value can be used in the branching methods to scale the score
2680 * values of the variables; higher factor leads to a higher probability that this variable is chosen for branching
2682 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2704 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2726 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2746 /** sets the branch priority of the variable; variables with higher branch priority are always preferred to variables
2749 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2771 /** changes the branch priority of the variable to the given value, if it is larger than the current priority
2773 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2790 int branchpriority /**< new branch priority of the variable, if it is larger than current priority */
2795 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2815 /** sets the branch direction of the variable (-1: prefer downwards branch, 0: automatic selection, +1: prefer upwards
2818 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2835 SCIP_BRANCHDIR branchdirection /**< preferred branch direction of the variable (downwards, upwards, auto) */
2840 * @warning This type change might change the variable array returned from SCIPgetVars() and SCIPgetVarsData();
2842 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2850 * @note If SCIP is already beyond the SCIP_STAGE_PROBLEM and a original variable is passed, the variable type of the
2851 * corresponding transformed variable is changed; the type of the original variable does not change
2853 * @note If the type changes from a continuous variable to a non-continuous variable the bounds of the variable get
2865 /** in problem creation and solving stage, both bounds of the variable are set to the given value;
2866 * in presolving stage, the variable is converted into a fixed variable, and bounds are changed respectively;
2867 * conversion into a fixed variable changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
2870 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2884 SCIP_Bool* fixed /**< pointer to store whether the fixing was performed (variable was unfixed) */
2887 /** From a given equality a*x + b*y == c, aggregates one of the variables and removes it from the set of
2888 * active problem variables. This changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
2889 * and also renders the arrays returned from the SCIPvarGetImpl...() methods for the two variables invalid.
2890 * In the first step, the equality is transformed into an equality with active problem variables
2891 * a'*x' + b'*y' == c'. If x' == y', this leads to the detection of redundancy if a' == -b' and c' == 0,
2892 * of infeasibility, if a' == -b' and c' != 0, or to a variable fixing x' == c'/(a'+b') (and possible
2894 * In the second step, the variable to be aggregated is chosen among x' and y', prefering a less strict variable
2895 * type as aggregation variable (i.e. continuous variables are preferred over implicit integers, implicit integers
2896 * over integers, and integers over binaries). If none of the variables is continuous, it is tried to find an integer
2897 * aggregation (i.e. integral coefficients a'' and b'', such that a''*x' + b''*y' == c''). This can lead to
2898 * the detection of infeasibility (e.g. if c'' is fractional), or to a rejection of the aggregation (denoted by
2899 * aggregated == FALSE), if the resulting integer coefficients are too large and thus numerically instable.
2904 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
2906 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2924 /** converts variable into multi-aggregated variable; this changes the variable array returned from
2927 * @warning The integrality condition is not checked anymore on the multi-aggregated variable. You must not
2928 * multi-aggregate an integer variable without being sure, that integrality on the aggregation variables
2933 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
2935 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2973 * @note A reduction is called dual, if it may discard feasible solutions, but leaves at least one optimal solution
2974 * intact. Often such reductions are based on analyzing the objective function, reduced costs, and/or dual LPs.
2989 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3001 * @note There exists no "unmark" method since it has to be ensured that if a plugin requires that a variable is not
3040 /** updates the pseudo costs of the given variable and the global pseudo costs after a change of "solvaldelta" in the
3041 * variable's solution value and resulting change of "objdelta" in the in the LP's objective value;
3044 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3144 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction
3146 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction
3164 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction,
3167 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction,
3186 /** get pseudo cost variance of the variable, either for entire solve or only for current branch and bound run
3207 /** calculates a confidence bound for this variable under the assumption of normally distributed pseudo costs
3209 * The confidence bound \f$ \theta \geq 0\f$ denotes the interval borders \f$ [X - \theta, \ X + \theta]\f$, which contains
3210 * the true pseudo costs of the variable, i.e., the expected value of the normal distribution, with a probability
3224 /** check if variable pseudo-costs have a significant difference in location. The significance depends on
3225 * the choice of \p clevel and on the kind of tested hypothesis. The one-sided hypothesis, which
3229 * This method is applied best if variable x has a better pseudo-cost score than y. The method hypothesizes that y were actually
3230 * better than x (despite the current information), meaning that y can be expected to yield branching
3231 * decisions as least as good as x in the long run. If the method returns TRUE, the current history information is
3232 * sufficient to safely rely on the alternative hypothesis that x yields indeed a better branching score (on average)
3237 * @note set \p onesided to FALSE if you are not sure which variable is better. The hypothesis tested then reads
3254 /** tests at a given confidence level whether the variable pseudo-costs only have a small probability to
3255 * exceed a \p threshold. This is useful to determine if past observations provide enough evidence
3256 * to skip an expensive strong-branching step if there is already a candidate that has been proven to yield an improvement
3259 * @note use \p clevel to adjust the level of confidence. For SCIP_CONFIDENCELEVEL_MIN, the method returns TRUE if
3262 * @see SCIP_Confidencelevel for a list of available levels. The used probability limits refer to the one-sided levels
3265 * @return TRUE if the variable pseudo-cost probabilistic model is likely to be smaller than \p threshold
3278 /** check if the current pseudo cost relative error in a direction violates the given threshold. The Relative
3489 /** returns the average number of inferences found after branching on the variable in given direction;
3490 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
3493 * @return the average number of inferences found after branching on the variable in given direction
3511 /** returns the average number of inferences found after branching on the variable in given direction in the current run;
3512 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
3515 * @return the average number of inferences found after branching on the variable in given direction in the current run
3552 /** returns the variable's average inference score value only using inferences of the current run
3554 * @return the variable's average inference score value only using inferences of the current run
3571 /** initializes the upwards and downwards pseudocosts, conflict scores, conflict lengths, inference scores, cutoff scores
3574 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3590 SCIP_Real downpscost, /**< value to which pseudocosts for downwards branching should be initialized */
3591 SCIP_Real uppscost, /**< value to which pseudocosts for upwards branching should be initialized */
3592 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */
3593 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */
3594 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */
3595 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */
3596 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */
3597 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */
3598 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */
3599 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */
3602 /** initializes the upwards and downwards conflict scores, conflict lengths, inference scores, cutoff scores of a
3605 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3622 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */
3623 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */
3624 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */
3625 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */
3626 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */
3627 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */
3628 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */
3629 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */
3632 /** returns the average number of cutoffs found after branching on the variable in given direction;
3633 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
3636 * @return the average number of cutoffs found after branching on the variable in given direction
3654 /** returns the average number of cutoffs found after branching on the variable in given direction in the current run;
3655 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
3658 * @return the average number of cutoffs found after branching on the variable in given direction in the current run
3714 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
3735 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
3738 * @return the variable's average inference/cutoff score value, only using inferences and cutoffs of the current run
3758 * @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:7166
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostVariance(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun)
Definition: scip_var.c:8803
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8723
SCIP_EXPORT SCIP_Real SCIPgetVarAvgInferenceScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9331
SCIP_EXPORT SCIP_Real SCIPgetVarAvgCutoffScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9554
SCIP_EXPORT SCIP_RETCODE SCIPgetVarStrongbranchInt(SCIP *scip, SCIP_VAR *var, 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:3628
SCIP_EXPORT SCIP_RETCODE SCIPchgVarLbNode(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4784
SCIP_EXPORT SCIP_Real SCIPgetVarAvgInferenceCutoffScore(SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight)
Definition: scip_var.c:9617
Definition: struct_var.h:99
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:7569
SCIP_EXPORT SCIP_RETCODE SCIPchgVarBranchDirection(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR branchdirection)
Definition: scip_var.c:7995
SCIP_EXPORT SCIP_Real SCIPgetVarLbAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:1994
SCIP_EXPORT SCIP_RETCODE SCIPwriteVarName(SCIP *scip, FILE *file, SCIP_VAR *var, SCIP_Bool type)
Definition: scip_var.c:220
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:7442
SCIP_EXPORT SCIP_Longint SCIPgetVarStrongbranchLPAge(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:4135
SCIP_EXPORT void SCIPfreeParseVarsPolynomialData(SCIP *scip, SCIP_VAR ****monomialvars, SCIP_Real ***monomialexps, SCIP_Real **monomialcoefs, int **monomialnvars, int nmonomials)
Definition: scip_var.c:1161
Definition: struct_scip.h:58
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:5121
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocost(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8695
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:6573
SCIP_EXPORT SCIP_Real SCIPcomputeVarLbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6417
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:5809
SCIP_EXPORT SCIP_Bool SCIPisStrongbranchDownFirst(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:2645
SCIP_EXPORT SCIP_Real SCIPgetVarRedcost(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:1866
SCIP_EXPORT SCIP_Real SCIPgetVarAvgInferences(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9246
SCIP_EXPORT SCIP_RETCODE SCIPaddVarLocksType(SCIP *scip, SCIP_VAR *var, SCIP_LOCKTYPE locktype, int nlocksdown, int nlocksup)
Definition: scip_var.c:4200
SCIP_EXPORT SCIP_RETCODE SCIPprintVar(SCIP *scip, SCIP_VAR *var, FILE *file)
Definition: scip_var.c:9712
SCIP_EXPORT SCIP_RETCODE SCIPgetTransformedVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars)
Definition: scip_var.c:1483
SCIP_EXPORT SCIP_RETCODE SCIPgetNegatedVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **negvars)
Definition: scip_var.c:1563
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:5637
SCIP_EXPORT SCIP_RETCODE SCIPgetBinvarRepresentative(SCIP *scip, SCIP_VAR *var, SCIP_VAR **repvar, SCIP_Bool *negated)
Definition: scip_var.c:1600
SCIP_EXPORT SCIP_RETCODE SCIPcaptureVar(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:1217
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:5237
Definition: struct_var.h:198
SCIP_EXPORT SCIP_Real SCIPgetVarVSIDSCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9036
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:600
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:5530
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:184
SCIP_EXPORT SCIP_RETCODE SCIPsetRelaxSolVal(SCIP *scip, SCIP_VAR *var, SCIP_Real val)
Definition: scip_var.c:2412
SCIP_EXPORT SCIP_Real SCIPgetVarAvgCutoffsCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9528
SCIP_EXPORT SCIP_Real SCIPgetVarAvgConflictlength(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9192
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:5923
SCIP_EXPORT SCIP_RETCODE SCIPaddVarBranchPriority(SCIP *scip, SCIP_VAR *var, int addpriority)
Definition: scip_var.c:7964
SCIP_EXPORT SCIP_RETCODE SCIPparseVarName(SCIP *scip, const char *str, SCIP_VAR **var, char **endptr)
Definition: scip_var.c:523
SCIP_EXPORT SCIP_Real SCIPgetVarAvgInferenceCutoffScoreCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight)
Definition: scip_var.c:9661
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:8886
public methods for problem variables
SCIP_EXPORT SCIP_Real SCIPadjustedVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real ub)
Definition: scip_var.c:4583
type definitions for return codes for SCIP methods
SCIP_EXPORT SCIP_Real SCIPgetVarConflictlengthScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9130
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostCountCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8777
SCIP_EXPORT SCIP_RETCODE SCIPaddVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real addobj)
Definition: scip_var.c:4500
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostScore(SCIP *scip, SCIP_VAR *var, SCIP_Real solval)
Definition: scip_var.c:8930
SCIP_EXPORT SCIP_RETCODE SCIPtryStrongbranchLPSol(SCIP *scip, SCIP_Bool *foundsol, SCIP_Bool *cutoff)
Definition: scip_var.c:4021
SCIP_EXPORT SCIP_Real SCIPcalculatePscostConfidenceBound(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun, SCIP_CONFIDENCELEVEL clevel)
Definition: scip_var.c:8825
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:3826
SCIP_EXPORT SCIP_RETCODE SCIPchgVarUbLazy(SCIP *scip, SCIP_VAR *var, SCIP_Real lazyub)
Definition: scip_var.c:5087
SCIP_EXPORT SCIP_RETCODE SCIPgetVarStrongbranchFrac(SCIP *scip, SCIP_VAR *var, 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:2909
SCIP_EXPORT SCIP_RETCODE SCIPaddVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real addfactor)
Definition: scip_var.c:7859
SCIP_EXPORT SCIP_RETCODE SCIPlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)
Definition: scip_var.c:4291
SCIP_EXPORT SCIP_RETCODE SCIPaddVarLocks(SCIP *scip, SCIP_VAR *var, int nlocksdown, int nlocksup)
Definition: scip_var.c:4258
SCIP_EXPORT SCIP_RETCODE SCIPgetVarClosestVub(SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvub, int *closestvubidx)
Definition: scip_var.c:6544
Definition: struct_tree.h:132
SCIP_EXPORT SCIP_Real SCIPgetVarVSIDS(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9004
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostScoreCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real solval)
Definition: scip_var.c:8968
SCIP_EXPORT SCIP_RETCODE SCIPsetRelaxSolValsSol(SCIP *scip, SCIP_SOL *sol, SCIP_Bool includeslp)
Definition: scip_var.c:2483
type definitions for LP management
Definition: struct_sol.h:63
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostValCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta)
Definition: scip_var.c:8669
SCIP_EXPORT SCIP_RETCODE SCIPgetVarClosestVlb(SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvlb, int *closestvlbidx)
Definition: scip_var.c:6521
SCIP_EXPORT SCIP_RETCODE SCIPgetNegatedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **negvar)
Definition: scip_var.c:1530
SCIP_EXPORT SCIP_Real SCIPgetVarAvgCutoffs(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9500
SCIP_EXPORT SCIP_RETCODE SCIPmarkRelaxSolInvalid(SCIP *scip)
Definition: scip_var.c:2572
SCIP_EXPORT SCIP_RETCODE SCIPmarkDoNotMultaggrVar(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:8542
SCIP_EXPORT SCIP_Real SCIPgetVarConflictScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9068
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:1740
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:9435
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:3952
SCIP_EXPORT SCIP_RETCODE SCIPchgVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4614
Definition: struct_cons.h:37
SCIP_EXPORT SCIP_RETCODE SCIPchgVarBranchPriority(SCIP *scip, SCIP_VAR *var, int branchpriority)
Definition: scip_var.c:7890
type definitions for SCIP's main datastructure
SCIP_EXPORT SCIP_RETCODE SCIPgetTransformedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar)
Definition: scip_var.c:1442
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:8439
SCIP_EXPORT SCIP_Real SCIPcomputeVarUbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6438
SCIP_EXPORT SCIP_RETCODE SCIPwriteVarsList(SCIP *scip, FILE *file, SCIP_VAR **vars, int nvars, SCIP_Bool type, char delimiter)
Definition: scip_var.c:282
SCIP_EXPORT SCIP_Bool SCIPdoNotMultaggrVar(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:8489
SCIP_EXPORT SCIP_Real SCIPgetVarMultaggrLbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6458
SCIP_EXPORT SCIP_RETCODE SCIPwriteCliqueGraph(SCIP *scip, const char *fname, SCIP_Bool writenodeweights)
Definition: scip_var.c:7620
SCIP_EXPORT SCIP_Real SCIPgetVarAvgCutoffScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9585
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:1647
SCIP_EXPORT SCIP_RETCODE SCIPupdateVarBranchPriority(SCIP *scip, SCIP_VAR *var, int branchpriority)
Definition: scip_var.c:7931
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:7385
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:3986
SCIP_EXPORT SCIP_RETCODE SCIPsetRelaxSolVals(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Bool includeslp)
Definition: scip_var.c:2443
SCIP_EXPORT SCIP_Real SCIPgetVarMultaggrLbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6488
Definition: struct_prop.h:37
SCIP_EXPORT SCIP_RETCODE SCIPscaleVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real scale)
Definition: scip_var.c:7831
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:9364
SCIP_EXPORT SCIP_RETCODE SCIPchgVarLbLazy(SCIP *scip, SCIP_VAR *var, SCIP_Real lazylb)
Definition: scip_var.c:5054
SCIP_EXPORT SCIP_Real SCIPgetVarFarkasCoef(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:1956
SCIP_EXPORT SCIP_RETCODE SCIPunlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)
Definition: scip_var.c:4376
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:5348
SCIP_EXPORT SCIP_RETCODE SCIPtransformVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar)
Definition: scip_var.c:1352
SCIP_EXPORT SCIP_Bool SCIPisVarPscostRelerrorReliable(SCIP *scip, SCIP_VAR *var, SCIP_Real threshold, SCIP_CONFIDENCELEVEL clevel)
Definition: scip_var.c:8905
SCIP_EXPORT SCIP_RETCODE SCIPendStrongbranch(SCIP *scip)
Definition: scip_var.c:2734
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:104
SCIP_EXPORT SCIP_RETCODE SCIPgetActiveVars(SCIP *scip, SCIP_VAR **vars, int *nvars, int varssize, int *requiredsize)
Definition: scip_var.c:1832
SCIP_EXPORT SCIP_Real SCIPgetRelaxSolVal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:2593
SCIP_EXPORT SCIP_Real SCIPgetVarAvgConflictlengthCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9218
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:3715
type definitions for branch and bound tree
SCIP_EXPORT SCIP_Real SCIPcomputeVarLbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6375
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:699
SCIP_EXPORT SCIP_RETCODE SCIPfixVar(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_Bool *infeasible, SCIP_Bool *fixed)
Definition: scip_var.c:8180
SCIP_EXPORT SCIP_RETCODE SCIPchgVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4880
SCIP_EXPORT SCIP_Longint SCIPgetVarStrongbranchNode(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:4101
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:6032
SCIP_EXPORT SCIP_RETCODE SCIPchgVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4704
SCIP_EXPORT SCIP_RETCODE SCIPchgVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real branchfactor)
Definition: scip_var.c:7803
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:6632
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:2130
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:809
type definitions for propagators
SCIP_EXPORT SCIP_Real SCIPcomputeVarUbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6396
SCIP_EXPORT SCIP_RETCODE SCIPmarkRelaxSolValid(SCIP *scip, SCIP_Bool includeslp)
Definition: scip_var.c:2549
SCIP_EXPORT SCIP_RETCODE SCIPclearRelaxSolVals(SCIP *scip)
Definition: scip_var.c:2366
SCIP_EXPORT SCIP_RETCODE SCIPchgVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4967
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:5417
SCIP_EXPORT SCIP_RETCODE SCIPstartStrongbranch(SCIP *scip, SCIP_Bool enablepropagation)
Definition: scip_var.c:2676
SCIP_EXPORT SCIP_RETCODE SCIPchgVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real newobj)
Definition: scip_var.c:4451
SCIP_EXPORT SCIP_RETCODE SCIPchgVarName(SCIP *scip, SCIP_VAR *var, const char *name)
Definition: scip_var.c:1302
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:6831
SCIP_EXPORT SCIP_Real SCIPgetVarAvgInferencesCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9274
SCIP_EXPORT SCIP_RETCODE SCIPreleaseVar(SCIP *scip, SCIP_VAR **var)
Definition: scip_var.c:1251
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostVal(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta)
Definition: scip_var.c:8641
SCIP_EXPORT SCIP_Real SCIPgetVarSol(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:2309
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:3318
SCIP_EXPORT int SCIPgetVarNStrongbranchs(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:4167
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:1911
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:6260
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:394
SCIP_EXPORT SCIP_RETCODE SCIPwriteVarsLinearsum(SCIP *scip, FILE *file, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_Bool type)
Definition: scip_var.c:333
SCIP_EXPORT SCIP_RETCODE SCIPgetProbvarSum(SCIP *scip, SCIP_VAR **var, SCIP_Real *scalar, SCIP_Real *constant)
Definition: scip_var.c:1796
SCIP_EXPORT SCIP_Real SCIPgetVarBdAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:2266
SCIP_EXPORT SCIP_Real SCIPgetVarConflictlengthScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9161
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:8856
SCIP_EXPORT SCIP_RETCODE SCIPremoveVarFromGlobalStructures(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:7769
SCIP_EXPORT SCIP_Real SCIPgetVarAvgInferenceScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9300
SCIP_EXPORT SCIP_Real SCIPgetVarMultaggrUbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6473
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:6503
SCIP_EXPORT SCIP_RETCODE SCIPchgVarUbNode(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4828
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:6692
SCIP_EXPORT SCIP_RETCODE SCIPflattenVarAggregationGraph(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:1696
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:8305
SCIP_EXPORT SCIP_RETCODE SCIPchgVarType(SCIP *scip, SCIP_VAR *var, SCIP_VARTYPE vartype, SCIP_Bool *infeasible)
Definition: scip_var.c:8084
Definition: objbenders.h:33
SCIP_EXPORT SCIP_Real SCIPadjustedVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real lb)
Definition: scip_var.c:4551
SCIP_EXPORT SCIP_RETCODE SCIPgetVarSols(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_Real *vals)
Definition: scip_var.c:2329
SCIP_EXPORT SCIP_Bool SCIPgetVarWasFixedAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:2284
SCIP_EXPORT SCIP_RETCODE SCIPupdateVarPseudocost(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta, SCIP_Real objdelta, SCIP_Real weight)
Definition: scip_var.c:8607
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:5740
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:464
SCIP_EXPORT SCIP_LPSOLSTAT SCIPgetLastStrongbranchLPSolStat(SCIP *scip, SCIP_BRANCHDIR branchdir)
Definition: scip_var.c:3930
SCIP_EXPORT SCIP_Real SCIPgetVarConflictScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9099
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:6140
SCIP_EXPORT SCIP_Real SCIPgetVarPseudocostCount(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8749
SCIP_EXPORT SCIP_RETCODE SCIPtransformVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars)
Definition: scip_var.c:1392