All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
scip.h
Go to the documentation of this file.
27 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
207 * @note The SCIP default message handler is installed. Use the method SCIPsetMessagehdlr() to install your own
208 * message handler or SCIPsetMessagehdlrLogfile() and SCIPsetMessagehdlrQuiet() to write into a log
211 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
225 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
264 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
267 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
291 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
322 /** returns whether the presolving process would be finished given no more presolving reductions are found in this
325 * Checks whether the number of presolving rounds is not exceeded and the presolving reductions found in the current
328 * @note if subsequent presolvers find more reductions, presolving might continue even if the method returns FALSE
329 * @note does not check whether infeasibility or unboundedness was already detected in presolving (which would result
371 /** installs the given message handler, such that all messages are passed to this handler. A messages handler can be
374 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
381 * @note The currently installed messages handler gets freed if this SCIP instance is its last user (w.r.t. capture/release).
386 SCIP_MESSAGEHDLR* messagehdlr /**< message handler to install, or NULL to suppress all output */
420 /** prints a dialog message that requests user interaction or is a direct response to a user interactive command */
472 /** copies plugins from sourcescip to targetscip; in case that a constraint handler which does not need constraints
473 * cannot be copied, valid will return FALSE. All plugins can declare that, if their copy process failed, the
477 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
481 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
499 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution
533 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
535 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
553 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution
567 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
575 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
577 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
595 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution
609 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
614 /** returns copy of the source variable; if there already is a copy of the source variable in the variable hash map,
615 * it is just returned as target variable; elsewise a new variable will be created and added to the target SCIP; this
618 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
620 * @note if a new variable was created, this variable will be added to the target-SCIP, but it is not captured
622 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
656 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
658 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
664 /** copies all active variables from source-SCIP and adds these variable to the target-SCIP; the mapping between these
665 * variables are stored in the variable hashmap, target-SCIP has to be in problem creation stage, fixed and aggregated
670 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
673 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
700 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
702 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
707 /** copies all original variables from source-SCIP and adds these variable to the target-SCIP; the mapping between these
708 * variables are stored in the variable hashmap, target-SCIP has to be in problem creation stage, fixed and aggregated
713 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
716 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
743 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
745 SCIP_HASHMAP* consmap /**< a hashmap to store the mapping of source constraints to the corresponding
749 /** returns copy of the source constraint; if there already is a copy of the source constraint in the constraint hash
750 * map, it is just returned as target constraint; elsewise a new constraint will be created; this created constraint is
751 * added to the constraint hash map and returned as target constraint; the variable map is used to map the variables of
754 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution may
755 * be declared feasible even if it violates this particular constraint. This constellation should only be
756 * used, if no LP or pseudo solution can violate the constraint -- e.g. if a local constraint is redundant due
759 * @note The constraint is not added to the target SCIP. You can check whether a constraint is added by calling
760 * SCIPconsIsAdded(). (If you mix SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add
763 * @note The constraint is always captured, either during the creation of the copy or after finding the copy of the
766 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
769 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
806 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding
808 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
810 const char* name, /**< name of constraint, or NULL if the name of the source constraint should be used */
819 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup? */
820 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
827 * variables between the source and the target SCIP a hash map can be given; if the variable hash
828 * map is NULL or necessary variable mapping is missing, the required variables are created in the
829 * target-SCIP and added to the hash map, if not NULL; all variables which are created are added to
833 * @note the constraints are added to the target-SCIP but are not (user) captured in the target SCIP. (If you mix
834 * SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add explicitly and what is already
837 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
840 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
867 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding
869 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
877 /** copies all original constraints from the source-SCIP and adds these to the target-SCIP; for mapping the
878 * variables between the source and the target SCIP a hash map can be given; if the variable hash
879 * map is NULL or necessary variable mapping is missing, the required variables are created in the
880 * target-SCIP and added to the hash map, if not NULL; all variables which are created are added to
884 * @note the constraints are added to the target-SCIP but are not (user) captured in the target SCIP. (If you mix
885 * SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add explicitly and what is already
888 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
891 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
918 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding
920 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
931 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
952 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
960 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
963 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
998 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1006 * This function should be called for a targetscip in transformed stage. It can save time in presolving of the
1009 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1012 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1046 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1056 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1059 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1124 * @note all variables and constraints which are created in the target-SCIP are not (user) captured
1126 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1130 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1160 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1164 SCIP_Bool enablepricing, /**< should pricing be enabled in copied SCIP instance? If TRUE, pricer
1172 /** copies source SCIP original problem to target SCIP; the copying process is done in the following order:
1179 * @note all variables and constraints which are created in the target-SCIP are not (user) captured
1181 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1185 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1215 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1217 const char* suffix, /**< suffix which will be added to the names of the target SCIP, might be empty */
1218 SCIP_Bool enablepricing, /**< should pricing be enabled in copied SCIP instance? If TRUE, pricer
1235 /** creates a SCIP_Bool parameter, sets it to its default value, and adds it to the parameter set
1237 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1254 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1271 /** creates a SCIP_Longint parameter, sets it to its default value, and adds it to the parameter set
1273 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1290 /** creates a SCIP_Real parameter, sets it to its default value, and adds it to the parameter set
1292 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1311 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1322 const char* allowedvalues, /**< array with possible parameter values, or NULL if not restricted */
1327 /** creates a string(char*) parameter, sets it to its default value, and adds it to the parameter set
1329 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1337 char** valueptr, /**< pointer to store the current parameter value, or NULL; if not NULL then *valueptr should be NULL */
1366 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1378 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1390 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1402 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1414 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1426 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1438 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1441 * @note: Be careful with this method! Some general settings, e.g., the time or node limit, should not be fixed because
1452 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1463 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1475 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1487 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1499 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1511 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1523 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1535 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1547 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1559 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1571 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1583 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1595 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1607 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1619 * @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
1638 SCIP_Bool onlychanged /**< should only the parameters been written, that are changed from default? */
1643 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1654 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1672 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1682 /** sets parameters to deactivate separators and heuristics that use auxiliary SCIP instances; should be called for
1685 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1701 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1718 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1735 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1775 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1782 * @note method has all reader callbacks as arguments and is thus changed every time a new callback is added
1792 SCIP_DECL_READERCOPY ((*readercopy)), /**< copy method of reader or NULL if you don't want to copy your plugin into sub-SCIPs */
1799 /** creates a reader and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
1803 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1810 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeReader() instead
1824 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1835 SCIP_DECL_READERCOPY ((*readercopy)) /**< copy method of reader or NULL if you don't want to copy your plugin into sub-SCIPs */
1840 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1856 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1872 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1906 * To use the variable pricer for solving a problem, it first has to be activated with a call to SCIPactivatePricer().
1909 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1916 * @note method has all pricer callbacks as arguments and is thus changed every time a new callback is added
1931 SCIP_DECL_PRICERCOPY ((*pricercopy)), /**< copy method of variable pricer or NULL if you don't want to copy your plugin into sub-SCIPs */
1935 SCIP_DECL_PRICERINITSOL((*pricerinitsol)),/**< solving process initialization method of variable pricer */
1936 SCIP_DECL_PRICEREXITSOL((*pricerexitsol)),/**< solving process deinitialization method of variable pricer */
1937 SCIP_DECL_PRICERREDCOST((*pricerredcost)),/**< reduced cost pricing method of variable pricer for feasible LPs */
1938 SCIP_DECL_PRICERFARKAS((*pricerfarkas)), /**< Farkas pricing method of variable pricer for infeasible LPs */
1942 /** creates a variable pricer and includes it in SCIP with all non-fundamental callbacks set to NULL;
1943 * if needed, these can be added afterwards via setter functions SCIPsetPricerCopy(), SCIPsetPricerFree(),
1947 * To use the variable pricer for solving a problem, it first has to be activated with a call to SCIPactivatePricer().
1950 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1957 * @note if you want to set all callbacks with a single method call, consider using SCIPincludePricer() instead
1971 SCIP_DECL_PRICERREDCOST((*pricerredcost)),/**< reduced cost pricing method of variable pricer for feasible LPs */
1972 SCIP_DECL_PRICERFARKAS((*pricerfarkas)), /**< Farkas pricing method of variable pricer for infeasible LPs */
1978 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1989 SCIP_DECL_PRICERCOPY ((*pricercopy)) /**< copy method of pricer or NULL if you don't want to copy your plugin into sub-SCIPs */
1994 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2010 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2026 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2042 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2053 SCIP_DECL_PRICERINITSOL ((*pricerinitsol))/**< solving process initialization method of pricer */
2058 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2069 SCIP_DECL_PRICEREXITSOL((*pricerexitsol)) /**< solving process deinitialization method of pricer */
2079 /** returns the array of currently available variable pricers; active pricers are in the first slots of the array */
2091 /** returns the number of currently active variable pricers, that are used in the LP solving loop */
2106 * This method should be called during the problem creation stage for all pricers that are necessary to solve
2110 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2124 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2139 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2146 * @note method has all constraint handler callbacks as arguments and is thus changed every time a new
2158 int chckpriority, /**< priority of the constraint handler for checking feasibility (and propagation) */
2159 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */
2160 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */
2161 int eagerfreq, /**< frequency for using all instead of only the useful constraints in separation,
2163 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */
2164 SCIP_Bool delaysepa, /**< should separation method be delayed, if other separators found cuts? */
2165 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */
2166 SCIP_Bool delaypresol, /**< should presolving method be delayed, if other presolvers found reductions? */
2167 SCIP_Bool needscons, /**< should the constraint handler be skipped, if no constraints are available? */
2168 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagators should be executed */
2169 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2173 SCIP_DECL_CONSINITPRE ((*consinitpre)), /**< presolving initialization method of constraint handler */
2174 SCIP_DECL_CONSEXITPRE ((*consexitpre)), /**< presolving deinitialization method of constraint handler */
2175 SCIP_DECL_CONSINITSOL ((*consinitsol)), /**< solving process initialization method of constraint handler */
2176 SCIP_DECL_CONSEXITSOL ((*consexitsol)), /**< solving process deinitialization method of constraint handler */
2178 SCIP_DECL_CONSTRANS ((*constrans)), /**< transform constraint data into data belonging to the transformed problem */
2179 SCIP_DECL_CONSINITLP ((*consinitlp)), /**< initialize LP with relaxations of "initial" constraints */
2181 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */
2202 /** creates a constraint handler and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
2203 * Optional callbacks can be set via specific setter functions, see SCIPsetConshdlrInit(), SCIPsetConshdlrExit(),
2204 * SCIPsetConshdlrCopy(), SCIPsetConshdlrFree(), SCIPsetConshdlrInitsol(), SCIPsetConshdlrExitsol(),
2205 * SCIPsetConshdlrInitpre(), SCIPsetConshdlrExitpre(), SCIPsetConshdlrPresol(), SCIPsetConshdlrDelete(),
2206 * SCIPsetConshdlrDelvars(), SCIPsetConshdlrInitlp(), SCIPsetConshdlrActive(), SCIPsetConshdlrDeactive(),
2207 * SCIPsetConshdlrEnable(), SCIPsetConshdlrDisable(), SCIPsetConshdlrResprop(), SCIPsetConshdlrTrans(),
2210 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2217 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeConshdlr() instead
2226 int chckpriority, /**< priority of the constraint handler for checking feasibility (and propagation) */
2227 int eagerfreq, /**< frequency for using all instead of only the useful constraints in separation,
2229 SCIP_Bool needscons, /**< should the constraint handler be skipped, if no constraints are available? */
2239 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2251 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */
2252 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */
2254 SCIP_Bool delaysepa /**< should separation method be delayed, if other separators found cuts? */
2259 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2271 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */
2272 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */
2273 SCIP_PROPTIMING timingmask /**< positions in the node solving loop where propagators should be executed */
2278 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2289 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2295 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2311 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2327 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2343 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2354 SCIP_DECL_CONSINITSOL((*consinitsol)) /**< solving process initialization method of constraint handler */
2359 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2370 SCIP_DECL_CONSEXITSOL ((*consexitsol))/**< solving process deinitialization method of constraint handler */
2375 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2386 SCIP_DECL_CONSINITPRE((*consinitpre)) /**< preprocessing initialization method of constraint handler */
2391 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2402 SCIP_DECL_CONSEXITPRE((*consexitpre)) /**< preprocessing deinitialization method of constraint handler */
2407 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2419 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */
2420 SCIP_Bool delaypresol /**< should presolving method be delayed, if other presolvers found reductions? */
2425 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2439 /** sets method of constraint handler to transform constraint data into data belonging to the transformed problem
2441 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2452 SCIP_DECL_CONSTRANS ((*constrans)) /**< transform constraint data into data belonging to the transformed problem */
2455 /** sets method of constraint handler to initialize LP with relaxations of "initial" constraints
2457 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2468 SCIP_DECL_CONSINITLP ((*consinitlp)) /**< initialize LP with relaxations of "initial" constraints */
2473 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2489 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2505 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2521 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2537 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2553 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2569 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2585 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2601 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2617 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2652 * @note method has all conflict handler callbacks as arguments and is thus changed every time a new
2663 SCIP_DECL_CONFLICTCOPY((*conflictcopy)), /**< copy method of conflict handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2667 SCIP_DECL_CONFLICTINITSOL((*conflictinitsol)),/**< solving process initialization method of conflict handler */
2668 SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol)),/**< solving process deinitialization method of conflict handler */
2669 SCIP_DECL_CONFLICTEXEC((*conflictexec)), /**< conflict processing method of conflict handler */
2673 /** creates a conflict handler and includes it in SCIP with its most fundamental callbacks. All non-fundamental
2675 * Optional callbacks can be set via specific setter functions SCIPsetConflicthdlrCopy(), SCIPsetConflicthdlrFree(),
2679 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeConflicthdlr() instead
2688 SCIP_DECL_CONFLICTEXEC((*conflictexec)), /**< conflict processing method of conflict handler */
2729 SCIP_DECL_CONFLICTINITSOL((*conflictinitsol))/**< solving process initialization method of conflict handler */
2737 SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol))/**< solving process deinitialization method of conflict handler */
2780 int maxrounds, /**< maximal number of presolving rounds the presolver participates in (-1: no limit) */
2782 SCIP_DECL_PRESOLCOPY ((*presolcopy)), /**< copy method of presolver or NULL if you don't want to copy your plugin into sub-SCIPs */
2783 SCIP_DECL_PRESOLFREE ((*presolfree)), /**< destructor of presolver to free user data (called when SCIP is exiting) */
2784 SCIP_DECL_PRESOLINIT ((*presolinit)), /**< initialization method of presolver (called after problem was transformed) */
2785 SCIP_DECL_PRESOLEXIT ((*presolexit)), /**< deinitialization method of presolver (called before transformed problem is freed) */
2786 SCIP_DECL_PRESOLINITPRE((*presolinitpre)),/**< presolving initialization method of presolver (called when presolving is about to begin) */
2787 SCIP_DECL_PRESOLEXITPRE((*presolexitpre)),/**< presolving deinitialization method of presolver (called after presolving has been finished) */
2792 /** Creates a presolver and includes it in SCIP with its fundamental callback. All non-fundamental (or optional)
2793 * callbacks as, e.g., init and exit callbacks, will be set to NULL. Optional callbacks can be set via specific setter
2794 * functions. These are SCIPsetPresolCopy(), SCIPsetPresolFree(), SCIPsetPresolInit(), SCIPsetPresolExit(),
2797 * @note if you want to set all callbacks with a single method call, consider using SCIPincludePresol() instead
2806 int maxrounds, /**< maximal number of presolving rounds the presolver participates in (-1: no limit) */
2817 SCIP_DECL_PRESOLCOPY ((*presolcopy)) /**< copy method of presolver or NULL if you don't want to copy your plugin into sub-SCIPs */
2849 SCIP_DECL_PRESOLINITPRE ((*presolinitpre))/**< solving process initialization method of presolver */
2856 SCIP_DECL_PRESOLEXITPRE ((*presolexitpre))/**< solving process deinitialization method of presolver */
2888 * @note method has all relaxation handler callbacks as arguments and is thus changed every time a new
2898 int priority, /**< priority of the relaxation handler (negative: after LP, non-negative: before LP) */
2900 SCIP_DECL_RELAXCOPY ((*relaxcopy)), /**< copy method of relaxation handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2904 SCIP_DECL_RELAXINITSOL((*relaxinitsol)), /**< solving process initialization method of relaxation handler */
2905 SCIP_DECL_RELAXEXITSOL((*relaxexitsol)), /**< solving process deinitialization method of relaxation handler */
2912 * Optional callbacks can be set via specific setter functions, see SCIPsetRelaxInit(), SCIPsetRelaxExit(),
2915 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeRelax() instead
2923 int priority, /**< priority of the relaxation handler (negative: after LP, non-negative: before LP) */
2934 SCIP_DECL_RELAXCOPY ((*relaxcopy)) /**< copy method of relaxation handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2966 SCIP_DECL_RELAXINITSOL((*relaxinitsol)) /**< solving process initialization method of relaxation handler */
2974 SCIP_DECL_RELAXEXITSOL((*relaxexitsol)) /**< solving process deinitialization method of relaxation handler */
3018 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound compared
3022 SCIP_DECL_SEPACOPY ((*sepacopy)), /**< copy method of separator or NULL if you don't want to copy your plugin into sub-SCIPs */
3026 SCIP_DECL_SEPAINITSOL ((*sepainitsol)), /**< solving process initialization method of separator */
3027 SCIP_DECL_SEPAEXITSOL ((*sepaexitsol)), /**< solving process deinitialization method of separator */
3029 SCIP_DECL_SEPAEXECSOL ((*sepaexecsol)), /**< arbitrary primal solution separation method of separator */
3033 /** creates a separator and includes it in SCIP with its most fundamental callbacks. All non-fundamental
3035 * Optional callbacks can be set via specific setter functions, see SCIPsetSepaInit(), SCIPsetSepaFree(),
3038 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeSepa() instead
3048 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound compared
3053 SCIP_DECL_SEPAEXECSOL ((*sepaexecsol)), /**< arbitrary primal solution separation method of separator */
3062 SCIP_DECL_SEPACOPY ((*sepacopy)) /**< copy method of separator or NULL if you don't want to copy your plugin into sub-SCIPs */
3094 SCIP_DECL_SEPAINITSOL ((*sepainitsol)) /**< solving process initialization method of separator */
3102 SCIP_DECL_SEPAEXITSOL ((*sepaexitsol)) /**< solving process deinitialization method of separator */
3144 int priority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3147 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagators should be executed */
3148 int presolpriority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3149 int presolmaxrounds, /**< maximal number of presolving rounds the propagator participates in (-1: no limit) */
3150 SCIP_Bool presoldelay, /**< should presolving be delayed, if other presolvers found reductions? */
3151 SCIP_DECL_PROPCOPY ((*propcopy)), /**< copy method of propagator or NULL if you don't want to copy your plugin into sub-SCIPs */
3156 SCIP_DECL_PROPEXITPRE ((*propexitpre)), /**< presolving deinitialization method of propagator */
3157 SCIP_DECL_PROPINITSOL ((*propinitsol)), /**< solving process initialization method of propagator */
3158 SCIP_DECL_PROPEXITSOL ((*propexitsol)), /**< solving process deinitialization method of propagator */
3165 /** creates a propagator and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
3166 * Optional callbacks can be set via specific setter functions, see SCIPsetPropInit(), SCIPsetPropExit(),
3170 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeProp() instead
3178 int priority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3181 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagators should be executed */
3191 SCIP_DECL_PROPCOPY ((*propcopy)) /**< copy method of propagator or NULL if you don't want to copy your plugin into sub-SCIPs */
3223 SCIP_DECL_PROPINITSOL((*propinitsol)) /**< solving process initialization method of propagator */
3231 SCIP_DECL_PROPEXITSOL ((*propexitsol)) /**< solving process deinitialization method of propagator */
3239 SCIP_DECL_PROPINITPRE((*propinitpre)) /**< preprocessing initialization method of propagator */
3247 SCIP_DECL_PROPEXITPRE((*propexitpre)) /**< preprocessing deinitialization method of propagator */
3256 int presolpriority, /**< presolving priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3257 int presolmaxrounds, /**< maximal number of presolving rounds the propagator participates in (-1: no limit) */
3258 SCIP_Bool presoldelay /**< should presolving be delayed, if other presolvers found reductions? */
3308 * callback is added in future releases; consider using SCIPincludeHeurBasic() and setter functions
3321 unsigned int timingmask, /**< positions in the node solving loop where heuristic should be executed;
3324 SCIP_DECL_HEURCOPY ((*heurcopy)), /**< copy method of primal heuristic or NULL if you don't want to copy your plugin into sub-SCIPs */
3328 SCIP_DECL_HEURINITSOL ((*heurinitsol)), /**< solving process initialization method of primal heuristic */
3329 SCIP_DECL_HEUREXITSOL ((*heurexitsol)), /**< solving process deinitialization method of primal heuristic */
3337 * Optional callbacks can be set via specific setter functions, see SCIPsetHeurCopy(), SCIPsetHeurFree(),
3340 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeHeur() instead
3353 unsigned int timingmask, /**< positions in the node solving loop where heuristic should be executed;
3365 SCIP_DECL_HEURCOPY ((*heurcopy)) /**< copy method of primal heuristic or NULL if you don't want to copy your plugin into sub-SCIPs */
3397 SCIP_DECL_HEURINITSOL ((*heurinitsol)) /**< solving process initialization method of primal heuristic */
3405 SCIP_DECL_HEUREXITSOL ((*heurexitsol)) /**< solving process deinitialization method of primal heuristic */
3437 * @note method has all event handler callbacks as arguments and is thus changed every time a new
3438 * callback is added in future releases; consider using SCIPincludeEventhdlrBasic() and setter functions
3446 SCIP_DECL_EVENTCOPY ((*eventcopy)), /**< copy method of event handler or NULL if you don't want to copy your plugin into sub-SCIPs */
3450 SCIP_DECL_EVENTINITSOL((*eventinitsol)), /**< solving process initialization method of event handler */
3451 SCIP_DECL_EVENTEXITSOL((*eventexitsol)), /**< solving process deinitialization method of event handler */
3457 /** creates an event handler and includes it in SCIP with all its non-fundamental callbacks set
3459 * SCIPsetEventhdlrCopy(), SCIPsetEventhdlrFree(), SCIPsetEventhdlrInit(), SCIPsetEventhdlrExit(),
3462 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeEventhdlr() instead
3511 SCIP_DECL_EVENTINITSOL((*eventinitsol)) /**< solving process initialization callback of event handler */
3519 SCIP_DECL_EVENTEXITSOL((*eventexitsol)) /**< solving process deinitialization callback of event handler */
3551 * @note method has all node selector callbacks as arguments and is thus changed every time a new
3552 * callback is added in future releases; consider using SCIPincludeNodeselBasic() and setter functions
3562 SCIP_DECL_NODESELCOPY ((*nodeselcopy)), /**< copy method of node selector or NULL if you don't want to copy your plugin into sub-SCIPs */
3566 SCIP_DECL_NODESELINITSOL((*nodeselinitsol)),/**< solving process initialization method of node selector */
3567 SCIP_DECL_NODESELEXITSOL((*nodeselexitsol)),/**< solving process deinitialization method of node selector */
3573 /** Creates a node selector and includes it in SCIP with its most fundamental callbacks. All non-fundamental
3575 * Optional callbacks can be set via specific setter functions, see SCIPsetNodeselCopy(), SCIPsetNodeselFree(),
3576 * SCIPsetNodeselInit(), SCIPsetNodeselExit(), SCIPsetNodeselInitsol(), and SCIPsetNodeselExitsol()
3578 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeNodesel() instead
3598 SCIP_DECL_NODESELCOPY ((*nodeselcopy)) /**< copy method of node selector or NULL if you don't want to copy your plugin into sub-SCIPs */
3630 SCIP_DECL_NODESELINITSOL ((*nodeselinitsol))/**< solving process initialization method of node selector */
3638 SCIP_DECL_NODESELEXITSOL ((*nodeselexitsol))/**< solving process deinitialization method of node selector */
3684 * @note method has all branching rule callbacks as arguments and is thus changed every time a new
3685 * callback is added in future releases; consider using SCIPincludeBranchruleBasic() and setter functions
3694 int maxdepth, /**< maximal depth level, up to which this branching rule should be used (or -1) */
3695 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound
3698 SCIP_DECL_BRANCHCOPY ((*branchcopy)), /**< copy method of branching rule or NULL if you don't want to copy your plugin into sub-SCIPs */
3702 SCIP_DECL_BRANCHINITSOL((*branchinitsol)),/**< solving process initialization method of branching rule */
3703 SCIP_DECL_BRANCHEXITSOL((*branchexitsol)),/**< solving process deinitialization method of branching rule */
3704 SCIP_DECL_BRANCHEXECLP((*branchexeclp)), /**< branching execution method for fractional LP solutions */
3705 SCIP_DECL_BRANCHEXECEXT((*branchexecext)),/**< branching execution method for external candidates */
3706 SCIP_DECL_BRANCHEXECPS((*branchexecps)), /**< branching execution method for not completely fixed pseudo solutions */
3710 /** creates a branching rule and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
3711 * Optional callbacks can be set via specific setter functions, see SCIPsetBranchruleInit(), SCIPsetBranchruleExit(),
3712 * SCIPsetBranchruleCopy(), SCIPsetBranchruleFree(), SCIPsetBranchruleInitsol(), SCIPsetBranchruleExitsol(),
3715 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeBranchrule() instead
3724 int maxdepth, /**< maximal depth level, up to which this branching rule should be used (or -1) */
3725 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound
3736 SCIP_DECL_BRANCHCOPY ((*branchcopy)) /**< copy method of branching rule or NULL if you don't want to copy your plugin into sub-SCIPs */
3768 SCIP_DECL_BRANCHINITSOL((*branchinitsol)) /**< solving process initialization method of branching rule */
3776 SCIP_DECL_BRANCHEXITSOL((*branchexitsol)) /**< solving process deinitialization method of branching rule */
3784 SCIP_DECL_BRANCHEXECLP((*branchexeclp)) /**< branching execution method for fractional LP solutions */
3792 SCIP_DECL_BRANCHEXECEXT((*branchexecext)) /**< branching execution method for external candidates */
3800 SCIP_DECL_BRANCHEXECPS((*branchexecps)) /**< branching execution method for not completely fixed pseudo solutions */
3830 /** sets maximal depth level, up to which this branching rule should be used (-1 for no limit) */
3838 /** sets maximal relative distance from current node's dual bound to primal bound for applying branching rule */
3854 SCIP_DECL_DISPCOPY ((*dispcopy)), /**< copy method of display column or NULL if you don't want to copy your plugin into sub-SCIPs */
3858 SCIP_DECL_DISPINITSOL ((*dispinitsol)), /**< solving process initialization method of display column */
3859 SCIP_DECL_DISPEXITSOL ((*dispexitsol)), /**< solving process deinitialization method of display column */
3865 SCIP_Bool stripline /**< should the column be separated with a line from its right neighbor? */
3887 /** automatically selects display columns for being shown w.r.t. the display width parameter */
3980 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3987 SCIP_DECL_DIALOGCOPY ((*dialogcopy)), /**< copy method of dialog or NULL if you don't want to copy your plugin into sub-SCIPs */
4009 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4020 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4029 /** makes given dialog the root dialog of SCIP's interactive user shell; captures dialog and releases former root dialog
4031 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4051 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4063 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4072 /** adds a single line of input to the command history which can be accessed with the cursor keys
4074 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4085 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4092 * @post After calling this method \SCIP reaches one of the following stages depending on if and when the
4095 * - \ref SCIP_STAGE_TRANSFORMED if the interactive shell was closed after the problem was transformed
4121 /** creates empty problem and initializes all solving data structures (the objective sense is set to MINIMIZE)
4122 * If the problem type requires the use of variable pricers, these pricers should be added to the problem with calls
4123 * to SCIPactivatePricer(). These pricers are automatically deactivated, when the problem is freed.
4125 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4146 SCIP_DECL_PROBTRANS ((*probtrans)), /**< creates user data of transformed problem by transforming original user data */
4148 SCIP_DECL_PROBINITSOL ((*probinitsol)), /**< solving process initialization method of transformed data */
4149 SCIP_DECL_PROBEXITSOL ((*probexitsol)), /**< solving process deinitialization method of transformed data */
4150 SCIP_DECL_PROBCOPY ((*probcopy)), /**< copies user data if you want to copy it to a subscip, or NULL */
4154 /** creates empty problem and initializes all solving data structures (the objective sense is set to MINIMIZE)
4155 * all callback methods will be set to NULL and can be set afterwards, if needed, via SCIPsetProbDelorig(),
4158 * If the problem type requires the use of variable pricers, these pricers should be added to the problem with calls
4159 * to SCIPactivatePricer(). These pricers are automatically deactivated, when the problem is freed.
4161 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4185 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4196 /** sets callback to create user data of transformed problem by transforming original user data
4198 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4207 SCIP_DECL_PROBTRANS ((*probtrans)) /**< creates user data of transformed problem by transforming original user data */
4212 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4226 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4235 SCIP_DECL_PROBINITSOL ((*probinitsol)) /**< solving process initialization method of transformed data */
4240 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4249 SCIP_DECL_PROBEXITSOL ((*probexitsol)) /**< solving process deinitialization method of transformed data */
4254 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4263 SCIP_DECL_PROBCOPY ((*probcopy)) /**< copies user data if you want to copy it to a subscip, or NULL */
4268 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4296 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4324 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4338 * @note If you want the write all constraints (including the once which are redundant for example), you need to set
4352 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4375 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4386 SCIP_Bool permuteconss, /**< should the list of constraints in each constraint handler be permuted? */
4418 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4466 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4514 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4528 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4540 /** adds offset of objective function to original problem and to all existing solution in original space
4542 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4634 /** sets limit on objective function, such that only solutions better than this limit are accepted
4636 * @note SCIP will only look for solutions with a strictly better objective value, thus, e.g., prune
4638 * However, SCIP will also collect solutions with objective value worse than the objective limit and
4640 * @note If SCIP can prove that there exists no solution with a strictly better objective value, the solving status
4642 * The only exception is that by chance, SCIP found a solution with the same objective value and thus
4645 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4686 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4719 /** returns the Euclidean norm of the objective function vector (available only for transformed problem)
4741 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4761 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4775 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4792 SCIP_Bool* deleted /**< pointer to store whether variable was successfully marked to be deleted */
4795 /** gets variables of the problem along with the numbers of different variable types; data may become invalid after
4798 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4813 * @note Variables in the vars array are ordered: binaries first, then integers, implicit integers and continuous last.
4822 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */
4842 * @warning If your are using the methods which add or change bound of variables (e.g., SCIPchgVarType(), SCIPfixVar(),
4843 * SCIPaggregateVars(), and SCIPmultiaggregateVar()), it can happen that the internal variable array (which is
4844 * accessed via this method) gets resized and/or resorted. This can invalid the data pointer which is returned
4847 * @note Variables in the array are ordered: binaries first, then integers, implicit integers and continuous last.
4961 * @note In case of the original problem the number of variables is counted. In case of the transformed problem the
5024 /** gets variables of the original problem along with the numbers of different variable types; data may become invalid
5027 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5051 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */
5220 /** gets variables of the original or transformed problem along with the numbers of different variable types;
5222 * data may become invalid after calls to SCIPchgVarType(), SCIPfixVar(), SCIPaggregateVars(), and
5225 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5242 SCIP_SOL* sol, /**< primal solution that selects the problem space, NULL for current solution */
5247 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */
5275 /** returns TRUE iff all potential variables exist in the problem, and FALSE, if there may be additional variables,
5298 /** adds constraint to the problem; if constraint is only valid locally, it is added to the local subproblem of the
5300 * if a local constraint is added at the root node, it is automatically upgraded into a global constraint
5302 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5321 /** globally removes constraint from all subproblems; removes constraint from the constraint set change data of the
5324 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5440 * @warning If your are using the method SCIPaddCons(), it can happen that the internal constraint array (which is
5441 * accessed via this method) gets resized. This can invalid the pointer which is returned by this method.
5494 /** computes the number of check constraint in the current node (loop over all constraint handler and cumulates the
5525 /** adds constraint to the given node (and all of its subnodes), even if it is a global constraint;
5526 * It is sometimes desirable to add the constraint to a more local node (i.e., a node of larger depth) even if
5527 * the constraint is also valid higher in the tree, for example, if one wants to produce a constraint which is
5529 * In this case, one should pass the more global node where the constraint is valid as "validnode".
5530 * Note that the same constraint cannot be added twice to the branching tree with different "validnode" parameters.
5531 * If the constraint is valid at the same node as it is inserted (the usual case), one should pass NULL as "validnode".
5532 * If the "validnode" is the root node, it is automatically upgraded into a global constraint, but still only added to
5533 * the given node. If a local constraint is added to the root node, it is added to the global problem instead.
5535 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5552 /** adds constraint locally to the current node (and all of its subnodes), even if it is a global constraint;
5553 * It is sometimes desirable to add the constraint to a more local node (i.e., a node of larger depth) even if
5554 * the constraint is also valid higher in the tree, for example, if one wants to produce a constraint which is
5557 * If the constraint is valid at the same node as it is inserted (the usual case), one should pass NULL as "validnode".
5558 * If the "validnode" is the root node, it is automatically upgraded into a global constraint, but still only added to
5559 * the given node. If a local constraint is added to the root node, it is added to the global problem instead.
5561 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5570 * @note The same constraint cannot be added twice to the branching tree with different "validnode" parameters. This is
5571 * the case due internal data structures and performance issues. In such a case you should try to realize your
5572 * issue using the method SCIPdisableCons() and SCIPenableCons() and control these via the event system of SCIP.
5581 /** disables constraint's separation, enforcing, and propagation capabilities at the given node (and all subnodes);
5582 * if the method is called at the root node, the constraint is globally deleted from the problem;
5583 * the constraint deletion is being remembered at the given node, s.t. after leaving the node's subtree, the constraint
5584 * is automatically enabled again, and after entering the node's subtree, it is automatically disabled;
5585 * this may improve performance because redundant checks on this constraint are avoided, but it consumes memory;
5588 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5604 /** disables constraint's separation, enforcing, and propagation capabilities at the current node (and all subnodes);
5605 * if the method is called during problem modification or at the root node, the constraint is globally deleted from
5607 * the constraint deletion is being remembered at the current node, s.t. after leaving the current subtree, the
5608 * constraint is automatically enabled again, and after reentering the current node's subtree, it is automatically
5610 * this may improve performance because redundant checks on this constraint are avoided, but it consumes memory;
5613 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5631 * @return estimate of best primal solution w.r.t. original problem contained in current subtree
5641 /** gets estimate of best primal solution w.r.t. transformed problem contained in current subtree
5643 * @return estimate of best primal solution w.r.t. transformed problem contained in current subtree
5703 /** if given value is tighter (larger for minimization, smaller for maximization) than the current node's dual bound (in
5706 * @note the given new bound has to be a dual bound, i.e., it has to be valid for the original problem.
5708 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5723 /** if given value is larger than the current node's lower bound (in transformed problem), sets the current node's
5726 * @note the given new bound has to be a lower bound, i.e., it has to be valid for the transformed problem.
5728 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5742 /** if given value is tighter (larger for minimization, smaller for maximization) than the node's dual bound,
5745 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5758 /** if given value is larger than the node's lower bound (in transformed problem), sets the node's lower bound
5761 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5776 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5803 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5820 * @post When calling this method in the \ref SCIP_STAGE_PROBLEM stage, the \SCIP stage is changed to \ref
5832 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5843 * - \ref SCIP_STAGE_PRESOLVED if the presolving process was finished and did not solve the problem
5855 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5866 * @post After calling this method \SCIP reaches one of the following stages depending on if and when the solution
5880 /** frees branch and bound tree and all solution process data; statistics, presolving data and transformed problem is
5883 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5895 * @post If this method is called in \SCIP stage \ref SCIP_STAGE_INIT or \ref SCIP_STAGE_PROBLEM, the stage of
5906 /** frees all solution process data including presolving and transformed problem, only original problem is kept
5908 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5931 /** informs \SCIP that the solving process should be interrupted as soon as possible (e.g., after the current node has
5934 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5957 /** informs SCIP that the solving process should be restarted as soon as possible (e.g., after the current node has
5960 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6008 /** creates and captures problem variable; if variable is of integral type, fractional bounds are automatically rounded;
6009 * an integer variable with bounds zero and one is automatically converted into a binary variable;
6011 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will
6012 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the
6013 * original objective function value of variables created during the solving process has to be multiplied by
6016 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6028 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar()
6042 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data, or NULL */
6043 SCIP_DECL_VARDELTRANS ((*vardeltrans)), /**< frees user data of transformed variable, or NULL */
6048 /** creates and captures problem variable with optional callbacks and variable data set to NULL, which can be set
6050 * SCIPvarSetDeltransData(), SCIPvarSetCopy(), and SCIPvarSetData(); sets variable flags initial=TRUE
6051 * and removable = FALSE, which can be adjusted by using SCIPvarSetInitial() and SCIPvarSetRemovable(), resp.;
6053 * an integer variable with bounds zero and one is automatically converted into a binary variable;
6055 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will
6056 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the
6057 * original objective function value of variables created during the solving process has to be multiplied by
6060 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6072 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar()
6087 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6112 /** print the given list of variables to output stream separated by the given delimiter character;
6114 * i. e. the variables x1, x2, ..., xn with given delimiter ',' are written as: <x1>, <x2>, ..., <xn>;
6118 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6152 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6186 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6217 /** parses variable information (in cip format) out of a string; if the parsing process was successful a variable is
6218 * created and captured; if variable is of integral type, fractional bounds are automatically rounded; an integer
6221 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6242 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data */
6249 /** parses the given string for a variable name and stores the variable in the corresponding pointer if such a variable
6252 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6272 /** parse the given string as variable list (here ',' is the delimiter)) (<x1>, <x2>, ..., <xn>) (see
6275 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6287 * @note the pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist
6289 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens
6290 * except that the required size is stored in the corresponding integer; the reason for this approach is that we
6291 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP
6307 /** parse the given string as linear sum of variables and coefficients (c1 <x1> + c2 <x2> + ... + cn <xn>)
6310 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6322 * @note the pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist
6324 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens
6325 * except that the required size is stored in the corresponding integer; the reason for this approach is that we
6326 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP
6347 * monomialcoefs, monomialnvars, *nmonomials) short after SCIPparseVarsPolynomial to free all the
6348 * allocated memory again. Do not keep the arrays created by SCIPparseVarsPolynomial around, since
6351 * Parsing is stopped at the end of string (indicated by the \\0-character) or when no more monomials
6354 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6381 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6405 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6427 /** decreases usage counter of variable, if the usage pointer reaches zero the variable gets freed
6429 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6456 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6470 /** gets and captures transformed variable of a given variable; if the variable is not yet transformed,
6473 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6494 * if a variable of the array is not yet transformed, a new transformed variable for this variable is created;
6497 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6521 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6546 * it is possible to call this method with vars == transvars, but remember that variables that are not
6549 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6573 /** gets negated variable x' = lb + ub - x of variable x; negated variable is created, if not yet existing
6575 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6599 /** gets negated variables x' = lb + ub - x of variables x; negated variables are created, if not yet existing
6601 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6626 /** gets a binary variable that is equal to the given binary variable, and that is either active, fixed, or
6629 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6649 SCIP_Bool* negated /**< pointer to store whether the negation of an active variable was returned */
6652 /** gets binary variables that are equal to the given binary variables, and which are either active, fixed, or
6655 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6676 SCIP_Bool* negated /**< array to store whether the negation of an active variable was returned */
6679 /** flattens aggregation graph of multi-aggregated variable in order to avoid exponential recursion later on
6681 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6699 /** Transforms a given linear sum of variables, that is a_1*x_1 + ... + a_n*x_n + c into a corresponding linear sum of
6702 * If the number of needed active variables is greater than the available slots in the variable array, nothing happens
6703 * except that the required size is stored in the corresponding variable (requiredsize). Otherwise, the active variable
6706 * The reason for this approach is that we cannot reallocate memory, since we do not know how the memory has been
6709 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6724 * @note The resulting linear sum is stored into the given variable array, scalar array, and constant. That means the
6727 * @note That method can be used to convert a single variables into variable space of active variables. Therefore call
6744 SCIP_Real* constant, /**< pointer to constant c in linear sum a_1*x_1 + ... + a_n*x_n + c which
6749 SCIP_Bool mergemultiples /**< should multiple occurrences of a var be replaced by a single coeff? */
6753 * multi-aggregated variable, scalar and constant; if the variable resolves to a fixed variable,
6754 * "scalar" will be 0.0 and the value of the sum will be stored in "constant"; a multi-aggregation
6756 * is treated like an aggregation; if the multi-aggregation constant is infinite, "scalar" will be 0.0
6758 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6781 /** return for given variables all their active counterparts; all active variables will be pairwise different
6782 * @note It does not hold that the first output variable is the active variable for the first input variable.
6784 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6869 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6886 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6899 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation;
6904 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6919 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation;
6922 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6938 * in the given primal solution; the relaxation solution can be filled by the relaxation hanlders
6941 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6969 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6983 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7024 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7031 * @note if propagation is enabled, strong branching is not done directly on the LP, but probing nodes are created
7037 SCIP_Bool enablepropagation /**< should propagation be done before solving the strong branching LP? */
7042 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7056 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7070 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
7074 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
7076 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
7086 * Before calling this method, the strong branching mode must have been activated by calling SCIPstartStrongbranch();
7087 * after strong branching was done for all candidate variables, the strong branching mode must be ended by
7088 * SCIPendStrongbranch(). Since this method applies domain propagation before strongbranching, propagation has to be be
7091 * Before solving the strong branching LP, domain propagation can be performed. The number of propagation rounds
7094 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7101 * @warning When using this method, LP banching candidates and solution values must be copied beforehand, because
7115 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
7119 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
7121 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
7131 /** gets strong branching information on column variable x with integral LP solution value (val); that is, the down branch
7134 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7141 * @note If the integral LP solution value is the lower or upper bound of the variable, the corresponding branch will be
7151 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
7155 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
7157 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
7167 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7182 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL;
7186 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */
7198 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7213 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL;
7217 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */
7227 /** gets strong branching information on COLUMN variable of the last SCIPgetVarStrongbranch() call;
7228 * returns values of SCIP_INVALID, if strong branching was not yet called on the given variable;
7229 * keep in mind, that the returned old values may have nothing to do with the current LP solution
7231 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7244 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
7248 SCIP_Real* solval, /**< stores LP solution value of variable at last strong branching call, or NULL */
7252 /** gets node number of the last node in current branch and bound run, where strong branching was used on the
7255 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7276 /** if strong branching was already applied on the variable at the current node, returns the number of LPs solved after
7280 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7303 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7326 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7350 /** locks rounding of variable with respect to the lock status of the constraint and its negation;
7351 * this method should be called whenever the lock status of a variable in a constraint changes, for example if
7352 * the coefficient of the variable changed its sign or if the left or right hand sides of the constraint were
7355 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7378 /** unlocks rounding of variable with respect to the lock status of the constraint and its negation;
7379 * this method should be called whenever the lock status of a variable in a constraint changes, for example if
7380 * the coefficient of the variable changed its sign or if the left or right hand sides of the constraint were
7383 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7408 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7425 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7440 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) lower bound value;
7443 * @return adjusted lower bound for the given variable; the bound of the variable is not changed
7466 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) upper bound value;
7469 * @return adjusted upper bound for the given variable; the bound of the variable is not changed
7492 /** depending on SCIP's stage, changes lower bound of variable in the problem, in preprocessing, or in current node;
7493 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such
7496 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7499 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7508 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7517 /** depending on SCIP's stage, changes upper bound of variable in the problem, in preprocessing, or in current node;
7518 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such
7521 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7524 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7533 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7542 /** changes lower bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any
7543 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching
7546 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7559 /** changes upper bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any
7560 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching
7563 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7576 /** changes global lower bound of variable; if possible, adjust bound to integral value; also tightens the local bound,
7579 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7582 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7591 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7600 /** changes global upper bound of variable; if possible, adjust bound to integral value; also tightens the local bound,
7603 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7606 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7615 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7624 /** changes lazy lower bound of the variable, this is only possible if the variable is not in the LP yet
7626 * lazy bounds are bounds, that are enforced by constraints and the objective function; hence, these bounds do not need
7629 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7639 * @note lazy bounds are useful for branch-and-price since the corresponding variable bounds are not part of the LP
7648 /** changes lazy upper bound of the variable, this is only possible if the variable is not in the LP yet
7650 * lazy bounds are bounds, that are enforced by constraints and the objective function; hence, these bounds do not need
7653 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7663 * @note lazy bounds are useful for branch-and-price since the corresponding variable bounds are not part of the LP
7672 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
7673 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
7674 * doesn't store any inference information in the bound change, such that in conflict analysis, this change
7677 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7680 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7688 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7700 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
7701 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
7702 * doesn't store any inference information in the bound change, such that in conflict analysis, this change
7705 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7708 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7716 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7728 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
7729 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
7730 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
7733 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7736 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7744 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7758 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
7759 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
7760 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
7763 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7766 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7774 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7788 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
7789 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason for the
7792 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7808 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
7811 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
7812 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
7813 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
7816 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7819 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7827 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7841 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
7842 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
7843 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
7846 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7849 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7857 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7871 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
7872 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason for the
7875 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7892 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
7895 /** changes global lower bound of variable in preprocessing or in the current node, if the new bound is tighter
7896 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value;
7899 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7902 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7911 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7923 /** changes global upper bound of variable in preprocessing or in the current node, if the new bound is tighter
7924 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value;
7927 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7930 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7939 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7951 /** for a multi-aggregated variable, returns the global lower bound computed by adding the global bounds from all aggregation variables
7952 * 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
7953 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbGlobal
7955 * @return the global lower bound computed by adding the global bounds from all aggregation variables
7963 /** for a multi-aggregated variable, returns the global upper bound computed by adding the global bounds from all aggregation variables
7964 * 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
7965 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbGlobal
7967 * @return the global upper bound computed by adding the global bounds from all aggregation variables
7975 /** for a multi-aggregated variable, returns the local lower bound computed by adding the local bounds from all aggregation variables
7976 * 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
7977 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbLocal
7979 * @return the local lower bound computed by adding the global bounds from all aggregation variables
7987 /** for a multi-aggregated variable, returns the local upper bound computed by adding the local bounds from all aggregation variables
7988 * 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
7989 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbLocal
7991 * @return the local upper bound computed by adding the global bounds from all aggregation variables
8001 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
8005 #define SCIPcomputeVarLbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPvarGetMultaggrLbGlobal(var, (scip)->set) : SCIPvarGetLbGlobal(var))
8006 #define SCIPcomputeVarUbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPvarGetMultaggrUbGlobal(var, (scip)->set) : SCIPvarGetUbGlobal(var))
8007 #define SCIPcomputeVarLbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPvarGetMultaggrLbLocal(var, (scip)->set) : SCIPvarGetLbLocal(var))
8008 #define SCIPcomputeVarUbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPvarGetMultaggrUbLocal(var, (scip)->set) : SCIPvarGetUbLocal(var))
8012 /** returns solution value and index of variable lower bound that is closest to the variable's value in the given primal
8013 * solution or current LP solution if no primal solution is given; returns an index of -1 if no variable lower bound is
8016 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8030 /** returns solution value and index of variable upper bound that is closest to the variable's value in the given primal solution;
8031 * or current LP solution if no primal solution is given; returns an index of -1 if no variable upper bound is available
8033 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8047 /** informs variable x about a globally valid variable lower bound x >= b*z + d with integer variable z;
8053 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8073 /** informs variable x about a globally valid variable upper bound x <= b*z + d with integer variable z;
8079 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8098 /** informs binary variable x about a globally valid implication: x == 0 or x == 1 ==> y <= b or y >= b;
8101 * if the variable is already fixed to the given value, the implication is performed immediately;
8104 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8117 SCIP_Bool varfixing, /**< FALSE if y should be added in implications for x == 0, TRUE for x == 1 */
8126 /** adds a clique information to SCIP, stating that at most one of the given binary variables can be set to 1;
8129 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8142 SCIP_Bool* values, /**< values of the variables in the clique; NULL to use TRUE for all vars */
8149 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
8151 * the first variable is always assigned to clique 0, and a variable can only be assigned to clique i if at least one of
8155 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8168 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
8171 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
8175 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
8177 * the first variable is always assigned to clique 0 and a variable can only be assigned to clique i if at least one of
8179 * for each clique with n_c variables at least n_c-1 variables can be set to TRUE in a feasible solution;
8181 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8194 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
8197 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
8243 * if regardimplics is TRUE, both the cliques and the implications of the implication graph are regarded
8245 * @return TRUE, if there is a clique that contains both variable/clique pairs; FALSE, otherwise
8273 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8289 * If @p writenodeweights is true, only nodes corresponding to variables that have a fractional value and only edges
8300 /** sets the branch factor of the variable; this value can be used in the branching methods to scale the score
8301 * values of the variables; higher factor leads to a higher probability that this variable is chosen for branching
8303 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8325 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8347 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8367 /** sets the branch priority of the variable; variables with higher branch priority are always preferred to variables
8370 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8392 /** changes the branch priority of the variable to the given value, if it is larger than the current priority
8394 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8411 int branchpriority /**< new branch priority of the variable, if it is larger than current priority */
8416 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8436 /** sets the branch direction of the variable (-1: prefer downwards branch, 0: automatic selection, +1: prefer upwards
8439 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8456 SCIP_BRANCHDIR branchdirection /**< preferred branch direction of the variable (downwards, upwards, auto) */
8461 * @warning This type change might change the variable array returned from SCIPgetVars() and SCIPgetVarsData();
8463 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8471 * @note If SCIP is already beyond the SCIP_STAGE_PROBLEM and a original variable is passed, the variable type of the
8472 * corresponding transformed variable is changed; the type of the original variable does not change
8474 * @note If the type changes from a continuous variable to a non-continuous variable the bounds of the variable get
8486 /** in problem creation and solving stage, both bounds of the variable are set to the given value;
8487 * in presolving stage, the variable is converted into a fixed variable, and bounds are changed respectively;
8488 * conversion into a fixed variable changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
8491 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8506 SCIP_Bool* fixed /**< pointer to store whether the fixing was performed (variable was unfixed) */
8509 /** From a given equality a*x + b*y == c, aggregates one of the variables and removes it from the set of
8510 * active problem variables. This changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
8511 * and also renders the arrays returned from the SCIPvarGetImpl...() methods for the two variables invalid.
8512 * In the first step, the equality is transformed into an equality with active problem variables
8513 * a'*x' + b'*y' == c'. If x' == y', this leads to the detection of redundancy if a' == -b' and c' == 0,
8514 * of infeasibility, if a' == -b' and c' != 0, or to a variable fixing x' == c'/(a'+b') (and possible
8516 * In the second step, the variable to be aggregated is chosen among x' and y', prefering a less strict variable
8517 * type as aggregation variable (i.e. continuous variables are preferred over implicit integers, implicit integers
8518 * over integers, and integers over binaries). If none of the variables is continuous, it is tried to find an integer
8519 * aggregation (i.e. integral coefficients a'' and b'', such that a''*x' + b''*y' == c''). This can lead to
8520 * the detection of infeasibility (e.g. if c'' is fractional), or to a rejection of the aggregation (denoted by
8521 * aggregated == FALSE), if the resulting integer coefficients are too large and thus numerically instable.
8526 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
8528 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8546 /** converts variable into multi-aggregated variable; this changes the variable array returned from
8549 * @warning The integrality condition is not checked anymore on the multi-aggregated variable. You must not
8550 * multi-aggregate an integer variable without being sure, that integrality on the aggregation variables
8555 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
8557 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8595 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8607 * @note There exists no "unmark" method since it has to be ensured that if a plugin requires that a variable is not
8646 /** updates the pseudo costs of the given variable and the global pseudo costs after a change of "solvaldelta" in the
8647 * variable's solution value and resulting change of "objdelta" in the in the LP's objective value;
8650 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8750 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction
8752 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction
8770 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction,
8773 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction,
8990 /** returns the average number of inferences found after branching on the variable in given direction;
8991 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
8994 * @return the average number of inferences found after branching on the variable in given direction
9012 /** returns the average number of inferences found after branching on the variable in given direction in the current run;
9013 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
9016 * @return the average number of inferences found after branching on the variable in given direction in the current run
9053 /** returns the variable's average inference score value only using inferences of the current run
9055 * @return the variable's average inference score value only using inferences of the current run
9072 /** initializes the upwards and downwards pseudocosts, conflict scores, conflict lengths, inference scores, cutoff scores
9075 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9091 SCIP_Real downpscost, /**< value to which pseudocosts for downwards branching should be initialized */
9092 SCIP_Real uppscost, /**< value to which pseudocosts for upwards branching should be initialized */
9093 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */
9094 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */
9095 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */
9096 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */
9097 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */
9098 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */
9099 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */
9100 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */
9103 /** returns the average number of cutoffs found after branching on the variable in given direction;
9104 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
9107 * @return the average number of cutoffs found after branching on the variable in given direction
9125 /** returns the average number of cutoffs found after branching on the variable in given direction in the current run;
9126 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
9129 * @return the average number of cutoffs found after branching on the variable in given direction in the current run
9185 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
9206 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
9209 * @return the variable's average inference/cutoff score value, only using inferences and cutoffs of the current run
9229 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9267 /** return TRUE if conflict analysis is applicable; In case the function return FALSE there is no need to initialize the
9270 * @return return TRUE if conflict analysis is applicable; In case the function return FALSE there is no need to initialize the
9286 /** initializes the conflict analysis by clearing the conflict candidate queue; this method must be called before you
9287 * enter the conflict variables by calling SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(),
9288 * SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar();
9290 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9304 /** adds lower bound of variable at the time of the given bound change index to the conflict analysis' candidate storage;
9306 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictLb() should be called for each lower bound
9308 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictLb() should be called
9309 * for each lower bound, whose current assignment led to the deduction of the given conflict bound.
9311 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9324 SCIP_BDCHGIDX* bdchgidx /**< bound change index representing time on path to current node, when the
9328 /** adds lower bound of variable at the time of the given bound change index to the conflict analysis' candidate storage
9329 * with the additional information of a relaxed lower bound; this relaxed lower bound is the one which would be enough
9332 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictRelaxedLb() should be called for each (relaxed) lower bound
9334 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictRelexedLb() should be called
9335 * for each (relaxed) lower bound, whose current assignment led to the deduction of the given conflict bound.
9337 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9350 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the
9355 /** adds upper bound of variable at the time of the given bound change index to the conflict analysis' candidate storage;
9357 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictUb() should be called for each upper bound that
9359 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictUb() should be called for
9362 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9375 SCIP_BDCHGIDX* bdchgidx /**< bound change index representing time on path to current node, when the
9379 /** adds upper bound of variable at the time of the given bound change index to the conflict analysis' candidate storage
9380 * with the additional information of a relaxed upper bound; this relaxed upper bound is the one which would be enough
9383 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictRelaxedUb() should be called for each (relaxed) upper
9384 * bound that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
9385 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictRelaxedUb() should be
9386 * called for each (relaxed) upper bound, whose current assignment led to the deduction of the given conflict
9389 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9402 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the
9407 /** adds lower or upper bound of variable at the time of the given bound change index to the conflict analysis' candidate
9409 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictBd() should be called for each bound
9411 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictBd() should be called
9414 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9428 SCIP_BDCHGIDX* bdchgidx /**< bound change index representing time on path to current node, when the
9432 /** adds lower or upper bound of variable at the time of the given bound change index to the conflict analysis'
9433 * candidate storage; with the additional information of a relaxed upper bound; this relaxed upper bound is the one
9436 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictRelaxedBd() should be called for each (relaxed)
9437 * bound that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
9438 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictRelaxedBd() should be
9439 * called for each (relaxed) bound, whose current assignment led to the deduction of the given conflict bound.
9441 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9455 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the
9462 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictBinvar() should be called for each fixed binary
9463 * variable that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
9464 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictBinvar() should be called
9465 * for each binary variable, whose current fixing led to the deduction of the given conflict bound.
9467 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9482 /** checks if the given variable is already part of the current conflict set or queued for resolving with the same or
9485 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9499 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the
9504 /** returns the conflict lower bound if the variable is present in the current conflict set; otherwise the global lower
9507 * @return returns the conflict lower bound if the variable is present in the current conflict set; otherwise the global lower
9522 /** returns the conflict upper bound if the variable is present in the current conflict set; otherwise minus global
9525 * @return returns the conflict upper bound if the variable is present in the current conflict set; otherwise minus global
9540 /** analyzes conflict bounds that were added after a call to SCIPinitConflictAnalysis() with calls to
9542 * SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar(); on success, calls the conflict
9543 * handlers to create a conflict constraint out of the resulting conflict set; the given valid depth must be a depth
9544 * level, at which the conflict set defined by calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(),
9545 * SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), and SCIPaddConflictBinvar() is
9546 * valid for the whole subtree; if the conflict was found by a violated constraint, use SCIPanalyzeConflictCons()
9549 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9565 /** analyzes conflict bounds that were added with calls to SCIPaddConflictLb(), SCIPaddConflictUb(),
9566 * SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or
9567 * SCIPaddConflictBinvar(); on success, calls the conflict handlers to create a conflict constraint out of the
9568 * resulting conflict set; the given constraint must be the constraint that detected the conflict, i.e. the constraint
9569 * that is infeasible in the local bounds of the initial conflict set (defined by calls to SCIPaddConflictLb(),
9570 * SCIPaddConflictUb(), SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(),
9573 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9603 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution may
9604 * be declared feasible even if it violates this particular constraint. This constellation should only be
9605 * used, if no LP or pseudo solution can violate the constraint -- e.g. if a local constraint is redundant due
9608 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9622 * @note the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
9649 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup?
9651 SCIP_Bool stickingatnode /**< should the constraint always be kept at the node where it was added, even
9656 /** parses constraint information (in cip format) out of a string; if the parsing process was successful a constraint is
9659 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9672 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution may
9673 * be declared feasible even if it violates this particular constraint. This constellation should only be
9674 * used, if no LP or pseudo solution can violate the constraint -- e.g. if a local constraint is redundant due
9700 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup?
9702 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
9710 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9731 /** decreases usage counter of constraint, if the usage pointer reaches zero the constraint gets freed
9733 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9760 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9777 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9796 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9815 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9834 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9853 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9872 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9893 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9913 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9932 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9951 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9970 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9987 /** gets and captures transformed constraint of a given constraint; if the constraint is not yet transformed,
9990 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10011 * if a constraint in the array is not yet transformed, a new transformed constraint for this constraint is created;
10014 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10038 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10063 * it is possible to call this method with conss == transconss, but remember that constraints that are not
10066 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10096 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10119 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10141 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10159 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10176 /** disables constraint's separation, propagation, and enforcing capabilities, s.t. the constraint is not propagated,
10178 * in contrast to SCIPdelConsLocal() and SCIPdelConsNode(), the disabling is not associated to a node in the tree and
10179 * does not consume memory; therefore, the constraint is neither automatically enabled on leaving the node nor
10181 * note that the constraints enforcing capabilities are necessary for the solution's feasibility, if the constraint
10182 * is a model constraint; that means, you must be sure that the constraint cannot be violated in the current subtree,
10183 * and you have to enable it again manually by calling SCIPenableCons(), if this subtree is left (e.g. by using
10186 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10206 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10223 /** disables constraint's separation capabilities s.t. the constraint is not propagated anymore until the separation
10224 * is enabled again with a call to SCIPenableConsSeparation(); in contrast to SCIPdelConsLocal() and SCIPdelConsNode(),
10225 * the disabling is not associated to a node in the tree and does not consume memory; therefore, the constraint
10226 * is neither automatically enabled on leaving the node nor automatically disabled again on entering the node again
10228 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10247 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10266 /** disables constraint's propagation capabilities s.t. the constraint is not propagated anymore until the propagation
10267 * is enabled again with a call to SCIPenableConsPropagation(); in contrast to SCIPdelConsLocal() and SCIPdelConsNode(),
10268 * the disabling is not associated to a node in the tree and does not consume memory; therefore, the constraint
10269 * is neither automatically enabled on leaving the node nor automatically disabled again on entering the node again
10271 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10293 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10305 * @note if a constraint is marked to be propagated, the age of the constraint will be ignored for propagation
10315 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10333 /** adds given values to lock status of the constraint and updates the rounding locks of the involved variables
10335 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10359 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10385 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10391 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
10398 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */
10399 SCIP_Bool objinfeasible, /**< is the solution infeasible anyway due to violating lower objective bound? */
10405 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10411 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
10418 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */
10424 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10430 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
10441 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10458 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10476 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10496 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10503 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
10511 int inferinfo, /**< the user information passed to the corresponding SCIPinferVarLbCons() or SCIPinferVarUbCons() call */
10513 SCIP_BDCHGIDX* bdchgidx, /**< the index of the bound change, representing the point of time where the change took place */
10520 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10533 int nnewfixedvars, /**< number of variables fixed since the last call to the presolving method */
10534 int nnewaggrvars, /**< number of variables aggregated since the last call to the presolving method */
10535 int nnewchgvartypes, /**< number of variable type changes since the last call to the presolving method */
10536 int nnewchgbds, /**< number of variable bounds tightened since the last call to the presolving method */
10537 int nnewholes, /**< number of domain holes added since the last call to the presolving method */
10538 int nnewdelconss, /**< number of deleted constraints since the last call to the presolving method */
10539 int nnewaddconss, /**< number of added constraints since the last call to the presolving method */
10540 int nnewupgdconss, /**< number of upgraded constraints since the last call to the presolving method */
10541 int nnewchgcoefs, /**< number of changed coefficients since the last call to the presolving method */
10542 int nnewchgsides, /**< number of changed left or right hand sides since the last call to the presolving method */
10544 int* naggrvars, /**< pointer to count total number of variables aggregated of all presolvers */
10545 int* nchgvartypes, /**< pointer to count total number of variable type changes of all presolvers */
10546 int* nchgbds, /**< pointer to count total number of variable bounds tightened of all presolvers */
10548 int* ndelconss, /**< pointer to count total number of deleted constraints of all presolvers */
10550 int* nupgdconss, /**< pointer to count total number of upgraded constraints of all presolvers */
10551 int* nchgcoefs, /**< pointer to count total number of changed coefficients of all presolvers */
10552 int* nchgsides, /**< pointer to count total number of changed left/right hand sides of all presolvers */
10558 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10564 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
10575 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10582 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
10593 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10611 * @note The file stream will not be flushed directly, this can be achieved by calling SCIPinfoMessage() printing a
10623 * If the number of variables is greater than the available slots in the variable array, nothing happens except that
10624 * the success point is set to FALSE. With the method SCIPgetConsNVars() it is possible to get the number of variables
10627 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10646 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is
10654 int varssize, /**< available slots in vars array which is needed to check if the array is large enough */
10660 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10677 * @note The success pointer indicates if the contraint handler was able to return the number of variables
10679 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is
10687 SCIP_Bool* success /**< pointer to store whether the constraint successfully returned the number of variables */
10730 /** makes sure that the LP of the current node is loaded and may be accessed through the LP information methods
10732 * @warning Contructing the LP might change the amount of variables known in the transformed problem and therefore also
10733 * the variables array of SCIP (returned by SCIPgetVars() and SCIPgetVarsData()), so it might be necessary to
10736 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10752 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10779 /** returns whether the current lp is a relaxation of the current problem and its optimal objective value is a local lower bound
10781 * @return whether the current lp is a relaxation of the current problem and its optimal objective value is a local lower bound.
10795 * @return the objective value of current LP (which is the sum of column and loose objective value).
10800 * @note This method returns the objective value of the current LP solution, which might be primal or dual infeasible
10801 * if a limit was hit during solving. It must not be used as a dual bound if the LP solution status returned by
10839 /** gets the global pseudo objective value; that is all variables set to their best (w.r.t. the objective
10842 * @return the global pseudo objective value; that is all variables set to their best (w.r.t. the objective
10860 /** gets the pseudo objective value for the current search node; that is all variables set to their best (w.r.t. the
10863 * @return the pseudo objective value for the current search node; that is all variables set to their best (w.r.t. the
10881 /** returns whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound
10883 * @return whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound.
10895 /** gets the objective value of the root node LP or SCIP_INVALID if the root node LP was not (yet) solved
10897 * @return the objective value of the root node LP or SCIP_INVALID if the root node LP was not (yet) solved.
10912 /** gets part of the objective value of the root node LP that results from COLUMN variables only;
10915 * @return the part of the objective value of the root node LP that results from COLUMN variables only;
10931 /** gets part of the objective value of the root node LP that results from LOOSE variables only;
10934 * @return the part of the objective value of the root node LP that results from LOOSE variables only;
10952 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10997 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11040 /** returns TRUE iff all columns, i.e. every variable with non-empty column w.r.t. all ever created rows, are present
11041 * in the LP, and FALSE, if there are additional already existing columns, that may be added to the LP in pricing
11043 * @return TRUE iff all columns, i.e. every variable with non-empty column w.r.t. all ever created rows, are present
11044 * in the LP, and FALSE, if there are additional already existing columns, that may be added to the LP in pricing.
11056 /** returns whether the current LP solution is basic, i.e. is defined by a valid simplex basis
11070 /** gets all indices of basic columns and rows: index i >= 0 corresponds to column i, index i < 0 to row -i-1
11072 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11088 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11105 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11124 /** gets a row from the product of inverse basis matrix B^-1 and coefficient matrix A (i.e. from B^-1 * A)
11126 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11142 /** gets a column from the product of inverse basis matrix B^-1 and coefficient matrix A (i.e. from B^-1 * A),
11145 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11160 /** calculates a weighted sum of all LP rows; for negative weights, the left and right hand side of the corresponding
11163 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11175 SCIP_REALARRAY* sumcoef, /**< array to store sum coefficients indexed by variables' probindex */
11180 /** calculates a MIR cut out of the weighted sum of LP rows; The weights of modifiable rows are set to 0.0, because these
11183 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11195 SCIP_Real boundswitch, /**< fraction of domain up to which lower bound is used in transformation */
11197 SCIP_Bool allowlocal, /**< should local information allowed to be used, resulting in a local cut? */
11198 SCIP_Bool fixintegralrhs, /**< should complementation tried to be adjusted such that rhs gets fractional? */
11199 int* boundsfortrans, /**< bounds that should be used for transformed variables: vlb_idx/vub_idx,
11202 SCIP_BOUNDTYPE* boundtypesfortrans, /**< type of bounds that should be used for transformed variables;
11205 SCIP_Real maxweightrange, /**< maximal valid range max(|weights|)/min(|weights|) of row weights */
11209 int* sidetypes, /**< specify row side type (-1 = lhs, 0 = unkown, 1 = rhs) or NULL for automatic choices */
11211 SCIP_Real* mksetcoefs, /**< array to store mixed knapsack set coefficients: size nvars; or NULL */
11212 SCIP_Bool* mksetcoefsvalid, /**< pointer to store whether mixed knapsack set coefficients are valid; or NULL */
11216 SCIP_Bool* success, /**< pointer to store whether the returned coefficients are a valid MIR cut */
11217 SCIP_Bool* cutislocal, /**< pointer to store whether the returned cut is only valid locally */
11221 /** calculates a strong CG cut out of the weighted sum of LP rows; The weights of modifiable rows are set to 0.0, because these
11224 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11235 SCIP_Real boundswitch, /**< fraction of domain up to which lower bound is used in transformation */
11237 SCIP_Bool allowlocal, /**< should local information allowed to be used, resulting in a local cut? */
11239 SCIP_Real maxweightrange, /**< maximal valid range max(|weights|)/min(|weights|) of row weights */
11244 SCIP_Real* mircoef, /**< array to store strong CG coefficients: must be of size SCIPgetNVars() */
11247 SCIP_Bool* success, /**< pointer to store whether the returned coefficients are a valid strong CG cut */
11248 SCIP_Bool* cutislocal, /**< pointer to store whether the returned cut is only valid locally */
11254 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11270 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11282 SCIP_Bool genericnames, /**< should generic names like x_i and row_j be used in order to avoid
11291 * @warning You have to make sure, that the full internal state of the LPI does not change or is recovered completely
11292 * after the end of the method that uses the LPI. In particular, if you manipulate the LP or its solution
11293 * (e.g. by calling one of the SCIPlpiAdd...() or one of the SCIPlpiSolve...() methods), you have to check in
11294 * advance with SCIPlpiWasSolved() whether the LP is currently solved. If this is the case, you have to make
11295 * sure, the internal solution status is recovered completely at the end of your method. This can be achieved
11296 * by getting the LPI state before applying any LPI manipulations with SCIPlpiGetState() and restoring it
11297 * afterwards with SCIPlpiSetState() and SCIPlpiFreeState(). Additionally you have to resolve the LP with the
11300 * @warning Make also sure, that all parameter values that you have changed are set back to their original values.
11302 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11324 /** Displays quality information about the current LP solution. An LP solution need to be available. Information printed
11327 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11355 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11441 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11460 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11466 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11485 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11491 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11509 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11515 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11522 * @deprecated Please use SCIPcreateRowCons() or SCIPcreateRowSepa() when calling from a constraint handler or separator in order
11523 * to facilitate correct statistics. If the call is from neither a constraint handler or separator, use SCIPcreateRowUnspec().
11536 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11542 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11558 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11564 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11580 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11586 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11601 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11607 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11614 * @deprecated Please use SCIPcreateEmptyRowCons() or SCIPcreateEmptyRowSepa() when calling from a constraint handler or separator in order
11615 * to facilitate correct statistics. If the call is from neither a constraint handler or separator, use SCIPcreateEmptyRowUnspec().
11625 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11631 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11646 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11662 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11678 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11692 /** informs row, that all subsequent additions of variables to the row should be cached and not directly applied;
11694 * while the caching of row extensions is activated, information methods of the row give invalid results;
11695 * caching should be used, if a row is build with SCIPaddVarToRow() calls variable by variable to increase
11698 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11711 /** flushes all cached row extensions after a call of SCIPcacheRowExtensions() and merges coefficients with
11714 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11729 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11736 * @note In case calling this method in the enforcement process of an lp solution, it might be that some variables,
11737 * that were not yet in the LP (e.g. dynamic columns) will change their lp solution value returned by SCIP.
11738 * For example, a variable, which has a negative objective value, that has no column in the lp yet, is in the lp solution
11739 * on its upper bound (variables with status SCIP_VARSTATUS_LOOSE are in an lp solution on it's best bound), but
11740 * creating the column, changes the solution value (variable than has status SCIP_VARSTATUS_COLUMN, and the
11741 * initialization sets the lp solution value) to 0.0. (This leads to the conclusion that, if a constraint was
11753 * this method caches the row extensions and flushes them afterwards to gain better performance
11755 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11772 * this method caches the row extensions and flushes them afterwards to gain better performance
11774 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11790 /** tries to find a value, such that all row coefficients, if scaled with this value become integral
11792 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11803 SCIP_Real mindelta, /**< minimal relative allowed difference of scaled coefficient s*c and integral i */
11804 SCIP_Real maxdelta, /**< maximal relative allowed difference of scaled coefficient s*c and integral i */
11807 SCIP_Bool usecontvars, /**< should the coefficients of the continuous variables also be made integral? */
11808 SCIP_Real* intscalar, /**< pointer to store scalar that would make the coefficients integral, or NULL */
11814 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11825 SCIP_Real mindelta, /**< minimal relative allowed difference of scaled coefficient s*c and integral i */
11826 SCIP_Real maxdelta, /**< maximal relative allowed difference of scaled coefficient s*c and integral i */
11829 SCIP_Bool usecontvars, /**< should the coefficients of the continuous variables also be made integral? */
11900 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11927 * @return the feasibility of a row in the last LP solution: negative value means infeasibility
11940 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11965 /** returns the feasibility of a row for the current pseudo solution: negative value means infeasibility
11967 * @return the feasibility of a row for the current pseudo solution: negative value means infeasibility
11980 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12048 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12076 * If the NLP relaxation is enabled, then SCIP will construct the NLP relaxation when the solving process is about to begin.
12096 * This method should be called by a constraint handler if it has constraints that have a representation as nonlinear rows.
12098 * The function should be called before the branch-and-bound process is initialized, e.g., when presolve is exiting.
12170 /** computes for each variables the number of NLP rows in which the variable appears in a nonlinear var
12179 int* nlcount /**< an array of length at least SCIPnlpGetNVars() to store nonlinearity counts of variables */
12264 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12274 SCIP_Real* initialguess /**< values of initial guess (corresponding to variables from SCIPgetNLPVarsData), or NULL to use no start point */
12279 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12289 SCIP_SOL* sol /**< solution which values should be taken as initial guess, or NULL for LP solution */
12294 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12330 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12366 /** gets fractional variables of last NLP solution along with solution values and fractionalities
12368 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12379 SCIP_Real** fracvarssol, /**< pointer to store the array of NLP fractional variables solution values, or NULL */
12380 SCIP_Real** fracvarsfrac, /**< pointer to store the array of NLP fractional variables fractionalities, or NULL */
12382 int* npriofracvars /**< pointer to store the number of NLP fractional variables with maximal branching priority, or NULL */
12387 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12403 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12419 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12435 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12451 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12467 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12483 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12499 * @warning You have to make sure, that the full internal state of the NLPI does not change or is recovered completely
12500 * after the end of the method that uses the NLPI. In particular, if you manipulate the NLP or its solution
12501 * (e.g. by calling one of the SCIPnlpiAdd...() or the SCIPnlpiSolve() method), you have to check in advance
12502 * whether the NLP is currently solved. If this is the case, you have to make sure, the internal solution
12503 * status is recovered completely at the end of your method. Additionally you have to resolve the NLP with
12506 * @warning Make also sure, that all parameter values that you have changed are set back to their original values.
12508 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12533 * making methods SCIPchgVarObjDiveNLP(), SCIPchgVarBoundsDiveNLP(), SCIPchgVarsBoundsDiveNLP(), and SCIPsolveDiveNLP() available
12535 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12548 * resets changes made by SCIPchgVarObjDiveNLP(), SCIPchgVarBoundsDiveNLP(), and SCIPchgVarsBoundsDiveNLP()
12550 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12564 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12580 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12597 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12615 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12639 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12659 SCIP_QUADELEM* quadelems, /**< elements (i.e., monomials) in quadratic term, or NULL if nquadelems == 0 */
12667 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12686 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12703 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12719 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12736 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12753 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12770 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12787 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12805 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12826 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12845 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12863 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12880 * variable indices of the quadratic element need to be relative to quadratic variables array of row
12882 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12898 * variable indices of the quadratic elements need to be relative to quadratic variables array of row
12900 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12920 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12937 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12954 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12972 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12989 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13005 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13019 /** gives the feasibility of a nonlinear row in the last NLP solution: negative value means infeasibility
13021 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13037 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13052 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13066 /** gives the feasibility of a nonlinear row for the current pseudo solution: negative value means infeasibility
13068 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13084 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13099 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13115 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13129 /** gives the activity of a nonlinear row for the given primal solution or NLP solution or pseudo solution
13131 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13148 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13165 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13183 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13205 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13231 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13260 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13289 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13326 /** returns efficacy of the cut with respect to the given primal solution or the current LP solution:
13329 * @return the efficacy of the cut with respect to the given primal solution or the current LP solution:
13342 /** returns whether the cut's efficacy with respect to the given primal solution or the current LP solution is greater
13345 * @return TRUE if the cut's efficacy with respect to the given primal solution or the current LP solution is greater
13360 * @return TRUE if the given cut's efficacy is larger than the minimal cut efficacy, otherwise FALSE
13368 /** calculates the efficacy norm of the given vector, which depends on the "separating/efficacynorm" parameter
13370 * @return the efficacy norm of the given vector, which depends on the "separating/efficacynorm" parameter
13389 * @return whether the cut is modifiable, not a bound change, or a bound change that changes bounds by at least epsilon
13399 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13411 SCIP_Bool* infeasible /**< pointer to store whether cut has been detected to be infeasible for local bounds */
13416 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13430 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13486 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13508 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13532 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13548 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13564 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13581 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13596 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13612 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13625 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13638 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13650 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13662 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13672 /** separates the given primal solution or the current LP solution by calling the separators and constraint handlers'
13674 * the generated cuts are stored in the separation storage and can be accessed with the methods SCIPgetCuts() and
13676 * after evaluating the cuts, you have to call SCIPclearCuts() in order to remove the cuts from the
13678 * it is possible to call SCIPseparateSol() multiple times with different solutions and evaluate the found cuts
13681 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13691 SCIP_Bool pretendroot, /**< should the cut separators be called as if we are at the root node? */
13692 SCIP_Bool onlydelayed, /**< should only separators be called that were delayed in the previous round? */
13727 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13738 /** removes cuts that are inefficacious w.r.t. the current LP solution from separation storage without adding the cuts to the LP
13740 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13751 /** returns current factor on cut infeasibility to limit feasibility tolerance for relaxation solver
13777 /** initiates LP diving, making methods SCIPchgVarObjDive(), SCIPchgVarLbDive(), and SCIPchgVarUbDive() available
13779 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13787 * @note diving is allowed even if the current LP is not flushed, not solved, or not solved to optimality; be aware
13788 * that solving the (first) diving LP may take longer than expect and that the latter two cases could stem from
13789 * numerical troubles during the last LP solve; because of this, most users will want to call this method only if
13797 /** quits LP diving and resets bounds and objective values of columns to the current node's values
13799 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13814 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13830 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13847 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13864 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13881 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13895 /** changes row lhs in current dive, change will be undone after diving ends, for permanent changes use SCIPchgRowLhs()
13897 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13912 /** changes row rhs in current dive, change will be undone after diving ends, for permanent changes use SCIPchgRowRhs()
13914 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13975 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13983 * @note be aware that the LP solve may take longer than expected if SCIPgetLPSolstat(scip) != SCIP_LPSOLSTAT_OPTIMAL,
13995 /** returns the number of the node in the current branch and bound run, where the last LP was solved in diving
13998 * @return the number of the node in the current branch and bound run, where the last LP was solved in diving
14057 /** returns whether we are in probing mode; probing mode is activated via SCIPstartProbing() and stopped
14078 /** initiates probing, making methods SCIPnewProbingNode(), SCIPbacktrackProbing(), SCIPchgVarLbProbing(),
14079 * SCIPchgVarUbProbing(), SCIPfixVarProbing(), SCIPpropagateProbing(), and SCIPsolveProbingLP() available
14081 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14088 * @note The collection of variable statistics is turned off during probing. If these statistics should be collected
14096 /** creates a new probing sub node, whose changes can be undone by backtracking to a higher node in the probing path
14100 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14114 * @return the probing depth, i.e. the number of probing sub nodes existing in the probing path
14126 * the changes of the probing node of the given probing depth are the last ones that remain active;
14129 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14139 int probingdepth /**< probing depth of the node in the probing path that should be reactivated */
14144 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14156 /** injects a change of variable's lower bound into current probing node; the same can also be achieved with a call to
14157 * SCIPchgVarLb(), but in this case, the bound change would be treated like a deduction instead of a branching decision
14159 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14173 /** injects a change of variable's upper bound into current probing node; the same can also be achieved with a call to
14174 * SCIPchgVarUb(), but in this case, the bound change would be treated like a deduction instead of a branching decision
14176 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14190 /** injects a change of variable's bounds into current probing node to fix the variable to the specified value;
14191 * the same can also be achieved with a call to SCIPfixVar(), but in this case, the bound changes would be treated
14194 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14208 /** applies domain propagation on the probing sub problem, that was changed after SCIPstartProbing() was called;
14209 * the propagated domains of the variables can be accessed with the usual bound accessing calls SCIPvarGetLbLocal()
14210 * and SCIPvarGetUbLocal(); the propagation is only valid locally, i.e. the local bounds as well as the changed
14211 * bounds due to SCIPchgVarLbProbing(), SCIPchgVarUbProbing(), and SCIPfixVarProbing() are used for propagation
14213 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14223 int maxproprounds, /**< maximal number of propagation rounds (-1: no limit, 0: parameter settings) */
14225 SCIP_Longint* ndomredsfound /**< pointer to store the number of domain reductions found, or NULL */
14228 /** applies domain propagation on the probing sub problem, that was changed after SCIPstartProbing() was called;
14229 * only propagations of the binary variables fixed at the current probing node that are triggered by the implication
14231 * the propagated domains of the variables can be accessed with the usual bound accessing calls SCIPvarGetLbLocal()
14232 * and SCIPvarGetUbLocal(); the propagation is only valid locally, i.e. the local bounds as well as the changed
14233 * bounds due to SCIPchgVarLbProbing(), SCIPchgVarUbProbing(), and SCIPfixVarProbing() are used for propagation
14235 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14251 * The LP has to be constructed before (you can use SCIPisLPConstructed() or SCIPconstructLP()).
14253 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14264 SCIP_Bool* cutoff /**< pointer to store whether the probing LP was infeasible or the objective
14268 /** solves the LP at the current probing node (cannot be applied at preprocessing stage) and applies pricing
14271 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed . See \ref
14285 SCIP_Bool* cutoff /**< pointer to store whether the probing LP was infeasible or the objective
14302 /** gets branching candidates for LP solution branching (fractional variables) along with solution values,
14303 * fractionalities, and number of branching candidates; The number of branching candidates does NOT
14304 * account for fractional implicit integer variables which should not be used for branching decisions.
14306 * Fractional implicit integer variables are stored at the positions *nlpcands to *nlpcands + *nfracimplvars - 1
14308 * branching rules should always select the branching candidate among the first npriolpcands of the candidate
14311 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14323 SCIP_Real** lpcandssol, /**< pointer to store the array of LP candidate solution values, or NULL */
14324 SCIP_Real** lpcandsfrac, /**< pointer to store the array of LP candidate fractionalities, or NULL */
14326 int* npriolpcands, /**< pointer to store the number of candidates with maximal priority, or NULL */
14327 int* nfracimplvars /**< pointer to store the number of fractional implicit integer variables, or NULL */
14330 /** gets number of branching candidates for LP solution branching (number of fractional variables)
14332 * @return the number of branching candidates for LP solution branching (number of fractional variables).
14358 /** gets external branching candidates along with solution values, scores, and number of branching candidates;
14360 * branching rules should always select the branching candidate among the first nprioexterncands of the candidate
14363 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14371 * @note Candidate variables with maximal priority are ordered: binaries first, then integers, implicit integers and
14377 SCIP_VAR*** externcands, /**< pointer to store the array of extern branching candidates, or NULL */
14378 SCIP_Real** externcandssol, /**< pointer to store the array of extern candidate solution values, or NULL */
14379 SCIP_Real** externcandsscore, /**< pointer to store the array of extern candidate scores, or NULL */
14380 int* nexterncands, /**< pointer to store the number of extern branching candidates, or NULL */
14381 int* nprioexterncands, /**< pointer to store the number of candidates with maximal priority, or NULL */
14382 int* nprioexternbins, /**< pointer to store the number of binary candidates with maximal priority, or NULL */
14383 int* nprioexternints, /**< pointer to store the number of integer candidates with maximal priority, or NULL */
14384 int* nprioexternimpls /**< pointer to store the number of implicit integer candidates with maximal priority,
14444 /** gets number of implicit integer external branching candidates with maximal branch priority
14446 * @return the number of implicit integer external branching candidates with maximal branch priority.
14460 * @return the number of continuous external branching candidates with maximal branch priority.
14472 /** insert variable, its score and its solution value into the external branching candidate storage
14473 * the relative difference of the current lower and upper bounds of a continuous variable must be at least epsilon
14475 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14503 /** checks whether the given variable is contained in the candidate storage for external branching
14505 * @return whether the given variable is contained in the candidate storage for external branching.
14518 /** gets branching candidates for pseudo solution branching (non-fixed variables) along with the number of candidates
14520 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14532 SCIP_VAR*** pseudocands, /**< pointer to store the array of pseudo branching candidates, or NULL */
14533 int* npseudocands, /**< pointer to store the number of pseudo branching candidates, or NULL */
14534 int* npriopseudocands /**< pointer to store the number of candidates with maximal priority, or NULL */
14539 * @return the number branching candidates for pseudo solution branching (non-fixed variables).
14552 /** gets number of branching candidates with maximal branch priority for pseudo solution branching
14554 * @return the number of branching candidates with maximal branch priority for pseudo solution branching.
14567 /** gets number of binary branching candidates with maximal branch priority for pseudo solution branching
14569 * @return the number of binary branching candidates with maximal branch priority for pseudo solution branching.
14581 /** gets number of integer branching candidates with maximal branch priority for pseudo solution branching
14583 * @return the number of integer branching candidates with maximal branch priority for pseudo solution branching.
14595 /** gets number of implicit integer branching candidates with maximal branch priority for pseudo solution branching
14597 * @return the number of implicit integer branching candidates with maximal branch priority for pseudo solution branching.
14626 /** calculates the branching score out of the gain predictions for a branching with arbitrary many children
14628 * @return the branching score out of the gain predictions for a branching with arbitrary many children.
14660 /** calculates the node selection priority for moving the given variable's LP value to the given target value;
14663 * @return the node selection priority for moving the given variable's LP value to the given target value.
14674 SCIP_BRANCHDIR branchdir, /**< type of branching that was performed: upwards, downwards, or fixed;
14680 /** calculates an estimate for the objective of the best feasible solution contained in the subtree after applying the given
14683 * @return the estimate for the objective of the best feasible solution contained in the subtree after applying the given
14700 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14713 SCIP_Real estimate /**< estimate for (transformed) objective value of best feasible solution in subtree */
14725 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14737 SCIP_NODE** downchild, /**< pointer to return the left child with variable rounded down, or NULL */
14739 SCIP_NODE** upchild /**< pointer to return the right child with variable rounded up, or NULL */
14742 /** branches a variable x using a given domain hole; two child nodes (x <= left, x >= right) are created
14744 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14763 * for continuous variables with relative domain width larger epsilon, x' must not be one of the bounds;
14770 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14783 SCIP_NODE** downchild, /**< pointer to return the left child with variable rounded down, or NULL */
14785 SCIP_NODE** upchild /**< pointer to return the right child with variable rounded up, or NULL */
14789 * Branches on variable x such that up to n/2 children are created on each side of the usual branching value.
14791 * The parameters minwidth and widthfactor determine the domain width of the branching variable in the child nodes.
14792 * If n is odd, one child with domain width 'width' and having the branching value in the middle is created.
14793 * Otherwise, two children with domain width 'width' and being left and right of the branching value are created.
14794 * Next further nodes to the left and right are created, where width is multiplied by widthfactor with increasing distance from the first nodes.
14795 * The initial width is calculated such that n/2 nodes are created to the left and to the right of the branching value.
14796 * If this value is below minwidth, the initial width is set to minwidth, which may result in creating less than n nodes.
14798 * Giving a large value for widthfactor results in creating children with small domain when close to the branching value
14799 * and large domain when closer to the current variable bounds. That is, setting widthfactor to a very large value and n to 3
14800 * results in a ternary branching where the branching variable is mostly fixed in the middle child.
14801 * Setting widthfactor to 1.0 results in children where the branching variable always has the same domain width
14804 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14819 SCIP_Real widthfactor, /**< multiplier for children domain width with increasing distance from val, must be >= 1.0 */
14823 /** calls branching rules to branch on an LP solution; if no fractional variables exist, the result is SCIP_DIDNOTRUN;
14824 * if the branch priority of an unfixed variable is larger than the maximal branch priority of the fractional
14825 * variables, pseudo solution branching is applied on the unfixed variables with maximal branch priority
14827 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14841 /** calls branching rules to branch on a external candidates; if no such candidates exist, the result is SCIP_DIDNOTRUN
14843 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14857 /** calls branching rules to branch on a pseudo solution; if no unfixed variables exist, the result is SCIP_DIDNOTRUN
14859 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14887 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14910 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14925 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14940 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14955 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14968 /** creates a primal solution, initialized to the current LP or pseudo solution, depending on whether the LP was solved
14971 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14986 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15007 * a solution in original space allows to set original variables to values that would be invalid in the
15010 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15031 /** creates a copy of a primal solution; note that a copy of a linked solution is also linked and needs to be unlinked
15034 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15055 /** creates a copy of a primal solution, thereby replacing infinite fixings of variables by finite values;
15057 * success indicates whether the objective value of the solution was changed by removing infinite values
15059 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15085 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15110 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15124 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15138 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15152 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15167 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15181 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15206 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15228 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15255 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15283 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15312 * @pre In case the solution pointer @p sol is @b NULL, that means it is asked for the LP or pseudo solution, this method
15313 * can only be called if @p scip is in the solving stage \ref SCIP_STAGE_SOLVING. In any other case, this method
15337 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15363 /** returns objective value of primal CIP solution w.r.t. original problem, or current LP/pseudo objective value
15365 * @return objective value of primal CIP solution w.r.t. original problem, or current LP/pseudo objective value
15387 /** returns transformed objective value of primal CIP solution, or transformed current LP/pseudo objective value
15389 * @return transformed objective value of primal CIP solution, or transformed current LP/pseudo objective value
15569 /** adjusts solution values of implicit integer variables in handed solution. Solution objective value is not
15572 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15582 SCIP_Bool uselprows /**< should LP row information be considered for none-objective variables */
15587 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15590 * @pre In case the solution pointer @p sol is NULL (askinking for the current LP/pseudo solution), this method can be
15600 * @pre In case the solution pointer @p sol is @b not NULL, this method can be called if @p scip is in one of the
15623 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15647 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15661 /** outputs non-zero variables of solution representing a ray in original problem space to file stream
15663 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15686 /** gets number of feasible primal solutions stored in the solution storage in case the problem is transformed;
15687 * in case the problem stage is SCIP_STAGE_PROBLEM, the number of solution in the original solution candidate
15690 * @return number of feasible primal solutions stored in the solution storage in case the problem is transformed; or
15691 * number of solution in the original solution candidate storage if the problem stage is SCIP_STAGE_PROBLEM
15710 /** gets array of feasible primal solutions stored in the solution storage in case the problem is transformed; in case
15711 * if the problem stage is in SCIP_STAGE_PROBLEM, it returns the number array of solution candidate stored
15732 /** gets best feasible primal solution found so far if the problem is transformed; in case the problem is in
15733 * SCIP_STAGE_PROBLEM it returns the best solution candidate, or NULL if no solution has been found or the candidate
15757 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15782 /** outputs best feasible primal solution found so far in transformed variables to file stream
15784 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15811 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15826 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15851 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15872 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15896 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15920 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15936 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15962 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15988 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16007 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16032 /** checks solution for feasibility in original problem without adding it to the solution store;
16035 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16060 * @return return whether a primal ray is stored that proves unboundedness of the LP relaxation
16099 * If you want to catch an event for an original variable, you have to get the corresponding transformed variable
16106 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16127 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
16133 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16154 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
16160 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16182 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
16186 /** drops an objective value or domain change event (stops to track event) on the given transformed variable
16188 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16210 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
16216 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16238 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
16242 /** drops a row coefficient, constant, or side change event (stops to track event) on the given row
16244 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16266 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
16329 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16356 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16383 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16408 /** gets the best child of the focus node w.r.t. the node selection priority assigned by the branching rule
16410 * @return the best child of the focus node w.r.t. the node selection priority assigned by the branching rule
16420 /** gets the best sibling of the focus node w.r.t. the node selection priority assigned by the branching rule
16422 * @return the best sibling of the focus node w.r.t. the node selection priority assigned by the branching rule
16468 /** gets the best node from the tree (child, sibling, or leaf) w.r.t. the node selection strategy
16470 * @return the best node from the tree (child, sibling, or leaf) w.r.t. the node selection strategy
16510 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16522 /** marks the given node to be propagated again the next time a node of its subtree is processed
16524 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16562 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16682 /** gets total number of iterations used so far in primal and dual simplex and barrier algorithm
16684 * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm
16697 /** gets total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node
16699 * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node
16711 /** gets total number of iterations used in primal and dual simplex and barrier algorithm for the first LP at the root
16714 * @return the total number of iterations used in primal and dual simplex and barrier algorithm for the first root LP
16812 * @return the total number of LPs solved so far that were resolved from an advanced start basis
16824 /** gets total number of simplex iterations used so far in primal and dual simplex calls where an advanced start basis
16827 * @return the total number of simplex iterations used so far in primal and dual simplex calls where an advanced start
16840 /** gets total number of primal LPs solved so far that were resolved from an advanced start basis
16842 * @return the total number of primal LPs solved so far that were resolved from an advanced start basis
16854 /** gets total number of simplex iterations used so far in primal simplex calls where an advanced start basis
16857 * @return the total number of simplex iterations used so far in primal simplex calls where an advanced start
16870 /** gets total number of dual LPs solved so far that were resolved from an advanced start basis
16872 * @return the total number of dual LPs solved so far that were resolved from an advanced start basis
16884 /** gets total number of simplex iterations used so far in dual simplex calls where an advanced start basis
16887 * @return the total number of simplex iterations used so far in dual simplex calls where an advanced start
16944 * @return the total number of simplex iterations used so far for initial LP in node relaxations
16984 /** gets total number of times, strong branching was called (each call represents solving two LPs)
16986 * @return the total number of times, strong branching was called (each call represents solving two LPs)
17012 /** gets total number of times, strong branching was called at the root node (each call represents solving two LPs)
17014 * @return the total number of times, strong branching was called at the root node (each call represents solving two LPs)
17028 * @return the total number of simplex iterations used so far in strong branching at the root node
17148 /** get total number of constraints found in conflict analysis (conflict and reconvergence constraints)
17150 * @return the total number of constraints found in conflict analysis (conflict and reconvergence constraints)
17208 /** gets depth of current node, or -1 if no current node exists; in probing, the current node is the last probing node,
17211 * @return the depth of current node, or -1 if no current node exists; in probing, the current node is the last probing node,
17230 /** gets depth of the focus node, or -1 if no focus node exists; the focus node is the currently processed node in the
17233 * @return the depth of the focus node, or -1 if no focus node exists; the focus node is the currently processed node in the
17252 /** gets maximal depth of all processed nodes in current branch and bound run (excluding probing nodes)
17254 * @return the maximal depth of all processed nodes in current branch and bound run (excluding probing nodes)
17292 /** gets total number of backtracks, i.e. number of times, the new node was selected from the leaves queue
17294 * @return the total number of backtracks, i.e. number of times, the new node was selected from the leaves queue
17456 /** gets lower (dual) bound in transformed problem obtained by the first LP solve at the root node
17458 * @return the lower (dual) bound in transformed problem obtained by first LP solve at the root node
17474 /** gets global primal bound (objective value of best solution or user objective limit) for the original problem
17476 * @return the global primal bound (objective value of best solution or user objective limit) for the original problem
17494 /** gets global upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
17496 * @return the global upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
17514 /** gets global cutoff bound in transformed problem: a sub problem with lower bound larger than the cutoff
17515 * cannot contain a better feasible solution; usually, this bound is equal to the upper bound, but if the
17516 * objective value is always integral, the cutoff bound is (nearly) one less than the upper bound;
17517 * additionally, due to objective function domain propagation, the cutoff bound can be further reduced
17539 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17557 /** returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound
17560 * @return TRUE if the current primal bound is justified with a feasible primal solution, otherwise FALSE
17578 /** gets current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign,
17581 * @return the current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign,
17594 /** gets current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds
17597 * @return current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds
17650 /** gets number of feasible primal solutions found so far, that improved the primal bound at the time they were found
17652 * @return the number of feasible primal solutions found so far, that improved the primal bound at the time they were found
17702 * @return the average number of pseudo cost updates for the given direction over all variables
17714 /** gets the average number of pseudo cost updates for the given direction over all variables,
17717 * @return the average number of pseudo cost updates for the given direction over all variables,
17730 /** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5
17732 * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5
17743 /** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5,
17746 * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5,
17764 /** gets the average conflict score value over all variables, only using the pseudo cost information of the current run
17766 * @return the average conflict score value over all variables, only using the pseudo cost information of the current run
17790 /** gets the average conflictlength score value over all variables, only using the pseudo cost information of the
17793 * @return the average conflictlength score value over all variables, only using the pseudo cost information of the
17805 /** returns the average number of inferences found after branching in given direction over all variables
17807 * @return the average number of inferences found after branching in given direction over all variables
17819 /** returns the average number of inferences found after branching in given direction over all variables,
17822 * @return the average number of inferences found after branching in given direction over all variables,
17848 /** gets the average inference score value over all variables, only using the inference information information of the
17851 * @return the average inference score value over all variables, only using the inference information information of the
17863 /** returns the average number of cutoffs found after branching in given direction over all variables
17865 * @return the average number of cutoffs found after branching in given direction over all variables
17877 /** returns the average number of cutoffs found after branching in given direction over all variables,
17880 * @return the average number of cutoffs found after branching in given direction over all variables,
17906 /** gets the average cutoff score value over all variables, only using the pseudo cost information of the current run
17908 * @return the average cutoff score value over all variables, only using the pseudo cost information of the current run
17921 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17948 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17973 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17976 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
17998 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18020 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18030 SCIP_VERBLEVEL verblevel, /**< minimal verbosity level to actually display the information line */
18034 /** gets total number of implications between variables that are stored in the implication graph
18036 * @return the total number of implications between variables that are stored in the implication graph
18052 /** stores conflict graph of binary variables' implications into a file, which can be used as input for the DOT tool
18054 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18097 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18108 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18119 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18130 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18141 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18152 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18163 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18174 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18200 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18236 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18421 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18432 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18444 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18455 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18476 /** returns the minimum value that is regarded as huge and should be handled separately (e.g., in activity
18531 /** checks, if value is huge and should be handled separately (e.g., in activity computation) */
18686 /** checks, if relative difference of val1 and val2 is not greater than feasibility tolerance */
18773 /** checks, if the given new lower bound is tighter (w.r.t. bound strengthening epsilon) than the old one */
18782 /** checks, if the given new upper bound is tighter (w.r.t. bound strengthening epsilon) than the old one */
18871 * This is useful, if the value, e.g., the activity of a linear constraint or the pseudo objective value, gets a high
18872 * absolute value during the optimization process which is later reduced significantly. In this case, the last digits
18874 * We do not consider the cancellations which can occur during increasing the absolute value because they just cannot
18876 * In order to get more reliable values, the idea is to always store the last reliable value, where increasing the
18877 * absolute of the value is viewed as preserving reliability. Then, after each update, the new absolute value can be
18878 * compared against the last reliable one with this method, checking whether it was decreased by a factor of at least
18890 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
18907 #define SCIPisScalingIntegral(scip, val, scalar) SCIPsetIsScalingIntegral((scip)->set, val, scalar)
18939 #define SCIPisLbBetter(scip, newlb, oldlb, oldub) SCIPsetIsLbBetter(scip->set, newlb, oldlb, oldub)
18940 #define SCIPisUbBetter(scip, newub, oldlb, oldub) SCIPsetIsUbBetter(scip->set, newub, oldlb, oldub)
18954 #define SCIPisUpdateUnreliable(scip, newval, oldval) SCIPsetIsUpdateUnreliable((scip)->set, newval, oldval)
18983 #define SCIPallocClearMemoryArray(scip,ptr,num) ( (BMSallocClearMemoryArray((ptr), (num)) == NULL) \
18987 #define SCIPreallocMemoryArray(scip,ptr,newnum) ( (BMSreallocMemoryArray((ptr), (newnum)) == NULL) \
18989 #define SCIPreallocMemorySize(scip,ptr,newsize) ( (BMSreallocMemorySize((ptr), (newsize)) == NULL) \
18991 #define SCIPduplicateMemory(scip, ptr, source) ( (BMSduplicateMemory((ptr), (source)) == NULL) \
19003 #define SCIPallocBlockMemory(scip,ptr) ( (BMSallocBlockMemory(SCIPblkmem(scip), (ptr)) == NULL) \
19005 #define SCIPallocBlockMemoryArray(scip,ptr,num) ( (BMSallocBlockMemoryArray(SCIPblkmem(scip), (ptr), (num)) == NULL) \
19007 #define SCIPallocBlockMemorySize(scip,ptr,size) ( (BMSallocBlockMemorySize(SCIPblkmem(scip), (ptr), (size)) == NULL) \
19026 #define SCIPfreeBlockMemoryArray(scip,ptr,num) BMSfreeBlockMemoryArray(SCIPblkmem(scip), (ptr), (num))
19029 #define SCIPfreeBlockMemorySize(scip,ptr,size) BMSfreeBlockMemorySize(SCIPblkmem(scip), (ptr), (size))
19033 #define SCIPallocBuffer(scip,ptr) SCIPallocBufferSize(scip, (void**)(ptr), (int)sizeof(**(ptr)))
19034 #define SCIPallocBufferArray(scip,ptr,num) SCIPallocBufferSize(scip, (void**)(ptr), (num)*(int)sizeof(**(ptr)))
19035 #define SCIPreallocBufferArray(scip,ptr,num) SCIPreallocBufferSize(scip, (void**)(ptr), (num)*(int)sizeof(**(ptr)))
19036 #define SCIPduplicateBuffer(scip,ptr,source) SCIPduplicateBufferSize(scip, (void**)(ptr), source, (int)sizeof(**(ptr)))
19042 #define SCIPfreeBufferArrayNull(scip,ptr) { if( *(ptr) != NULL ) SCIPfreeBufferArray(scip, ptr); }
19082 /** extends a dynamically allocated block memory array to be able to store at least the given number of elements;
19085 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19099 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19109 /** allocates a memory buffer with at least the given size and copies the given memory into the buffer
19111 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19124 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19139 int dummysize /**< used to get a safer define for SCIPfreeBuffer() and SCIPfreeBufferArray() */
19162 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19173 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19184 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19215 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19228 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19261 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19272 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19283 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19296 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19318 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19331 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19364 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19375 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19386 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19399 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19421 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19454 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19465 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19476 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19489 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19508 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19541 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
19547 #define SCIPextendRealarray(scip, realarray, minidx, maxidx) SCIPrealarrayExtend(realarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, minidx, maxidx)
19550 #define SCIPsetRealarrayVal(scip, realarray, idx, val) SCIPrealarraySetVal(realarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, val)
19551 #define SCIPincRealarrayVal(scip, realarray, idx, incval) SCIPrealarrayIncVal(realarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, incval)
19557 #define SCIPextendIntarray(scip, intarray, minidx, maxidx) SCIPintarrayExtend(intarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, minidx, maxidx)
19560 #define SCIPsetIntarrayVal(scip, intarray, idx, val) SCIPintarraySetVal(intarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, val)
19561 #define SCIPincIntarrayVal(scip, intarray, idx, incval) SCIPintarrayIncVal(intarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, incval)
19567 #define SCIPextendBoolarray(scip, boolarray, minidx, maxidx) SCIPboolarrayExtend(boolarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, minidx, maxidx)
19570 #define SCIPsetBoolarrayVal(scip, boolarray, idx, val) SCIPboolarraySetVal(boolarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, val)
19576 #define SCIPextendPtrarray(scip, ptrarray, minidx, maxidx) SCIPptrarrayExtend(ptrarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, minidx, maxidx)
|