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
380 /** installs the given message handler, such that all messages are passed to this handler. A messages handler can be
383 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
390 * @note The currently installed messages handler gets freed if this SCIP instance is its last user (w.r.t. capture/release).
395 SCIP_MESSAGEHDLR* messagehdlr /**< message handler to install, or NULL to suppress all output */
429 /** prints a dialog message that requests user interaction or is a direct response to a user interactive command */
481 /** copies plugins from sourcescip to targetscip; in case that a constraint handler which does not need constraints
482 * cannot be copied, valid will return FALSE. All plugins can declare that, if their copy process failed, the
486 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
490 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
508 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution
542 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
544 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
562 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution
576 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
584 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
586 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
604 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution
618 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
623 /** returns copy of the source variable; if there already is a copy of the source variable in the variable hash map,
624 * it is just returned as target variable; elsewise a new variable will be created and added to the target SCIP; this
627 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
629 * @note if a new variable was created, this variable will be added to the target-SCIP, but it is not captured
631 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
665 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
667 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
673 /** copies all active variables from source-SCIP and adds these variable to the target-SCIP; the mapping between these
674 * variables are stored in the variable hashmap, target-SCIP has to be in problem creation stage, fixed and aggregated
679 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
682 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
709 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
711 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
716 /** copies all original variables from source-SCIP and adds these variable to the target-SCIP; the mapping between these
717 * variables are stored in the variable hashmap, target-SCIP has to be in problem creation stage, fixed and aggregated
722 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
725 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
752 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
754 SCIP_HASHMAP* consmap /**< a hashmap to store the mapping of source constraints to the corresponding
758 /** returns copy of the source constraint; if there already is a copy of the source constraint in the constraint hash
759 * map, it is just returned as target constraint; elsewise a new constraint will be created; this created constraint is
760 * added to the constraint hash map and returned as target constraint; the variable map is used to map the variables of
763 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution may
764 * be declared feasible even if it violates this particular constraint. This constellation should only be
765 * used, if no LP or pseudo solution can violate the constraint -- e.g. if a local constraint is redundant due
768 * @note The constraint is not added to the target SCIP. You can check whether a constraint is added by calling
769 * SCIPconsIsAdded(). (If you mix SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add
772 * @note The constraint is always captured, either during the creation of the copy or after finding the copy of the
775 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
778 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
815 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding
817 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
819 const char* name, /**< name of constraint, or NULL if the name of the source constraint should be used */
828 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup? */
829 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
836 * variables between the source and the target SCIP a hash map can be given; if the variable hash
837 * map is NULL or necessary variable mapping is missing, the required variables are created in the
838 * target-SCIP and added to the hash map, if not NULL; all variables which are created are added to
842 * @note the constraints are added to the target-SCIP but are not (user) captured in the target SCIP. (If you mix
843 * SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add explicitly and what is already
846 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
849 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
876 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding
878 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
886 /** copies all original constraints from the source-SCIP and adds these to the target-SCIP; for mapping the
887 * variables between the source and the target SCIP a hash map can be given; if the variable hash
888 * map is NULL or necessary variable mapping is missing, the required variables are created in the
889 * target-SCIP and added to the hash map, if not NULL; all variables which are created are added to
893 * @note the constraints are added to the target-SCIP but are not (user) captured in the target SCIP. (If you mix
894 * SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add explicitly and what is already
897 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
900 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
927 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding
929 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
940 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
961 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
969 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
972 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1007 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1015 * This function should be called for a targetscip in transformed stage. It can save time in presolving of the
1018 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1021 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1055 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1065 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1068 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1133 * @note all variables and constraints which are created in the target-SCIP are not (user) captured
1135 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1139 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1169 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1173 SCIP_Bool enablepricing, /**< should pricing be enabled in copied SCIP instance? If TRUE, pricer
1181 /** copies source SCIP original problem to target SCIP; the copying process is done in the following order:
1188 * @note all variables and constraints which are created in the target-SCIP are not (user) captured
1190 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1194 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1224 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1226 const char* suffix, /**< suffix which will be added to the names of the target SCIP, might be empty */
1227 SCIP_Bool enablepricing, /**< should pricing be enabled in copied SCIP instance? If TRUE, pricer
1244 /** creates a SCIP_Bool parameter, sets it to its default value, and adds it to the parameter set
1246 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1263 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1280 /** creates a SCIP_Longint parameter, sets it to its default value, and adds it to the parameter set
1282 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1299 /** creates a SCIP_Real parameter, sets it to its default value, and adds it to the parameter set
1301 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1320 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1331 const char* allowedvalues, /**< array with possible parameter values, or NULL if not restricted */
1336 /** creates a string(char*) parameter, sets it to its default value, and adds it to the parameter set
1338 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1346 char** valueptr, /**< pointer to store the current parameter value, or NULL; if not NULL then *valueptr should be NULL */
1375 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1387 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1399 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1411 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1423 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1435 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1447 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1450 * @note: Be careful with this method! Some general settings, e.g., the time or node limit, should not be fixed because
1461 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1472 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1484 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1496 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1508 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1520 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1532 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1544 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1556 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1568 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1580 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1592 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1604 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1616 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1628 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1639 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1647 SCIP_Bool onlychanged /**< should only the parameters been written, that are changed from default? */
1652 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1663 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1681 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1691 /** sets parameters to deactivate separators and heuristics that use auxiliary SCIP instances; should be called for
1694 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1710 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1727 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1744 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1784 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1791 * @note method has all reader callbacks as arguments and is thus changed every time a new callback is added
1801 SCIP_DECL_READERCOPY ((*readercopy)), /**< copy method of reader or NULL if you don't want to copy your plugin into sub-SCIPs */
1808 /** creates a reader and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
1812 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1819 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeReader() instead
1833 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1844 SCIP_DECL_READERCOPY ((*readercopy)) /**< copy method of reader or NULL if you don't want to copy your plugin into sub-SCIPs */
1849 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1865 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1881 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1915 * To use the variable pricer for solving a problem, it first has to be activated with a call to SCIPactivatePricer().
1918 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1925 * @note method has all pricer callbacks as arguments and is thus changed every time a new callback is added
1940 SCIP_DECL_PRICERCOPY ((*pricercopy)), /**< copy method of variable pricer or NULL if you don't want to copy your plugin into sub-SCIPs */
1944 SCIP_DECL_PRICERINITSOL((*pricerinitsol)),/**< solving process initialization method of variable pricer */
1945 SCIP_DECL_PRICEREXITSOL((*pricerexitsol)),/**< solving process deinitialization method of variable pricer */
1946 SCIP_DECL_PRICERREDCOST((*pricerredcost)),/**< reduced cost pricing method of variable pricer for feasible LPs */
1947 SCIP_DECL_PRICERFARKAS((*pricerfarkas)), /**< Farkas pricing method of variable pricer for infeasible LPs */
1951 /** creates a variable pricer and includes it in SCIP with all non-fundamental callbacks set to NULL;
1952 * if needed, these can be added afterwards via setter functions SCIPsetPricerCopy(), SCIPsetPricerFree(),
1956 * To use the variable pricer for solving a problem, it first has to be activated with a call to SCIPactivatePricer().
1959 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1966 * @note if you want to set all callbacks with a single method call, consider using SCIPincludePricer() instead
1980 SCIP_DECL_PRICERREDCOST((*pricerredcost)),/**< reduced cost pricing method of variable pricer for feasible LPs */
1981 SCIP_DECL_PRICERFARKAS((*pricerfarkas)), /**< Farkas pricing method of variable pricer for infeasible LPs */
1987 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1998 SCIP_DECL_PRICERCOPY ((*pricercopy)) /**< copy method of pricer or NULL if you don't want to copy your plugin into sub-SCIPs */
2003 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2019 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2035 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2051 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2062 SCIP_DECL_PRICERINITSOL ((*pricerinitsol))/**< solving process initialization method of pricer */
2067 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2078 SCIP_DECL_PRICEREXITSOL((*pricerexitsol)) /**< solving process deinitialization method of pricer */
2088 /** returns the array of currently available variable pricers; active pricers are in the first slots of the array */
2100 /** returns the number of currently active variable pricers, that are used in the LP solving loop */
2115 * This method should be called during the problem creation stage for all pricers that are necessary to solve
2119 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2133 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2148 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2155 * @note method has all constraint handler callbacks as arguments and is thus changed every time a new
2167 int chckpriority, /**< priority of the constraint handler for checking feasibility (and propagation) */
2168 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */
2169 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */
2170 int eagerfreq, /**< frequency for using all instead of only the useful constraints in separation,
2172 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */
2173 SCIP_Bool delaysepa, /**< should separation method be delayed, if other separators found cuts? */
2174 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */
2175 SCIP_Bool delaypresol, /**< should presolving method be delayed, if other presolvers found reductions? */
2176 SCIP_Bool needscons, /**< should the constraint handler be skipped, if no constraints are available? */
2177 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagators should be executed */
2178 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2182 SCIP_DECL_CONSINITPRE ((*consinitpre)), /**< presolving initialization method of constraint handler */
2183 SCIP_DECL_CONSEXITPRE ((*consexitpre)), /**< presolving deinitialization method of constraint handler */
2184 SCIP_DECL_CONSINITSOL ((*consinitsol)), /**< solving process initialization method of constraint handler */
2185 SCIP_DECL_CONSEXITSOL ((*consexitsol)), /**< solving process deinitialization method of constraint handler */
2187 SCIP_DECL_CONSTRANS ((*constrans)), /**< transform constraint data into data belonging to the transformed problem */
2188 SCIP_DECL_CONSINITLP ((*consinitlp)), /**< initialize LP with relaxations of "initial" constraints */
2190 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */
2211 /** creates a constraint handler and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
2212 * Optional callbacks can be set via specific setter functions, see SCIPsetConshdlrInit(), SCIPsetConshdlrExit(),
2213 * SCIPsetConshdlrCopy(), SCIPsetConshdlrFree(), SCIPsetConshdlrInitsol(), SCIPsetConshdlrExitsol(),
2214 * SCIPsetConshdlrInitpre(), SCIPsetConshdlrExitpre(), SCIPsetConshdlrPresol(), SCIPsetConshdlrDelete(),
2215 * SCIPsetConshdlrDelvars(), SCIPsetConshdlrInitlp(), SCIPsetConshdlrActive(), SCIPsetConshdlrDeactive(),
2216 * SCIPsetConshdlrEnable(), SCIPsetConshdlrDisable(), SCIPsetConshdlrResprop(), SCIPsetConshdlrTrans(),
2219 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2226 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeConshdlr() instead
2235 int chckpriority, /**< priority of the constraint handler for checking feasibility (and propagation) */
2236 int eagerfreq, /**< frequency for using all instead of only the useful constraints in separation,
2238 SCIP_Bool needscons, /**< should the constraint handler be skipped, if no constraints are available? */
2248 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2260 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */
2261 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */
2263 SCIP_Bool delaysepa /**< should separation method be delayed, if other separators found cuts? */
2268 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2280 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */
2281 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */
2282 SCIP_PROPTIMING timingmask /**< positions in the node solving loop where propagators should be executed */
2287 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2298 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2304 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2320 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2336 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2352 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2363 SCIP_DECL_CONSINITSOL((*consinitsol)) /**< solving process initialization method of constraint handler */
2368 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2379 SCIP_DECL_CONSEXITSOL ((*consexitsol))/**< solving process deinitialization method of constraint handler */
2384 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2395 SCIP_DECL_CONSINITPRE((*consinitpre)) /**< preprocessing initialization method of constraint handler */
2400 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2411 SCIP_DECL_CONSEXITPRE((*consexitpre)) /**< preprocessing deinitialization method of constraint handler */
2416 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2428 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */
2429 SCIP_Bool delaypresol /**< should presolving method be delayed, if other presolvers found reductions? */
2434 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2448 /** sets method of constraint handler to transform constraint data into data belonging to the transformed problem
2450 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2461 SCIP_DECL_CONSTRANS ((*constrans)) /**< transform constraint data into data belonging to the transformed problem */
2464 /** sets method of constraint handler to initialize LP with relaxations of "initial" constraints
2466 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2477 SCIP_DECL_CONSINITLP ((*consinitlp)) /**< initialize LP with relaxations of "initial" constraints */
2482 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2498 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2514 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2530 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2546 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2562 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2578 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2594 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2610 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2626 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2661 * @note method has all conflict handler callbacks as arguments and is thus changed every time a new
2672 SCIP_DECL_CONFLICTCOPY((*conflictcopy)), /**< copy method of conflict handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2676 SCIP_DECL_CONFLICTINITSOL((*conflictinitsol)),/**< solving process initialization method of conflict handler */
2677 SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol)),/**< solving process deinitialization method of conflict handler */
2678 SCIP_DECL_CONFLICTEXEC((*conflictexec)), /**< conflict processing method of conflict handler */
2682 /** creates a conflict handler and includes it in SCIP with its most fundamental callbacks. All non-fundamental
2684 * Optional callbacks can be set via specific setter functions SCIPsetConflicthdlrCopy(), SCIPsetConflicthdlrFree(),
2688 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeConflicthdlr() instead
2697 SCIP_DECL_CONFLICTEXEC((*conflictexec)), /**< conflict processing method of conflict handler */
2738 SCIP_DECL_CONFLICTINITSOL((*conflictinitsol))/**< solving process initialization method of conflict handler */
2746 SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol))/**< solving process deinitialization method of conflict handler */
2789 int maxrounds, /**< maximal number of presolving rounds the presolver participates in (-1: no limit) */
2791 SCIP_DECL_PRESOLCOPY ((*presolcopy)), /**< copy method of presolver or NULL if you don't want to copy your plugin into sub-SCIPs */
2792 SCIP_DECL_PRESOLFREE ((*presolfree)), /**< destructor of presolver to free user data (called when SCIP is exiting) */
2793 SCIP_DECL_PRESOLINIT ((*presolinit)), /**< initialization method of presolver (called after problem was transformed) */
2794 SCIP_DECL_PRESOLEXIT ((*presolexit)), /**< deinitialization method of presolver (called before transformed problem is freed) */
2795 SCIP_DECL_PRESOLINITPRE((*presolinitpre)),/**< presolving initialization method of presolver (called when presolving is about to begin) */
2796 SCIP_DECL_PRESOLEXITPRE((*presolexitpre)),/**< presolving deinitialization method of presolver (called after presolving has been finished) */
2801 /** Creates a presolver and includes it in SCIP with its fundamental callback. All non-fundamental (or optional)
2802 * callbacks as, e.g., init and exit callbacks, will be set to NULL. Optional callbacks can be set via specific setter
2803 * functions. These are SCIPsetPresolCopy(), SCIPsetPresolFree(), SCIPsetPresolInit(), SCIPsetPresolExit(),
2806 * @note if you want to set all callbacks with a single method call, consider using SCIPincludePresol() instead
2815 int maxrounds, /**< maximal number of presolving rounds the presolver participates in (-1: no limit) */
2826 SCIP_DECL_PRESOLCOPY ((*presolcopy)) /**< copy method of presolver or NULL if you don't want to copy your plugin into sub-SCIPs */
2858 SCIP_DECL_PRESOLINITPRE ((*presolinitpre))/**< solving process initialization method of presolver */
2865 SCIP_DECL_PRESOLEXITPRE ((*presolexitpre))/**< solving process deinitialization method of presolver */
2897 * @note method has all relaxation handler callbacks as arguments and is thus changed every time a new
2907 int priority, /**< priority of the relaxation handler (negative: after LP, non-negative: before LP) */
2909 SCIP_DECL_RELAXCOPY ((*relaxcopy)), /**< copy method of relaxation handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2913 SCIP_DECL_RELAXINITSOL((*relaxinitsol)), /**< solving process initialization method of relaxation handler */
2914 SCIP_DECL_RELAXEXITSOL((*relaxexitsol)), /**< solving process deinitialization method of relaxation handler */
2921 * Optional callbacks can be set via specific setter functions, see SCIPsetRelaxInit(), SCIPsetRelaxExit(),
2924 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeRelax() instead
2932 int priority, /**< priority of the relaxation handler (negative: after LP, non-negative: before LP) */
2943 SCIP_DECL_RELAXCOPY ((*relaxcopy)) /**< copy method of relaxation handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2975 SCIP_DECL_RELAXINITSOL((*relaxinitsol)) /**< solving process initialization method of relaxation handler */
2983 SCIP_DECL_RELAXEXITSOL((*relaxexitsol)) /**< solving process deinitialization method of relaxation handler */
3027 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound compared
3031 SCIP_DECL_SEPACOPY ((*sepacopy)), /**< copy method of separator or NULL if you don't want to copy your plugin into sub-SCIPs */
3035 SCIP_DECL_SEPAINITSOL ((*sepainitsol)), /**< solving process initialization method of separator */
3036 SCIP_DECL_SEPAEXITSOL ((*sepaexitsol)), /**< solving process deinitialization method of separator */
3038 SCIP_DECL_SEPAEXECSOL ((*sepaexecsol)), /**< arbitrary primal solution separation method of separator */
3042 /** creates a separator and includes it in SCIP with its most fundamental callbacks. All non-fundamental
3044 * Optional callbacks can be set via specific setter functions, see SCIPsetSepaInit(), SCIPsetSepaFree(),
3047 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeSepa() instead
3057 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound compared
3062 SCIP_DECL_SEPAEXECSOL ((*sepaexecsol)), /**< arbitrary primal solution separation method of separator */
3071 SCIP_DECL_SEPACOPY ((*sepacopy)) /**< copy method of separator or NULL if you don't want to copy your plugin into sub-SCIPs */
3103 SCIP_DECL_SEPAINITSOL ((*sepainitsol)) /**< solving process initialization method of separator */
3111 SCIP_DECL_SEPAEXITSOL ((*sepaexitsol)) /**< solving process deinitialization method of separator */
3153 int priority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3156 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagators should be executed */
3157 int presolpriority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3158 int presolmaxrounds, /**< maximal number of presolving rounds the propagator participates in (-1: no limit) */
3159 SCIP_Bool presoldelay, /**< should presolving be delayed, if other presolvers found reductions? */
3160 SCIP_DECL_PROPCOPY ((*propcopy)), /**< copy method of propagator or NULL if you don't want to copy your plugin into sub-SCIPs */
3165 SCIP_DECL_PROPEXITPRE ((*propexitpre)), /**< presolving deinitialization method of propagator */
3166 SCIP_DECL_PROPINITSOL ((*propinitsol)), /**< solving process initialization method of propagator */
3167 SCIP_DECL_PROPEXITSOL ((*propexitsol)), /**< solving process deinitialization method of propagator */
3174 /** creates a propagator and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
3175 * Optional callbacks can be set via specific setter functions, see SCIPsetPropInit(), SCIPsetPropExit(),
3179 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeProp() instead
3187 int priority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3190 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagators should be executed */
3200 SCIP_DECL_PROPCOPY ((*propcopy)) /**< copy method of propagator or NULL if you don't want to copy your plugin into sub-SCIPs */
3232 SCIP_DECL_PROPINITSOL((*propinitsol)) /**< solving process initialization method of propagator */
3240 SCIP_DECL_PROPEXITSOL ((*propexitsol)) /**< solving process deinitialization method of propagator */
3248 SCIP_DECL_PROPINITPRE((*propinitpre)) /**< preprocessing initialization method of propagator */
3256 SCIP_DECL_PROPEXITPRE((*propexitpre)) /**< preprocessing deinitialization method of propagator */
3265 int presolpriority, /**< presolving priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3266 int presolmaxrounds, /**< maximal number of presolving rounds the propagator participates in (-1: no limit) */
3267 SCIP_Bool presoldelay /**< should presolving be delayed, if other presolvers found reductions? */
3317 * callback is added in future releases; consider using SCIPincludeHeurBasic() and setter functions
3330 unsigned int timingmask, /**< positions in the node solving loop where heuristic should be executed;
3333 SCIP_DECL_HEURCOPY ((*heurcopy)), /**< copy method of primal heuristic or NULL if you don't want to copy your plugin into sub-SCIPs */
3337 SCIP_DECL_HEURINITSOL ((*heurinitsol)), /**< solving process initialization method of primal heuristic */
3338 SCIP_DECL_HEUREXITSOL ((*heurexitsol)), /**< solving process deinitialization method of primal heuristic */
3346 * Optional callbacks can be set via specific setter functions, see SCIPsetHeurCopy(), SCIPsetHeurFree(),
3349 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeHeur() instead
3362 unsigned int timingmask, /**< positions in the node solving loop where heuristic should be executed;
3374 SCIP_DECL_HEURCOPY ((*heurcopy)) /**< copy method of primal heuristic or NULL if you don't want to copy your plugin into sub-SCIPs */
3406 SCIP_DECL_HEURINITSOL ((*heurinitsol)) /**< solving process initialization method of primal heuristic */
3414 SCIP_DECL_HEUREXITSOL ((*heurexitsol)) /**< solving process deinitialization method of primal heuristic */
3446 * @note method has all event handler callbacks as arguments and is thus changed every time a new
3447 * callback is added in future releases; consider using SCIPincludeEventhdlrBasic() and setter functions
3455 SCIP_DECL_EVENTCOPY ((*eventcopy)), /**< copy method of event handler or NULL if you don't want to copy your plugin into sub-SCIPs */
3459 SCIP_DECL_EVENTINITSOL((*eventinitsol)), /**< solving process initialization method of event handler */
3460 SCIP_DECL_EVENTEXITSOL((*eventexitsol)), /**< solving process deinitialization method of event handler */
3466 /** creates an event handler and includes it in SCIP with all its non-fundamental callbacks set
3468 * SCIPsetEventhdlrCopy(), SCIPsetEventhdlrFree(), SCIPsetEventhdlrInit(), SCIPsetEventhdlrExit(),
3471 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeEventhdlr() instead
3520 SCIP_DECL_EVENTINITSOL((*eventinitsol)) /**< solving process initialization callback of event handler */
3528 SCIP_DECL_EVENTEXITSOL((*eventexitsol)) /**< solving process deinitialization callback of event handler */
3560 * @note method has all node selector callbacks as arguments and is thus changed every time a new
3561 * callback is added in future releases; consider using SCIPincludeNodeselBasic() and setter functions
3571 SCIP_DECL_NODESELCOPY ((*nodeselcopy)), /**< copy method of node selector or NULL if you don't want to copy your plugin into sub-SCIPs */
3575 SCIP_DECL_NODESELINITSOL((*nodeselinitsol)),/**< solving process initialization method of node selector */
3576 SCIP_DECL_NODESELEXITSOL((*nodeselexitsol)),/**< solving process deinitialization method of node selector */
3582 /** Creates a node selector and includes it in SCIP with its most fundamental callbacks. All non-fundamental
3584 * Optional callbacks can be set via specific setter functions, see SCIPsetNodeselCopy(), SCIPsetNodeselFree(),
3585 * SCIPsetNodeselInit(), SCIPsetNodeselExit(), SCIPsetNodeselInitsol(), and SCIPsetNodeselExitsol()
3587 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeNodesel() instead
3607 SCIP_DECL_NODESELCOPY ((*nodeselcopy)) /**< copy method of node selector or NULL if you don't want to copy your plugin into sub-SCIPs */
3639 SCIP_DECL_NODESELINITSOL ((*nodeselinitsol))/**< solving process initialization method of node selector */
3647 SCIP_DECL_NODESELEXITSOL ((*nodeselexitsol))/**< solving process deinitialization method of node selector */
3693 * @note method has all branching rule callbacks as arguments and is thus changed every time a new
3694 * callback is added in future releases; consider using SCIPincludeBranchruleBasic() and setter functions
3703 int maxdepth, /**< maximal depth level, up to which this branching rule should be used (or -1) */
3704 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound
3707 SCIP_DECL_BRANCHCOPY ((*branchcopy)), /**< copy method of branching rule or NULL if you don't want to copy your plugin into sub-SCIPs */
3711 SCIP_DECL_BRANCHINITSOL((*branchinitsol)),/**< solving process initialization method of branching rule */
3712 SCIP_DECL_BRANCHEXITSOL((*branchexitsol)),/**< solving process deinitialization method of branching rule */
3713 SCIP_DECL_BRANCHEXECLP((*branchexeclp)), /**< branching execution method for fractional LP solutions */
3714 SCIP_DECL_BRANCHEXECEXT((*branchexecext)),/**< branching execution method for external candidates */
3715 SCIP_DECL_BRANCHEXECPS((*branchexecps)), /**< branching execution method for not completely fixed pseudo solutions */
3719 /** creates a branching rule and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
3720 * Optional callbacks can be set via specific setter functions, see SCIPsetBranchruleInit(), SCIPsetBranchruleExit(),
3721 * SCIPsetBranchruleCopy(), SCIPsetBranchruleFree(), SCIPsetBranchruleInitsol(), SCIPsetBranchruleExitsol(),
3724 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeBranchrule() instead
3733 int maxdepth, /**< maximal depth level, up to which this branching rule should be used (or -1) */
3734 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound
3745 SCIP_DECL_BRANCHCOPY ((*branchcopy)) /**< copy method of branching rule or NULL if you don't want to copy your plugin into sub-SCIPs */
3777 SCIP_DECL_BRANCHINITSOL((*branchinitsol)) /**< solving process initialization method of branching rule */
3785 SCIP_DECL_BRANCHEXITSOL((*branchexitsol)) /**< solving process deinitialization method of branching rule */
3793 SCIP_DECL_BRANCHEXECLP((*branchexeclp)) /**< branching execution method for fractional LP solutions */
3801 SCIP_DECL_BRANCHEXECEXT((*branchexecext)) /**< branching execution method for external candidates */
3809 SCIP_DECL_BRANCHEXECPS((*branchexecps)) /**< branching execution method for not completely fixed pseudo solutions */
3839 /** sets maximal depth level, up to which this branching rule should be used (-1 for no limit) */
3847 /** sets maximal relative distance from current node's dual bound to primal bound for applying branching rule */
3863 SCIP_DECL_DISPCOPY ((*dispcopy)), /**< copy method of display column or NULL if you don't want to copy your plugin into sub-SCIPs */
3867 SCIP_DECL_DISPINITSOL ((*dispinitsol)), /**< solving process initialization method of display column */
3868 SCIP_DECL_DISPEXITSOL ((*dispexitsol)), /**< solving process deinitialization method of display column */
3874 SCIP_Bool stripline /**< should the column be separated with a line from its right neighbor? */
3896 /** automatically selects display columns for being shown w.r.t. the display width parameter */
3989 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3996 SCIP_DECL_DIALOGCOPY ((*dialogcopy)), /**< copy method of dialog or NULL if you don't want to copy your plugin into sub-SCIPs */
4018 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4029 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4038 /** makes given dialog the root dialog of SCIP's interactive user shell; captures dialog and releases former root dialog
4040 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4060 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4072 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4081 /** adds a single line of input to the command history which can be accessed with the cursor keys
4083 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4094 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4101 * @post After calling this method \SCIP reaches one of the following stages depending on if and when the
4104 * - \ref SCIP_STAGE_TRANSFORMED if the interactive shell was closed after the problem was transformed
4130 /** creates empty problem and initializes all solving data structures (the objective sense is set to MINIMIZE)
4131 * If the problem type requires the use of variable pricers, these pricers should be added to the problem with calls
4132 * to SCIPactivatePricer(). These pricers are automatically deactivated, when the problem is freed.
4134 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4155 SCIP_DECL_PROBTRANS ((*probtrans)), /**< creates user data of transformed problem by transforming original user data */
4157 SCIP_DECL_PROBINITSOL ((*probinitsol)), /**< solving process initialization method of transformed data */
4158 SCIP_DECL_PROBEXITSOL ((*probexitsol)), /**< solving process deinitialization method of transformed data */
4159 SCIP_DECL_PROBCOPY ((*probcopy)), /**< copies user data if you want to copy it to a subscip, or NULL */
4163 /** creates empty problem and initializes all solving data structures (the objective sense is set to MINIMIZE)
4164 * all callback methods will be set to NULL and can be set afterwards, if needed, via SCIPsetProbDelorig(),
4167 * If the problem type requires the use of variable pricers, these pricers should be added to the problem with calls
4168 * to SCIPactivatePricer(). These pricers are automatically deactivated, when the problem is freed.
4170 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4194 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4205 /** sets callback to create user data of transformed problem by transforming original user data
4207 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4216 SCIP_DECL_PROBTRANS ((*probtrans)) /**< creates user data of transformed problem by transforming original user data */
4221 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4235 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4244 SCIP_DECL_PROBINITSOL ((*probinitsol)) /**< solving process initialization method of transformed data */
4249 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4258 SCIP_DECL_PROBEXITSOL ((*probexitsol)) /**< solving process deinitialization method of transformed data */
4263 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4272 SCIP_DECL_PROBCOPY ((*probcopy)) /**< copies user data if you want to copy it to a subscip, or NULL */
4277 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4305 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4333 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4347 * @note If you want the write all constraints (including the once which are redundant for example), you need to set
4361 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4384 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4395 SCIP_Bool permuteconss, /**< should the list of constraints in each constraint handler be permuted? */
4427 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4475 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4523 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4537 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4549 /** adds offset of objective function to original problem and to all existing solution in original space
4551 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4643 /** sets limit on objective function, such that only solutions better than this limit are accepted
4645 * @note SCIP will only look for solutions with a strictly better objective value, thus, e.g., prune
4647 * However, SCIP will also collect solutions with objective value worse than the objective limit and
4649 * @note If SCIP can prove that there exists no solution with a strictly better objective value, the solving status
4651 * The only exception is that by chance, SCIP found a solution with the same objective value and thus
4654 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4695 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4728 /** returns the Euclidean norm of the objective function vector (available only for transformed problem)
4750 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4770 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4784 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4801 SCIP_Bool* deleted /**< pointer to store whether variable was successfully marked to be deleted */
4804 /** gets variables of the problem along with the numbers of different variable types; data may become invalid after
4807 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4822 * @note Variables in the vars array are ordered: binaries first, then integers, implicit integers and continuous last.
4831 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */
4851 * @warning If your are using the methods which add or change bound of variables (e.g., SCIPchgVarType(), SCIPfixVar(),
4852 * SCIPaggregateVars(), and SCIPmultiaggregateVar()), it can happen that the internal variable array (which is
4853 * accessed via this method) gets resized and/or resorted. This can invalid the data pointer which is returned
4856 * @note Variables in the array are ordered: binaries first, then integers, implicit integers and continuous last.
4970 * @note In case of the original problem the number of variables is counted. In case of the transformed problem the
5033 /** gets variables of the original problem along with the numbers of different variable types; data may become invalid
5036 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5060 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */
5229 /** gets variables of the original or transformed problem along with the numbers of different variable types;
5231 * data may become invalid after calls to SCIPchgVarType(), SCIPfixVar(), SCIPaggregateVars(), and
5234 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5251 SCIP_SOL* sol, /**< primal solution that selects the problem space, NULL for current solution */
5256 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */
5284 /** returns TRUE iff all potential variables exist in the problem, and FALSE, if there may be additional variables,
5307 /** adds constraint to the problem; if constraint is only valid locally, it is added to the local subproblem of the
5309 * if a local constraint is added at the root node, it is automatically upgraded into a global constraint
5311 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5330 /** globally removes constraint from all subproblems; removes constraint from the constraint set change data of the
5333 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5449 * @warning If your are using the method SCIPaddCons(), it can happen that the internal constraint array (which is
5450 * accessed via this method) gets resized. This can invalid the pointer which is returned by this method.
5503 /** computes the number of check constraint in the current node (loop over all constraint handler and cumulates the
5534 /** adds constraint to the given node (and all of its subnodes), even if it is a global constraint;
5535 * It is sometimes desirable to add the constraint to a more local node (i.e., a node of larger depth) even if
5536 * the constraint is also valid higher in the tree, for example, if one wants to produce a constraint which is
5538 * In this case, one should pass the more global node where the constraint is valid as "validnode".
5539 * Note that the same constraint cannot be added twice to the branching tree with different "validnode" parameters.
5540 * If the constraint is valid at the same node as it is inserted (the usual case), one should pass NULL as "validnode".
5541 * If the "validnode" is the root node, it is automatically upgraded into a global constraint, but still only added to
5542 * the given node. If a local constraint is added to the root node, it is added to the global problem instead.
5544 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5561 /** adds constraint locally to the current node (and all of its subnodes), even if it is a global constraint;
5562 * It is sometimes desirable to add the constraint to a more local node (i.e., a node of larger depth) even if
5563 * the constraint is also valid higher in the tree, for example, if one wants to produce a constraint which is
5566 * If the constraint is valid at the same node as it is inserted (the usual case), one should pass NULL as "validnode".
5567 * If the "validnode" is the root node, it is automatically upgraded into a global constraint, but still only added to
5568 * the given node. If a local constraint is added to the root node, it is added to the global problem instead.
5570 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5579 * @note The same constraint cannot be added twice to the branching tree with different "validnode" parameters. This is
5580 * the case due internal data structures and performance issues. In such a case you should try to realize your
5581 * issue using the method SCIPdisableCons() and SCIPenableCons() and control these via the event system of SCIP.
5590 /** disables constraint's separation, enforcing, and propagation capabilities at the given node (and all subnodes);
5591 * if the method is called at the root node, the constraint is globally deleted from the problem;
5592 * the constraint deletion is being remembered at the given node, s.t. after leaving the node's subtree, the constraint
5593 * is automatically enabled again, and after entering the node's subtree, it is automatically disabled;
5594 * this may improve performance because redundant checks on this constraint are avoided, but it consumes memory;
5597 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5613 /** disables constraint's separation, enforcing, and propagation capabilities at the current node (and all subnodes);
5614 * if the method is called during problem modification or at the root node, the constraint is globally deleted from
5616 * the constraint deletion is being remembered at the current node, s.t. after leaving the current subtree, the
5617 * constraint is automatically enabled again, and after reentering the current node's subtree, it is automatically
5619 * this may improve performance because redundant checks on this constraint are avoided, but it consumes memory;
5622 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5640 * @return estimate of best primal solution w.r.t. original problem contained in current subtree
5650 /** gets estimate of best primal solution w.r.t. transformed problem contained in current subtree
5652 * @return estimate of best primal solution w.r.t. transformed problem contained in current subtree
5712 /** if given value is tighter (larger for minimization, smaller for maximization) than the current node's dual bound (in
5715 * @note the given new bound has to be a dual bound, i.e., it has to be valid for the original problem.
5717 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5732 /** if given value is larger than the current node's lower bound (in transformed problem), sets the current node's
5735 * @note the given new bound has to be a lower bound, i.e., it has to be valid for the transformed problem.
5737 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5751 /** if given value is tighter (larger for minimization, smaller for maximization) than the node's dual bound,
5754 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5767 /** if given value is larger than the node's lower bound (in transformed problem), sets the node's lower bound
5770 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5785 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5812 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5829 * @post When calling this method in the \ref SCIP_STAGE_PROBLEM stage, the \SCIP stage is changed to \ref
5841 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5852 * - \ref SCIP_STAGE_PRESOLVED if the presolving process was finished and did not solve the problem
5864 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5875 * @post After calling this method \SCIP reaches one of the following stages depending on if and when the solution
5889 /** frees branch and bound tree and all solution process data; statistics, presolving data and transformed problem is
5892 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5904 * @post If this method is called in \SCIP stage \ref SCIP_STAGE_INIT or \ref SCIP_STAGE_PROBLEM, the stage of
5915 /** frees all solution process data including presolving and transformed problem, only original problem is kept
5917 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5940 /** informs \SCIP that the solving process should be interrupted as soon as possible (e.g., after the current node has
5943 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5966 /** informs SCIP that the solving process should be restarted as soon as possible (e.g., after the current node has
5969 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6017 /** creates and captures problem variable; if variable is of integral type, fractional bounds are automatically rounded;
6018 * an integer variable with bounds zero and one is automatically converted into a binary variable;
6020 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will
6021 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the
6022 * original objective function value of variables created during the solving process has to be multiplied by
6025 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6037 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar()
6051 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data, or NULL */
6052 SCIP_DECL_VARDELTRANS ((*vardeltrans)), /**< frees user data of transformed variable, or NULL */
6057 /** creates and captures problem variable with optional callbacks and variable data set to NULL, which can be set
6059 * SCIPvarSetDeltransData(), SCIPvarSetCopy(), and SCIPvarSetData(); sets variable flags initial=TRUE
6060 * and removable = FALSE, which can be adjusted by using SCIPvarSetInitial() and SCIPvarSetRemovable(), resp.;
6062 * an integer variable with bounds zero and one is automatically converted into a binary variable;
6064 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will
6065 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the
6066 * original objective function value of variables created during the solving process has to be multiplied by
6069 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6081 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar()
6096 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6121 /** print the given list of variables to output stream separated by the given delimiter character;
6123 * i. e. the variables x1, x2, ..., xn with given delimiter ',' are written as: <x1>, <x2>, ..., <xn>;
6127 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6161 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6195 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6226 /** parses variable information (in cip format) out of a string; if the parsing process was successful a variable is
6227 * created and captured; if variable is of integral type, fractional bounds are automatically rounded; an integer
6230 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6251 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data */
6258 /** parses the given string for a variable name and stores the variable in the corresponding pointer if such a variable
6261 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6281 /** parse the given string as variable list (here ',' is the delimiter)) (<x1>, <x2>, ..., <xn>) (see
6284 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6296 * @note the pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist
6298 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens
6299 * except that the required size is stored in the corresponding integer; the reason for this approach is that we
6300 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP
6316 /** parse the given string as linear sum of variables and coefficients (c1 <x1> + c2 <x2> + ... + cn <xn>)
6319 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6331 * @note the pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist
6333 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens
6334 * except that the required size is stored in the corresponding integer; the reason for this approach is that we
6335 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP
6356 * monomialcoefs, monomialnvars, *nmonomials) short after SCIPparseVarsPolynomial to free all the
6357 * allocated memory again. Do not keep the arrays created by SCIPparseVarsPolynomial around, since
6360 * Parsing is stopped at the end of string (indicated by the \\0-character) or when no more monomials
6363 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6390 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6414 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6436 /** decreases usage counter of variable, if the usage pointer reaches zero the variable gets freed
6438 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6465 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6479 /** gets and captures transformed variable of a given variable; if the variable is not yet transformed,
6482 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6503 * if a variable of the array is not yet transformed, a new transformed variable for this variable is created;
6506 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6530 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6555 * it is possible to call this method with vars == transvars, but remember that variables that are not
6558 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6582 /** gets negated variable x' = lb + ub - x of variable x; negated variable is created, if not yet existing
6584 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6608 /** gets negated variables x' = lb + ub - x of variables x; negated variables are created, if not yet existing
6610 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6635 /** gets a binary variable that is equal to the given binary variable, and that is either active, fixed, or
6638 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6658 SCIP_Bool* negated /**< pointer to store whether the negation of an active variable was returned */
6661 /** gets binary variables that are equal to the given binary variables, and which are either active, fixed, or
6664 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6685 SCIP_Bool* negated /**< array to store whether the negation of an active variable was returned */
6688 /** flattens aggregation graph of multi-aggregated variable in order to avoid exponential recursion later on
6690 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6708 /** Transforms a given linear sum of variables, that is a_1*x_1 + ... + a_n*x_n + c into a corresponding linear sum of
6711 * If the number of needed active variables is greater than the available slots in the variable array, nothing happens
6712 * except that the required size is stored in the corresponding variable (requiredsize). Otherwise, the active variable
6715 * The reason for this approach is that we cannot reallocate memory, since we do not know how the memory has been
6718 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6733 * @note The resulting linear sum is stored into the given variable array, scalar array, and constant. That means the
6736 * @note That method can be used to convert a single variables into variable space of active variables. Therefore call
6753 SCIP_Real* constant, /**< pointer to constant c in linear sum a_1*x_1 + ... + a_n*x_n + c which
6758 SCIP_Bool mergemultiples /**< should multiple occurrences of a var be replaced by a single coeff? */
6762 * multi-aggregated variable, scalar and constant; if the variable resolves to a fixed variable,
6763 * "scalar" will be 0.0 and the value of the sum will be stored in "constant"; a multi-aggregation
6765 * is treated like an aggregation; if the multi-aggregation constant is infinite, "scalar" will be 0.0
6767 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6790 /** return for given variables all their active counterparts; all active variables will be pairwise different
6791 * @note It does not hold that the first output variable is the active variable for the first input variable.
6793 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6878 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6895 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6908 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation;
6913 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6928 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation;
6931 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6947 * in the given primal solution; the relaxation solution can be filled by the relaxation hanlders
6950 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6978 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6992 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7033 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7040 * @note if propagation is enabled, strong branching is not done directly on the LP, but probing nodes are created
7046 SCIP_Bool enablepropagation /**< should propagation be done before solving the strong branching LP? */
7051 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7065 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7079 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
7083 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
7085 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
7095 * Before calling this method, the strong branching mode must have been activated by calling SCIPstartStrongbranch();
7096 * after strong branching was done for all candidate variables, the strong branching mode must be ended by
7097 * SCIPendStrongbranch(). Since this method applies domain propagation before strongbranching, propagation has to be be
7100 * Before solving the strong branching LP, domain propagation can be performed. The number of propagation rounds
7103 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7110 * @warning When using this method, LP banching candidates and solution values must be copied beforehand, because
7124 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
7128 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
7130 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
7140 /** gets strong branching information on column variable x with integral LP solution value (val); that is, the down branch
7143 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7150 * @note If the integral LP solution value is the lower or upper bound of the variable, the corresponding branch will be
7160 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
7164 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
7166 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
7176 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7191 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL;
7195 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */
7207 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7222 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL;
7226 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */
7236 /** gets strong branching information on COLUMN variable of the last SCIPgetVarStrongbranch() call;
7237 * returns values of SCIP_INVALID, if strong branching was not yet called on the given variable;
7238 * keep in mind, that the returned old values may have nothing to do with the current LP solution
7240 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7253 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
7257 SCIP_Real* solval, /**< stores LP solution value of variable at last strong branching call, or NULL */
7261 /** gets node number of the last node in current branch and bound run, where strong branching was used on the
7264 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7285 /** if strong branching was already applied on the variable at the current node, returns the number of LPs solved after
7289 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7312 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7335 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7359 /** locks rounding of variable with respect to the lock status of the constraint and its negation;
7360 * this method should be called whenever the lock status of a variable in a constraint changes, for example if
7361 * the coefficient of the variable changed its sign or if the left or right hand sides of the constraint were
7364 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7387 /** unlocks rounding of variable with respect to the lock status of the constraint and its negation;
7388 * this method should be called whenever the lock status of a variable in a constraint changes, for example if
7389 * the coefficient of the variable changed its sign or if the left or right hand sides of the constraint were
7392 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7417 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7434 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7449 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) lower bound value;
7452 * @return adjusted lower bound for the given variable; the bound of the variable is not changed
7475 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) upper bound value;
7478 * @return adjusted upper bound for the given variable; the bound of the variable is not changed
7501 /** depending on SCIP's stage, changes lower bound of variable in the problem, in preprocessing, or in current node;
7502 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such
7505 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7508 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7517 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7526 /** depending on SCIP's stage, changes upper bound of variable in the problem, in preprocessing, or in current node;
7527 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such
7530 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7533 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7542 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7551 /** changes lower bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any
7552 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching
7555 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7568 /** changes upper bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any
7569 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching
7572 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7585 /** changes global lower bound of variable; if possible, adjust bound to integral value; also tightens the local bound,
7588 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7591 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7600 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7609 /** changes global upper bound of variable; if possible, adjust bound to integral value; also tightens the local bound,
7612 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7615 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7624 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7633 /** changes lazy lower bound of the variable, this is only possible if the variable is not in the LP yet
7635 * lazy bounds are bounds, that are enforced by constraints and the objective function; hence, these bounds do not need
7638 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7648 * @note lazy bounds are useful for branch-and-price since the corresponding variable bounds are not part of the LP
7657 /** changes lazy upper bound of the variable, this is only possible if the variable is not in the LP yet
7659 * lazy bounds are bounds, that are enforced by constraints and the objective function; hence, these bounds do not need
7662 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7672 * @note lazy bounds are useful for branch-and-price since the corresponding variable bounds are not part of the LP
7681 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
7682 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
7683 * doesn't store any inference information in the bound change, such that in conflict analysis, this change
7686 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7689 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7697 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7709 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
7710 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
7711 * doesn't store any inference information in the bound change, such that in conflict analysis, this change
7714 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7717 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7725 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7737 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
7738 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
7739 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
7742 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7745 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7753 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7767 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
7768 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
7769 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
7772 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7775 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7783 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7797 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
7798 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason for the
7801 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7817 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
7820 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
7821 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
7822 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
7825 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7828 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7836 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7850 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
7851 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
7852 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
7855 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7858 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7866 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7880 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
7881 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason for the
7884 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7901 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
7904 /** changes global lower bound of variable in preprocessing or in the current node, if the new bound is tighter
7905 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value;
7908 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7911 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7920 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7932 /** changes global upper bound of variable in preprocessing or in the current node, if the new bound is tighter
7933 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value;
7936 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7939 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7948 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7960 /** for a multi-aggregated variable, returns the global lower bound computed by adding the global bounds from all aggregation variables
7961 * 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
7962 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbGlobal
7964 * @return the global lower bound computed by adding the global bounds from all aggregation variables
7972 /** for a multi-aggregated variable, returns the global upper bound computed by adding the global bounds from all aggregation variables
7973 * 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
7974 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbGlobal
7976 * @return the global upper bound computed by adding the global bounds from all aggregation variables
7984 /** for a multi-aggregated variable, returns the local lower bound computed by adding the local bounds from all aggregation variables
7985 * 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
7986 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbLocal
7988 * @return the local lower bound computed by adding the global bounds from all aggregation variables
7996 /** for a multi-aggregated variable, returns the local upper bound computed by adding the local bounds from all aggregation variables
7997 * 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
7998 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbLocal
8000 * @return the local upper bound computed by adding the global bounds from all aggregation variables
8010 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
8014 #define SCIPcomputeVarLbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPvarGetMultaggrLbGlobal(var, (scip)->set) : SCIPvarGetLbGlobal(var))
8015 #define SCIPcomputeVarUbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPvarGetMultaggrUbGlobal(var, (scip)->set) : SCIPvarGetUbGlobal(var))
8016 #define SCIPcomputeVarLbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPvarGetMultaggrLbLocal(var, (scip)->set) : SCIPvarGetLbLocal(var))
8017 #define SCIPcomputeVarUbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPvarGetMultaggrUbLocal(var, (scip)->set) : SCIPvarGetUbLocal(var))
8021 /** returns solution value and index of variable lower bound that is closest to the variable's value in the given primal
8022 * solution or current LP solution if no primal solution is given; returns an index of -1 if no variable lower bound is
8025 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8039 /** returns solution value and index of variable upper bound that is closest to the variable's value in the given primal solution;
8040 * or current LP solution if no primal solution is given; returns an index of -1 if no variable upper bound is available
8042 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8056 /** informs variable x about a globally valid variable lower bound x >= b*z + d with integer variable z;
8062 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8082 /** informs variable x about a globally valid variable upper bound x <= b*z + d with integer variable z;
8088 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8107 /** informs binary variable x about a globally valid implication: x == 0 or x == 1 ==> y <= b or y >= b;
8110 * if the variable is already fixed to the given value, the implication is performed immediately;
8113 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8126 SCIP_Bool varfixing, /**< FALSE if y should be added in implications for x == 0, TRUE for x == 1 */
8135 /** adds a clique information to SCIP, stating that at most one of the given binary variables can be set to 1;
8138 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8151 SCIP_Bool* values, /**< values of the variables in the clique; NULL to use TRUE for all vars */
8158 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
8160 * the first variable is always assigned to clique 0, and a variable can only be assigned to clique i if at least one of
8164 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8177 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
8180 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
8184 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
8186 * the first variable is always assigned to clique 0 and a variable can only be assigned to clique i if at least one of
8188 * for each clique with n_c variables at least n_c-1 variables can be set to TRUE in a feasible solution;
8190 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8203 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
8206 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
8252 * if regardimplics is TRUE, both the cliques and the implications of the implication graph are regarded
8254 * @return TRUE, if there is a clique that contains both variable/clique pairs; FALSE, otherwise
8282 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8298 * If @p writenodeweights is true, only nodes corresponding to variables that have a fractional value and only edges
8309 /** sets the branch factor of the variable; this value can be used in the branching methods to scale the score
8310 * values of the variables; higher factor leads to a higher probability that this variable is chosen for branching
8312 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8334 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8356 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8376 /** sets the branch priority of the variable; variables with higher branch priority are always preferred to variables
8379 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8401 /** changes the branch priority of the variable to the given value, if it is larger than the current priority
8403 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8420 int branchpriority /**< new branch priority of the variable, if it is larger than current priority */
8425 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8445 /** sets the branch direction of the variable (-1: prefer downwards branch, 0: automatic selection, +1: prefer upwards
8448 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8465 SCIP_BRANCHDIR branchdirection /**< preferred branch direction of the variable (downwards, upwards, auto) */
8470 * @warning This type change might change the variable array returned from SCIPgetVars() and SCIPgetVarsData();
8472 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8480 * @note If SCIP is already beyond the SCIP_STAGE_PROBLEM and a original variable is passed, the variable type of the
8481 * corresponding transformed variable is changed; the type of the original variable does not change
8483 * @note If the type changes from a continuous variable to a non-continuous variable the bounds of the variable get
8495 /** in problem creation and solving stage, both bounds of the variable are set to the given value;
8496 * in presolving stage, the variable is converted into a fixed variable, and bounds are changed respectively;
8497 * conversion into a fixed variable changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
8500 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8514 SCIP_Bool* fixed /**< pointer to store whether the fixing was performed (variable was unfixed) */
8517 /** From a given equality a*x + b*y == c, aggregates one of the variables and removes it from the set of
8518 * active problem variables. This changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
8519 * and also renders the arrays returned from the SCIPvarGetImpl...() methods for the two variables invalid.
8520 * In the first step, the equality is transformed into an equality with active problem variables
8521 * a'*x' + b'*y' == c'. If x' == y', this leads to the detection of redundancy if a' == -b' and c' == 0,
8522 * of infeasibility, if a' == -b' and c' != 0, or to a variable fixing x' == c'/(a'+b') (and possible
8524 * In the second step, the variable to be aggregated is chosen among x' and y', prefering a less strict variable
8525 * type as aggregation variable (i.e. continuous variables are preferred over implicit integers, implicit integers
8526 * over integers, and integers over binaries). If none of the variables is continuous, it is tried to find an integer
8527 * aggregation (i.e. integral coefficients a'' and b'', such that a''*x' + b''*y' == c''). This can lead to
8528 * the detection of infeasibility (e.g. if c'' is fractional), or to a rejection of the aggregation (denoted by
8529 * aggregated == FALSE), if the resulting integer coefficients are too large and thus numerically instable.
8534 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
8536 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8554 /** converts variable into multi-aggregated variable; this changes the variable array returned from
8557 * @warning The integrality condition is not checked anymore on the multi-aggregated variable. You must not
8558 * multi-aggregate an integer variable without being sure, that integrality on the aggregation variables
8563 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
8565 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8603 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8615 * @note There exists no "unmark" method since it has to be ensured that if a plugin requires that a variable is not
8654 /** updates the pseudo costs of the given variable and the global pseudo costs after a change of "solvaldelta" in the
8655 * variable's solution value and resulting change of "objdelta" in the in the LP's objective value;
8658 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8758 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction
8760 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction
8778 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction,
8781 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction,
8998 /** returns the average number of inferences found after branching on the variable in given direction;
8999 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
9002 * @return the average number of inferences found after branching on the variable in given direction
9020 /** returns the average number of inferences found after branching on the variable in given direction in the current run;
9021 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
9024 * @return the average number of inferences found after branching on the variable in given direction in the current run
9061 /** returns the variable's average inference score value only using inferences of the current run
9063 * @return the variable's average inference score value only using inferences of the current run
9080 /** initializes the upwards and downwards pseudocosts, conflict scores, conflict lengths, inference scores, cutoff scores
9083 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9099 SCIP_Real downpscost, /**< value to which pseudocosts for downwards branching should be initialized */
9100 SCIP_Real uppscost, /**< value to which pseudocosts for upwards branching should be initialized */
9101 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */
9102 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */
9103 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */
9104 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */
9105 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */
9106 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */
9107 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */
9108 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */
9111 /** returns the average number of cutoffs found after branching on the variable in given direction;
9112 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
9115 * @return the average number of cutoffs found after branching on the variable in given direction
9133 /** returns the average number of cutoffs found after branching on the variable in given direction in the current run;
9134 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
9137 * @return the average number of cutoffs found after branching on the variable in given direction in the current run
9193 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
9214 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
9217 * @return the variable's average inference/cutoff score value, only using inferences and cutoffs of the current run
9237 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9275 /** return TRUE if conflict analysis is applicable; In case the function return FALSE there is no need to initialize the
9278 * @return return TRUE if conflict analysis is applicable; In case the function return FALSE there is no need to initialize the
9294 /** initializes the conflict analysis by clearing the conflict candidate queue; this method must be called before you
9295 * enter the conflict variables by calling SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(),
9296 * SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar();
9298 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9312 /** adds lower bound of variable at the time of the given bound change index to the conflict analysis' candidate storage;
9314 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictLb() should be called for each lower bound
9316 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictLb() should be called
9317 * for each lower bound, whose current assignment led to the deduction of the given conflict bound.
9319 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9332 SCIP_BDCHGIDX* bdchgidx /**< bound change index representing time on path to current node, when the
9336 /** adds lower bound of variable at the time of the given bound change index to the conflict analysis' candidate storage
9337 * with the additional information of a relaxed lower bound; this relaxed lower bound is the one which would be enough
9340 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictRelaxedLb() should be called for each (relaxed) lower bound
9342 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictRelexedLb() should be called
9343 * for each (relaxed) lower bound, whose current assignment led to the deduction of the given conflict bound.
9345 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9358 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the
9363 /** adds upper bound of variable at the time of the given bound change index to the conflict analysis' candidate storage;
9365 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictUb() should be called for each upper bound that
9367 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictUb() should be called for
9370 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9383 SCIP_BDCHGIDX* bdchgidx /**< bound change index representing time on path to current node, when the
9387 /** adds upper bound of variable at the time of the given bound change index to the conflict analysis' candidate storage
9388 * with the additional information of a relaxed upper bound; this relaxed upper bound is the one which would be enough
9391 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictRelaxedUb() should be called for each (relaxed) upper
9392 * bound that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
9393 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictRelaxedUb() should be
9394 * called for each (relaxed) upper bound, whose current assignment led to the deduction of the given conflict
9397 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9410 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the
9415 /** adds lower or upper bound of variable at the time of the given bound change index to the conflict analysis' candidate
9417 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictBd() should be called for each bound
9419 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictBd() should be called
9422 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9436 SCIP_BDCHGIDX* bdchgidx /**< bound change index representing time on path to current node, when the
9440 /** adds lower or upper bound of variable at the time of the given bound change index to the conflict analysis'
9441 * candidate storage; with the additional information of a relaxed upper bound; this relaxed upper bound is the one
9444 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictRelaxedBd() should be called for each (relaxed)
9445 * bound that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
9446 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictRelaxedBd() should be
9447 * called for each (relaxed) bound, whose current assignment led to the deduction of the given conflict bound.
9449 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9463 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the
9470 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictBinvar() should be called for each fixed binary
9471 * variable that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
9472 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictBinvar() should be called
9473 * for each binary variable, whose current fixing led to the deduction of the given conflict bound.
9475 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9490 /** checks if the given variable is already part of the current conflict set or queued for resolving with the same or
9493 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9507 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the
9512 /** returns the conflict lower bound if the variable is present in the current conflict set; otherwise the global lower
9515 * @return returns the conflict lower bound if the variable is present in the current conflict set; otherwise the global lower
9530 /** returns the conflict upper bound if the variable is present in the current conflict set; otherwise minus global
9533 * @return returns the conflict upper bound if the variable is present in the current conflict set; otherwise minus global
9548 /** analyzes conflict bounds that were added after a call to SCIPinitConflictAnalysis() with calls to
9550 * SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar(); on success, calls the conflict
9551 * handlers to create a conflict constraint out of the resulting conflict set; the given valid depth must be a depth
9552 * level, at which the conflict set defined by calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(),
9553 * SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), and SCIPaddConflictBinvar() is
9554 * valid for the whole subtree; if the conflict was found by a violated constraint, use SCIPanalyzeConflictCons()
9557 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9573 /** analyzes conflict bounds that were added with calls to SCIPaddConflictLb(), SCIPaddConflictUb(),
9574 * SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or
9575 * SCIPaddConflictBinvar(); on success, calls the conflict handlers to create a conflict constraint out of the
9576 * resulting conflict set; the given constraint must be the constraint that detected the conflict, i.e. the constraint
9577 * that is infeasible in the local bounds of the initial conflict set (defined by calls to SCIPaddConflictLb(),
9578 * SCIPaddConflictUb(), SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(),
9581 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9611 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution may
9612 * be declared feasible even if it violates this particular constraint. This constellation should only be
9613 * used, if no LP or pseudo solution can violate the constraint -- e.g. if a local constraint is redundant due
9616 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9630 * @note the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
9657 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup?
9659 SCIP_Bool stickingatnode /**< should the constraint always be kept at the node where it was added, even
9664 /** parses constraint information (in cip format) out of a string; if the parsing process was successful a constraint is
9667 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9680 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution may
9681 * be declared feasible even if it violates this particular constraint. This constellation should only be
9682 * used, if no LP or pseudo solution can violate the constraint -- e.g. if a local constraint is redundant due
9708 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup?
9710 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
9718 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9739 /** decreases usage counter of constraint, if the usage pointer reaches zero the constraint gets freed
9741 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9768 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9785 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9804 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9823 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9842 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9861 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9880 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9901 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9921 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9940 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9959 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9978 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9995 /** gets and captures transformed constraint of a given constraint; if the constraint is not yet transformed,
9998 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10019 * if a constraint in the array is not yet transformed, a new transformed constraint for this constraint is created;
10022 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10046 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10071 * it is possible to call this method with conss == transconss, but remember that constraints that are not
10074 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10104 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10127 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10149 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10167 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10184 /** disables constraint's separation, propagation, and enforcing capabilities, s.t. the constraint is not propagated,
10186 * in contrast to SCIPdelConsLocal() and SCIPdelConsNode(), the disabling is not associated to a node in the tree and
10187 * does not consume memory; therefore, the constraint is neither automatically enabled on leaving the node nor
10189 * note that the constraints enforcing capabilities are necessary for the solution's feasibility, if the constraint
10190 * is a model constraint; that means, you must be sure that the constraint cannot be violated in the current subtree,
10191 * and you have to enable it again manually by calling SCIPenableCons(), if this subtree is left (e.g. by using
10194 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10214 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10231 /** disables constraint's separation capabilities s.t. the constraint is not propagated anymore until the separation
10232 * is enabled again with a call to SCIPenableConsSeparation(); in contrast to SCIPdelConsLocal() and SCIPdelConsNode(),
10233 * the disabling is not associated to a node in the tree and does not consume memory; therefore, the constraint
10234 * is neither automatically enabled on leaving the node nor automatically disabled again on entering the node again
10236 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10255 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10274 /** disables constraint's propagation capabilities s.t. the constraint is not propagated anymore until the propagation
10275 * is enabled again with a call to SCIPenableConsPropagation(); in contrast to SCIPdelConsLocal() and SCIPdelConsNode(),
10276 * the disabling is not associated to a node in the tree and does not consume memory; therefore, the constraint
10277 * is neither automatically enabled on leaving the node nor automatically disabled again on entering the node again
10279 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10301 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10313 * @note if a constraint is marked to be propagated, the age of the constraint will be ignored for propagation
10323 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10341 /** adds given values to lock status of the constraint and updates the rounding locks of the involved variables
10343 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10367 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10393 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10399 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
10406 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */
10407 SCIP_Bool objinfeasible, /**< is the solution infeasible anyway due to violating lower objective bound? */
10413 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10419 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
10426 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */
10432 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10438 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
10449 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10466 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10484 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10504 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10511 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
10519 int inferinfo, /**< the user information passed to the corresponding SCIPinferVarLbCons() or SCIPinferVarUbCons() call */
10521 SCIP_BDCHGIDX* bdchgidx, /**< the index of the bound change, representing the point of time where the change took place */
10528 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10541 int nnewfixedvars, /**< number of variables fixed since the last call to the presolving method */
10542 int nnewaggrvars, /**< number of variables aggregated since the last call to the presolving method */
10543 int nnewchgvartypes, /**< number of variable type changes since the last call to the presolving method */
10544 int nnewchgbds, /**< number of variable bounds tightened since the last call to the presolving method */
10545 int nnewholes, /**< number of domain holes added since the last call to the presolving method */
10546 int nnewdelconss, /**< number of deleted constraints since the last call to the presolving method */
10547 int nnewaddconss, /**< number of added constraints since the last call to the presolving method */
10548 int nnewupgdconss, /**< number of upgraded constraints since the last call to the presolving method */
10549 int nnewchgcoefs, /**< number of changed coefficients since the last call to the presolving method */
10550 int nnewchgsides, /**< number of changed left or right hand sides since the last call to the presolving method */
10552 int* naggrvars, /**< pointer to count total number of variables aggregated of all presolvers */
10553 int* nchgvartypes, /**< pointer to count total number of variable type changes of all presolvers */
10554 int* nchgbds, /**< pointer to count total number of variable bounds tightened of all presolvers */
10556 int* ndelconss, /**< pointer to count total number of deleted constraints of all presolvers */
10558 int* nupgdconss, /**< pointer to count total number of upgraded constraints of all presolvers */
10559 int* nchgcoefs, /**< pointer to count total number of changed coefficients of all presolvers */
10560 int* nchgsides, /**< pointer to count total number of changed left/right hand sides of all presolvers */
10566 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10572 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
10583 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10590 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
10601 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10619 * @note The file stream will not be flushed directly, this can be achieved by calling SCIPinfoMessage() printing a
10631 * If the number of variables is greater than the available slots in the variable array, nothing happens except that
10632 * the success point is set to FALSE. With the method SCIPgetConsNVars() it is possible to get the number of variables
10635 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10654 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is
10662 int varssize, /**< available slots in vars array which is needed to check if the array is large enough */
10668 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10685 * @note The success pointer indicates if the contraint handler was able to return the number of variables
10687 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is
10695 SCIP_Bool* success /**< pointer to store whether the constraint successfully returned the number of variables */
10738 /** makes sure that the LP of the current node is loaded and may be accessed through the LP information methods
10740 * @warning Contructing the LP might change the amount of variables known in the transformed problem and therefore also
10741 * the variables array of SCIP (returned by SCIPgetVars() and SCIPgetVarsData()), so it might be necessary to
10744 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10760 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10787 /** returns whether the current lp is a relaxation of the current problem and its optimal objective value is a local lower bound
10789 * @return whether the current lp is a relaxation of the current problem and its optimal objective value is a local lower bound.
10803 * @return the objective value of current LP (which is the sum of column and loose objective value).
10808 * @note This method returns the objective value of the current LP solution, which might be primal or dual infeasible
10809 * if a limit was hit during solving. It must not be used as a dual bound if the LP solution status returned by
10847 /** gets the global pseudo objective value; that is all variables set to their best (w.r.t. the objective
10850 * @return the global pseudo objective value; that is all variables set to their best (w.r.t. the objective
10868 /** gets the pseudo objective value for the current search node; that is all variables set to their best (w.r.t. the
10871 * @return the pseudo objective value for the current search node; that is all variables set to their best (w.r.t. the
10889 /** returns whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound
10891 * @return whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound.
10903 /** gets the objective value of the root node LP or SCIP_INVALID if the root node LP was not (yet) solved
10905 * @return the objective value of the root node LP or SCIP_INVALID if the root node LP was not (yet) solved.
10920 /** gets part of the objective value of the root node LP that results from COLUMN variables only;
10923 * @return the part of the objective value of the root node LP that results from COLUMN variables only;
10939 /** gets part of the objective value of the root node LP that results from LOOSE variables only;
10942 * @return the part of the objective value of the root node LP that results from LOOSE variables only;
10960 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11005 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11048 /** returns TRUE iff all columns, i.e. every variable with non-empty column w.r.t. all ever created rows, are present
11049 * in the LP, and FALSE, if there are additional already existing columns, that may be added to the LP in pricing
11051 * @return TRUE iff all columns, i.e. every variable with non-empty column w.r.t. all ever created rows, are present
11052 * in the LP, and FALSE, if there are additional already existing columns, that may be added to the LP in pricing.
11064 /** returns whether the current LP solution is basic, i.e. is defined by a valid simplex basis
11078 /** gets all indices of basic columns and rows: index i >= 0 corresponds to column i, index i < 0 to row -i-1
11080 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11096 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11113 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11132 /** gets a row from the product of inverse basis matrix B^-1 and coefficient matrix A (i.e. from B^-1 * A)
11134 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11150 /** gets a column from the product of inverse basis matrix B^-1 and coefficient matrix A (i.e. from B^-1 * A),
11153 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11168 /** calculates a weighted sum of all LP rows; for negative weights, the left and right hand side of the corresponding
11171 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11183 SCIP_REALARRAY* sumcoef, /**< array to store sum coefficients indexed by variables' probindex */
11188 /** calculates a MIR cut out of the weighted sum of LP rows; The weights of modifiable rows are set to 0.0, because these
11191 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11203 SCIP_Real boundswitch, /**< fraction of domain up to which lower bound is used in transformation */
11205 SCIP_Bool allowlocal, /**< should local information allowed to be used, resulting in a local cut? */
11206 SCIP_Bool fixintegralrhs, /**< should complementation tried to be adjusted such that rhs gets fractional? */
11207 int* boundsfortrans, /**< bounds that should be used for transformed variables: vlb_idx/vub_idx,
11210 SCIP_BOUNDTYPE* boundtypesfortrans, /**< type of bounds that should be used for transformed variables;
11213 SCIP_Real maxweightrange, /**< maximal valid range max(|weights|)/min(|weights|) of row weights */
11217 int* sidetypes, /**< specify row side type (-1 = lhs, 0 = unkown, 1 = rhs) or NULL for automatic choices */
11219 SCIP_Real* mksetcoefs, /**< array to store mixed knapsack set coefficients: size nvars; or NULL */
11220 SCIP_Bool* mksetcoefsvalid, /**< pointer to store whether mixed knapsack set coefficients are valid; or NULL */
11224 SCIP_Bool* success, /**< pointer to store whether the returned coefficients are a valid MIR cut */
11225 SCIP_Bool* cutislocal, /**< pointer to store whether the returned cut is only valid locally */
11229 /** 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
11232 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11243 SCIP_Real boundswitch, /**< fraction of domain up to which lower bound is used in transformation */
11245 SCIP_Bool allowlocal, /**< should local information allowed to be used, resulting in a local cut? */
11247 SCIP_Real maxweightrange, /**< maximal valid range max(|weights|)/min(|weights|) of row weights */
11252 SCIP_Real* mircoef, /**< array to store strong CG coefficients: must be of size SCIPgetNVars() */
11255 SCIP_Bool* success, /**< pointer to store whether the returned coefficients are a valid strong CG cut */
11256 SCIP_Bool* cutislocal, /**< pointer to store whether the returned cut is only valid locally */
11262 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11278 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11290 SCIP_Bool genericnames, /**< should generic names like x_i and row_j be used in order to avoid
11299 * @warning You have to make sure, that the full internal state of the LPI does not change or is recovered completely
11300 * after the end of the method that uses the LPI. In particular, if you manipulate the LP or its solution
11301 * (e.g. by calling one of the SCIPlpiAdd...() or one of the SCIPlpiSolve...() methods), you have to check in
11302 * advance with SCIPlpiWasSolved() whether the LP is currently solved. If this is the case, you have to make
11303 * sure, the internal solution status is recovered completely at the end of your method. This can be achieved
11304 * by getting the LPI state before applying any LPI manipulations with SCIPlpiGetState() and restoring it
11305 * afterwards with SCIPlpiSetState() and SCIPlpiFreeState(). Additionally you have to resolve the LP with the
11308 * @warning Make also sure, that all parameter values that you have changed are set back to their original values.
11310 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11332 /** Displays quality information about the current LP solution. An LP solution need to be available. Information printed
11335 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11363 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11449 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11468 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11474 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11493 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11499 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11517 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11523 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11530 * @deprecated Please use SCIPcreateRowCons() or SCIPcreateRowSepa() when calling from a constraint handler or separator in order
11531 * to facilitate correct statistics. If the call is from neither a constraint handler or separator, use SCIPcreateRowUnspec().
11544 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11550 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11566 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11572 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11588 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11594 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11609 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11615 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11622 * @deprecated Please use SCIPcreateEmptyRowCons() or SCIPcreateEmptyRowSepa() when calling from a constraint handler or separator in order
11623 * to facilitate correct statistics. If the call is from neither a constraint handler or separator, use SCIPcreateEmptyRowUnspec().
11633 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
11639 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11654 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11670 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11686 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11700 /** informs row, that all subsequent additions of variables to the row should be cached and not directly applied;
11702 * while the caching of row extensions is activated, information methods of the row give invalid results;
11703 * caching should be used, if a row is build with SCIPaddVarToRow() calls variable by variable to increase
11706 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11719 /** flushes all cached row extensions after a call of SCIPcacheRowExtensions() and merges coefficients with
11722 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11737 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11744 * @note In case calling this method in the enforcement process of an lp solution, it might be that some variables,
11745 * that were not yet in the LP (e.g. dynamic columns) will change their lp solution value returned by SCIP.
11746 * For example, a variable, which has a negative objective value, that has no column in the lp yet, is in the lp solution
11747 * on its upper bound (variables with status SCIP_VARSTATUS_LOOSE are in an lp solution on it's best bound), but
11748 * creating the column, changes the solution value (variable than has status SCIP_VARSTATUS_COLUMN, and the
11749 * initialization sets the lp solution value) to 0.0. (This leads to the conclusion that, if a constraint was
11761 * this method caches the row extensions and flushes them afterwards to gain better performance
11763 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11780 * this method caches the row extensions and flushes them afterwards to gain better performance
11782 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11798 /** tries to find a value, such that all row coefficients, if scaled with this value become integral
11800 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11811 SCIP_Real mindelta, /**< minimal relative allowed difference of scaled coefficient s*c and integral i */
11812 SCIP_Real maxdelta, /**< maximal relative allowed difference of scaled coefficient s*c and integral i */
11815 SCIP_Bool usecontvars, /**< should the coefficients of the continuous variables also be made integral? */
11816 SCIP_Real* intscalar, /**< pointer to store scalar that would make the coefficients integral, or NULL */
11822 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11833 SCIP_Real mindelta, /**< minimal relative allowed difference of scaled coefficient s*c and integral i */
11834 SCIP_Real maxdelta, /**< maximal relative allowed difference of scaled coefficient s*c and integral i */
11837 SCIP_Bool usecontvars, /**< should the coefficients of the continuous variables also be made integral? */
11908 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11935 * @return the feasibility of a row in the last LP solution: negative value means infeasibility
11948 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11973 /** returns the feasibility of a row for the current pseudo solution: negative value means infeasibility
11975 * @return the feasibility of a row for the current pseudo solution: negative value means infeasibility
11988 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12056 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12084 * If the NLP relaxation is enabled, then SCIP will construct the NLP relaxation when the solving process is about to begin.
12104 * This method should be called by a constraint handler if it has constraints that have a representation as nonlinear rows.
12106 * The function should be called before the branch-and-bound process is initialized, e.g., when presolve is exiting.
12178 /** computes for each variables the number of NLP rows in which the variable appears in a nonlinear var
12187 int* nlcount /**< an array of length at least SCIPnlpGetNVars() to store nonlinearity counts of variables */
12272 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12282 SCIP_Real* initialguess /**< values of initial guess (corresponding to variables from SCIPgetNLPVarsData), or NULL to use no start point */
12287 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12297 SCIP_SOL* sol /**< solution which values should be taken as initial guess, or NULL for LP solution */
12302 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12338 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12374 /** gets fractional variables of last NLP solution along with solution values and fractionalities
12376 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12387 SCIP_Real** fracvarssol, /**< pointer to store the array of NLP fractional variables solution values, or NULL */
12388 SCIP_Real** fracvarsfrac, /**< pointer to store the array of NLP fractional variables fractionalities, or NULL */
12390 int* npriofracvars /**< pointer to store the number of NLP fractional variables with maximal branching priority, or NULL */
12395 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12411 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12427 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12443 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12459 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12475 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12491 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12507 * @warning You have to make sure, that the full internal state of the NLPI does not change or is recovered completely
12508 * after the end of the method that uses the NLPI. In particular, if you manipulate the NLP or its solution
12509 * (e.g. by calling one of the SCIPnlpiAdd...() or the SCIPnlpiSolve() method), you have to check in advance
12510 * whether the NLP is currently solved. If this is the case, you have to make sure, the internal solution
12511 * status is recovered completely at the end of your method. Additionally you have to resolve the NLP with
12514 * @warning Make also sure, that all parameter values that you have changed are set back to their original values.
12516 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12541 * making methods SCIPchgVarObjDiveNLP(), SCIPchgVarBoundsDiveNLP(), SCIPchgVarsBoundsDiveNLP(), and SCIPsolveDiveNLP() available
12543 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12556 * resets changes made by SCIPchgVarObjDiveNLP(), SCIPchgVarBoundsDiveNLP(), and SCIPchgVarsBoundsDiveNLP()
12558 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12572 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12588 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12605 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12623 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12647 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12667 SCIP_QUADELEM* quadelems, /**< elements (i.e., monomials) in quadratic term, or NULL if nquadelems == 0 */
12675 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12694 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12711 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12727 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12744 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12761 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12778 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12795 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12813 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12834 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12853 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12871 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12888 * variable indices of the quadratic element need to be relative to quadratic variables array of row
12890 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12906 * variable indices of the quadratic elements need to be relative to quadratic variables array of row
12908 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12928 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12945 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12962 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12980 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12997 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13013 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13027 /** gives the feasibility of a nonlinear row in the last NLP solution: negative value means infeasibility
13029 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13045 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13060 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13074 /** gives the feasibility of a nonlinear row for the current pseudo solution: negative value means infeasibility
13076 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13092 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13107 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13123 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13137 /** gives the activity of a nonlinear row for the given primal solution or NLP solution or pseudo solution
13139 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13156 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13173 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13191 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13213 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13239 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13268 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13297 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13334 /** returns efficacy of the cut with respect to the given primal solution or the current LP solution:
13337 * @return the efficacy of the cut with respect to the given primal solution or the current LP solution:
13350 /** returns whether the cut's efficacy with respect to the given primal solution or the current LP solution is greater
13353 * @return TRUE if the cut's efficacy with respect to the given primal solution or the current LP solution is greater
13368 * @return TRUE if the given cut's efficacy is larger than the minimal cut efficacy, otherwise FALSE
13376 /** calculates the efficacy norm of the given vector, which depends on the "separating/efficacynorm" parameter
13378 * @return the efficacy norm of the given vector, which depends on the "separating/efficacynorm" parameter
13397 * @return whether the cut is modifiable, not a bound change, or a bound change that changes bounds by at least epsilon
13407 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13419 SCIP_Bool* infeasible /**< pointer to store whether cut has been detected to be infeasible for local bounds */
13424 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13438 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13494 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13516 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13540 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13556 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13572 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13589 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13604 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13620 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13633 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13646 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13658 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13670 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13680 /** separates the given primal solution or the current LP solution by calling the separators and constraint handlers'
13682 * the generated cuts are stored in the separation storage and can be accessed with the methods SCIPgetCuts() and
13684 * after evaluating the cuts, you have to call SCIPclearCuts() in order to remove the cuts from the
13686 * it is possible to call SCIPseparateSol() multiple times with different solutions and evaluate the found cuts
13689 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13699 SCIP_Bool pretendroot, /**< should the cut separators be called as if we are at the root node? */
13700 SCIP_Bool onlydelayed, /**< should only separators be called that were delayed in the previous round? */
13735 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13746 /** removes cuts that are inefficacious w.r.t. the current LP solution from separation storage without adding the cuts to the LP
13748 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13759 /** returns current factor on cut infeasibility to limit feasibility tolerance for relaxation solver
13785 /** initiates LP diving, making methods SCIPchgVarObjDive(), SCIPchgVarLbDive(), and SCIPchgVarUbDive() available
13787 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13795 * @note diving is allowed even if the current LP is not flushed, not solved, or not solved to optimality; be aware
13796 * that solving the (first) diving LP may take longer than expect and that the latter two cases could stem from
13797 * numerical troubles during the last LP solve; because of this, most users will want to call this method only if
13805 /** quits LP diving and resets bounds and objective values of columns to the current node's values
13807 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13822 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13838 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13855 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13872 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13889 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13903 /** changes row lhs in current dive, change will be undone after diving ends, for permanent changes use SCIPchgRowLhs()
13905 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13920 /** changes row rhs in current dive, change will be undone after diving ends, for permanent changes use SCIPchgRowRhs()
13922 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13983 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13991 * @note be aware that the LP solve may take longer than expected if SCIPgetLPSolstat(scip) != SCIP_LPSOLSTAT_OPTIMAL,
14003 /** returns the number of the node in the current branch and bound run, where the last LP was solved in diving
14006 * @return the number of the node in the current branch and bound run, where the last LP was solved in diving
14065 /** returns whether we are in probing mode; probing mode is activated via SCIPstartProbing() and stopped
14086 /** initiates probing, making methods SCIPnewProbingNode(), SCIPbacktrackProbing(), SCIPchgVarLbProbing(),
14087 * SCIPchgVarUbProbing(), SCIPfixVarProbing(), SCIPpropagateProbing(), and SCIPsolveProbingLP() available
14089 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14096 * @note The collection of variable statistics is turned off during probing. If these statistics should be collected
14104 /** creates a new probing sub node, whose changes can be undone by backtracking to a higher node in the probing path
14108 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14122 * @return the probing depth, i.e. the number of probing sub nodes existing in the probing path
14134 * the changes of the probing node of the given probing depth are the last ones that remain active;
14137 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14147 int probingdepth /**< probing depth of the node in the probing path that should be reactivated */
14152 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14164 /** injects a change of variable's lower bound into current probing node; the same can also be achieved with a call to
14165 * SCIPchgVarLb(), but in this case, the bound change would be treated like a deduction instead of a branching decision
14167 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14181 /** injects a change of variable's upper bound into current probing node; the same can also be achieved with a call to
14182 * SCIPchgVarUb(), but in this case, the bound change would be treated like a deduction instead of a branching decision
14184 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14198 /** injects a change of variable's bounds into current probing node to fix the variable to the specified value;
14199 * the same can also be achieved with a call to SCIPfixVar(), but in this case, the bound changes would be treated
14202 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14216 /** applies domain propagation on the probing sub problem, that was changed after SCIPstartProbing() was called;
14217 * the propagated domains of the variables can be accessed with the usual bound accessing calls SCIPvarGetLbLocal()
14218 * and SCIPvarGetUbLocal(); the propagation is only valid locally, i.e. the local bounds as well as the changed
14219 * bounds due to SCIPchgVarLbProbing(), SCIPchgVarUbProbing(), and SCIPfixVarProbing() are used for propagation
14221 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14231 int maxproprounds, /**< maximal number of propagation rounds (-1: no limit, 0: parameter settings) */
14233 SCIP_Longint* ndomredsfound /**< pointer to store the number of domain reductions found, or NULL */
14236 /** applies domain propagation on the probing sub problem, that was changed after SCIPstartProbing() was called;
14237 * only propagations of the binary variables fixed at the current probing node that are triggered by the implication
14239 * the propagated domains of the variables can be accessed with the usual bound accessing calls SCIPvarGetLbLocal()
14240 * and SCIPvarGetUbLocal(); the propagation is only valid locally, i.e. the local bounds as well as the changed
14241 * bounds due to SCIPchgVarLbProbing(), SCIPchgVarUbProbing(), and SCIPfixVarProbing() are used for propagation
14243 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14259 * The LP has to be constructed before (you can use SCIPisLPConstructed() or SCIPconstructLP()).
14261 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14272 SCIP_Bool* cutoff /**< pointer to store whether the probing LP was infeasible or the objective
14276 /** solves the LP at the current probing node (cannot be applied at preprocessing stage) and applies pricing
14279 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed . See \ref
14293 SCIP_Bool* cutoff /**< pointer to store whether the probing LP was infeasible or the objective
14310 /** gets branching candidates for LP solution branching (fractional variables) along with solution values,
14311 * fractionalities, and number of branching candidates; The number of branching candidates does NOT
14312 * account for fractional implicit integer variables which should not be used for branching decisions.
14314 * Fractional implicit integer variables are stored at the positions *nlpcands to *nlpcands + *nfracimplvars - 1
14316 * branching rules should always select the branching candidate among the first npriolpcands of the candidate
14319 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14331 SCIP_Real** lpcandssol, /**< pointer to store the array of LP candidate solution values, or NULL */
14332 SCIP_Real** lpcandsfrac, /**< pointer to store the array of LP candidate fractionalities, or NULL */
14334 int* npriolpcands, /**< pointer to store the number of candidates with maximal priority, or NULL */
14335 int* nfracimplvars /**< pointer to store the number of fractional implicit integer variables, or NULL */
14338 /** gets number of branching candidates for LP solution branching (number of fractional variables)
14340 * @return the number of branching candidates for LP solution branching (number of fractional variables).
14366 /** gets external branching candidates along with solution values, scores, and number of branching candidates;
14368 * branching rules should always select the branching candidate among the first nprioexterncands of the candidate
14371 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14379 * @note Candidate variables with maximal priority are ordered: binaries first, then integers, implicit integers and
14385 SCIP_VAR*** externcands, /**< pointer to store the array of extern branching candidates, or NULL */
14386 SCIP_Real** externcandssol, /**< pointer to store the array of extern candidate solution values, or NULL */
14387 SCIP_Real** externcandsscore, /**< pointer to store the array of extern candidate scores, or NULL */
14388 int* nexterncands, /**< pointer to store the number of extern branching candidates, or NULL */
14389 int* nprioexterncands, /**< pointer to store the number of candidates with maximal priority, or NULL */
14390 int* nprioexternbins, /**< pointer to store the number of binary candidates with maximal priority, or NULL */
14391 int* nprioexternints, /**< pointer to store the number of integer candidates with maximal priority, or NULL */
14392 int* nprioexternimpls /**< pointer to store the number of implicit integer candidates with maximal priority,
14452 /** gets number of implicit integer external branching candidates with maximal branch priority
14454 * @return the number of implicit integer external branching candidates with maximal branch priority.
14468 * @return the number of continuous external branching candidates with maximal branch priority.
14480 /** insert variable, its score and its solution value into the external branching candidate storage
14481 * the relative difference of the current lower and upper bounds of a continuous variable must be at least epsilon
14483 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14511 /** checks whether the given variable is contained in the candidate storage for external branching
14513 * @return whether the given variable is contained in the candidate storage for external branching.
14526 /** gets branching candidates for pseudo solution branching (non-fixed variables) along with the number of candidates
14528 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14540 SCIP_VAR*** pseudocands, /**< pointer to store the array of pseudo branching candidates, or NULL */
14541 int* npseudocands, /**< pointer to store the number of pseudo branching candidates, or NULL */
14542 int* npriopseudocands /**< pointer to store the number of candidates with maximal priority, or NULL */
14547 * @return the number branching candidates for pseudo solution branching (non-fixed variables).
14560 /** gets number of branching candidates with maximal branch priority for pseudo solution branching
14562 * @return the number of branching candidates with maximal branch priority for pseudo solution branching.
14575 /** gets number of binary branching candidates with maximal branch priority for pseudo solution branching
14577 * @return the number of binary branching candidates with maximal branch priority for pseudo solution branching.
14589 /** gets number of integer branching candidates with maximal branch priority for pseudo solution branching
14591 * @return the number of integer branching candidates with maximal branch priority for pseudo solution branching.
14603 /** gets number of implicit integer branching candidates with maximal branch priority for pseudo solution branching
14605 * @return the number of implicit integer branching candidates with maximal branch priority for pseudo solution branching.
14634 /** calculates the branching score out of the gain predictions for a branching with arbitrary many children
14636 * @return the branching score out of the gain predictions for a branching with arbitrary many children.
14668 /** calculates the node selection priority for moving the given variable's LP value to the given target value;
14671 * @return the node selection priority for moving the given variable's LP value to the given target value.
14682 SCIP_BRANCHDIR branchdir, /**< type of branching that was performed: upwards, downwards, or fixed;
14688 /** calculates an estimate for the objective of the best feasible solution contained in the subtree after applying the given
14691 * @return the estimate for the objective of the best feasible solution contained in the subtree after applying the given
14708 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14721 SCIP_Real estimate /**< estimate for (transformed) objective value of best feasible solution in subtree */
14733 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14745 SCIP_NODE** downchild, /**< pointer to return the left child with variable rounded down, or NULL */
14747 SCIP_NODE** upchild /**< pointer to return the right child with variable rounded up, or NULL */
14750 /** branches a variable x using a given domain hole; two child nodes (x <= left, x >= right) are created
14752 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14771 * for continuous variables with relative domain width larger epsilon, x' must not be one of the bounds;
14778 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14791 SCIP_NODE** downchild, /**< pointer to return the left child with variable rounded down, or NULL */
14793 SCIP_NODE** upchild /**< pointer to return the right child with variable rounded up, or NULL */
14797 * Branches on variable x such that up to n/2 children are created on each side of the usual branching value.
14799 * The parameters minwidth and widthfactor determine the domain width of the branching variable in the child nodes.
14800 * If n is odd, one child with domain width 'width' and having the branching value in the middle is created.
14801 * Otherwise, two children with domain width 'width' and being left and right of the branching value are created.
14802 * Next further nodes to the left and right are created, where width is multiplied by widthfactor with increasing distance from the first nodes.
14803 * The initial width is calculated such that n/2 nodes are created to the left and to the right of the branching value.
14804 * If this value is below minwidth, the initial width is set to minwidth, which may result in creating less than n nodes.
14806 * Giving a large value for widthfactor results in creating children with small domain when close to the branching value
14807 * and large domain when closer to the current variable bounds. That is, setting widthfactor to a very large value and n to 3
14808 * results in a ternary branching where the branching variable is mostly fixed in the middle child.
14809 * Setting widthfactor to 1.0 results in children where the branching variable always has the same domain width
14812 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14827 SCIP_Real widthfactor, /**< multiplier for children domain width with increasing distance from val, must be >= 1.0 */
14831 /** calls branching rules to branch on an LP solution; if no fractional variables exist, the result is SCIP_DIDNOTRUN;
14832 * if the branch priority of an unfixed variable is larger than the maximal branch priority of the fractional
14833 * variables, pseudo solution branching is applied on the unfixed variables with maximal branch priority
14835 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14849 /** calls branching rules to branch on a external candidates; if no such candidates exist, the result is SCIP_DIDNOTRUN
14851 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14865 /** calls branching rules to branch on a pseudo solution; if no unfixed variables exist, the result is SCIP_DIDNOTRUN
14867 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14895 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14918 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14933 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14948 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14963 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14976 /** creates a primal solution, initialized to the current LP or pseudo solution, depending on whether the LP was solved
14979 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14994 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15015 * a solution in original space allows to set original variables to values that would be invalid in the
15018 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15039 /** creates a copy of a primal solution; note that a copy of a linked solution is also linked and needs to be unlinked
15042 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15063 /** creates a copy of a primal solution, thereby replacing infinite fixings of variables by finite values;
15065 * success indicates whether the objective value of the solution was changed by removing infinite values
15067 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15093 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15118 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15132 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15146 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15160 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15175 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15189 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15214 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15236 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15263 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15291 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15320 * @pre In case the solution pointer @p sol is @b NULL, that means it is asked for the LP or pseudo solution, this method
15321 * can only be called if @p scip is in the solving stage \ref SCIP_STAGE_SOLVING. In any other case, this method
15345 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15371 /** returns objective value of primal CIP solution w.r.t. original problem, or current LP/pseudo objective value
15373 * @return objective value of primal CIP solution w.r.t. original problem, or current LP/pseudo objective value
15395 /** returns transformed objective value of primal CIP solution, or transformed current LP/pseudo objective value
15397 * @return transformed objective value of primal CIP solution, or transformed current LP/pseudo objective value
15577 /** adjusts solution values of implicit integer variables in handed solution. Solution objective value is not
15580 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15590 SCIP_Bool uselprows /**< should LP row information be considered for none-objective variables */
15595 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15598 * @pre In case the solution pointer @p sol is NULL (askinking for the current LP/pseudo solution), this method can be
15608 * @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
15631 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15655 * @note This only works if no presolving has been performed, which can be checked by calling method \ref
15658 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15672 /** outputs non-zero variables of solution representing a ray in original problem space to file stream
15674 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15697 /** gets number of feasible primal solutions stored in the solution storage in case the problem is transformed;
15698 * in case the problem stage is SCIP_STAGE_PROBLEM, the number of solution in the original solution candidate
15701 * @return number of feasible primal solutions stored in the solution storage in case the problem is transformed; or
15702 * number of solution in the original solution candidate storage if the problem stage is SCIP_STAGE_PROBLEM
15721 /** gets array of feasible primal solutions stored in the solution storage in case the problem is transformed; in case
15722 * if the problem stage is in SCIP_STAGE_PROBLEM, it returns the number array of solution candidate stored
15743 /** gets best feasible primal solution found so far if the problem is transformed; in case the problem is in
15744 * SCIP_STAGE_PROBLEM it returns the best solution candidate, or NULL if no solution has been found or the candidate
15768 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15793 /** outputs best feasible primal solution found so far in transformed variables to file stream
15795 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15822 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15837 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15862 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15883 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15907 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15931 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15947 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15973 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15999 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16018 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16043 /** checks solution for feasibility in original problem without adding it to the solution store;
16046 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16071 * @return return whether a primal ray is stored that proves unboundedness of the LP relaxation
16110 * If you want to catch an event for an original variable, you have to get the corresponding transformed variable
16117 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16138 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
16144 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16165 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
16171 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16193 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
16197 /** drops an objective value or domain change event (stops to track event) on the given transformed variable
16199 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16221 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
16227 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16249 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
16253 /** drops a row coefficient, constant, or side change event (stops to track event) on the given row
16255 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16277 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
16340 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16367 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16394 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16419 /** gets the best child of the focus node w.r.t. the node selection priority assigned by the branching rule
16421 * @return the best child of the focus node w.r.t. the node selection priority assigned by the branching rule
16431 /** gets the best sibling of the focus node w.r.t. the node selection priority assigned by the branching rule
16433 * @return the best sibling of the focus node w.r.t. the node selection priority assigned by the branching rule
16479 /** gets the best node from the tree (child, sibling, or leaf) w.r.t. the node selection strategy
16481 * @return the best node from the tree (child, sibling, or leaf) w.r.t. the node selection strategy
16521 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16533 /** marks the given node to be propagated again the next time a node of its subtree is processed
16535 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16573 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16693 /** gets total number of iterations used so far in primal and dual simplex and barrier algorithm
16695 * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm
16708 /** gets total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node
16710 * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node
16722 /** gets total number of iterations used in primal and dual simplex and barrier algorithm for the first LP at the root
16725 * @return the total number of iterations used in primal and dual simplex and barrier algorithm for the first root LP
16823 * @return the total number of LPs solved so far that were resolved from an advanced start basis
16835 /** gets total number of simplex iterations used so far in primal and dual simplex calls where an advanced start basis
16838 * @return the total number of simplex iterations used so far in primal and dual simplex calls where an advanced start
16851 /** gets total number of primal LPs solved so far that were resolved from an advanced start basis
16853 * @return the total number of primal LPs solved so far that were resolved from an advanced start basis
16865 /** gets total number of simplex iterations used so far in primal simplex calls where an advanced start basis
16868 * @return the total number of simplex iterations used so far in primal simplex calls where an advanced start
16881 /** gets total number of dual LPs solved so far that were resolved from an advanced start basis
16883 * @return the total number of dual LPs solved so far that were resolved from an advanced start basis
16895 /** gets total number of simplex iterations used so far in dual simplex calls where an advanced start basis
16898 * @return the total number of simplex iterations used so far in dual simplex calls where an advanced start
16955 * @return the total number of simplex iterations used so far for initial LP in node relaxations
16995 /** gets total number of times, strong branching was called (each call represents solving two LPs)
16997 * @return the total number of times, strong branching was called (each call represents solving two LPs)
17023 /** gets total number of times, strong branching was called at the root node (each call represents solving two LPs)
17025 * @return the total number of times, strong branching was called at the root node (each call represents solving two LPs)
17039 * @return the total number of simplex iterations used so far in strong branching at the root node
17159 /** get total number of constraints found in conflict analysis (conflict and reconvergence constraints)
17161 * @return the total number of constraints found in conflict analysis (conflict and reconvergence constraints)
17219 /** gets depth of current node, or -1 if no current node exists; in probing, the current node is the last probing node,
17222 * @return the depth of current node, or -1 if no current node exists; in probing, the current node is the last probing node,
17241 /** gets depth of the focus node, or -1 if no focus node exists; the focus node is the currently processed node in the
17244 * @return the depth of the focus node, or -1 if no focus node exists; the focus node is the currently processed node in the
17263 /** gets maximal depth of all processed nodes in current branch and bound run (excluding probing nodes)
17265 * @return the maximal depth of all processed nodes in current branch and bound run (excluding probing nodes)
17303 /** gets total number of backtracks, i.e. number of times, the new node was selected from the leaves queue
17305 * @return the total number of backtracks, i.e. number of times, the new node was selected from the leaves queue
17467 /** gets lower (dual) bound in transformed problem obtained by the first LP solve at the root node
17469 * @return the lower (dual) bound in transformed problem obtained by first LP solve at the root node
17485 /** gets global primal bound (objective value of best solution or user objective limit) for the original problem
17487 * @return the global primal bound (objective value of best solution or user objective limit) for the original problem
17505 /** gets global upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
17507 * @return the global upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
17525 /** gets global cutoff bound in transformed problem: a sub problem with lower bound larger than the cutoff
17526 * cannot contain a better feasible solution; usually, this bound is equal to the upper bound, but if the
17527 * objective value is always integral, the cutoff bound is (nearly) one less than the upper bound;
17528 * additionally, due to objective function domain propagation, the cutoff bound can be further reduced
17550 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17568 /** returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound
17571 * @return TRUE if the current primal bound is justified with a feasible primal solution, otherwise FALSE
17589 /** gets current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign,
17592 * @return the current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign,
17605 /** gets current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds
17608 * @return current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds
17661 /** gets number of feasible primal solutions found so far, that improved the primal bound at the time they were found
17663 * @return the number of feasible primal solutions found so far, that improved the primal bound at the time they were found
17713 * @return the average number of pseudo cost updates for the given direction over all variables
17725 /** gets the average number of pseudo cost updates for the given direction over all variables,
17728 * @return the average number of pseudo cost updates for the given direction over all variables,
17741 /** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5
17743 * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5
17754 /** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5,
17757 * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5,
17775 /** gets the average conflict score value over all variables, only using the pseudo cost information of the current run
17777 * @return the average conflict score value over all variables, only using the pseudo cost information of the current run
17801 /** gets the average conflictlength score value over all variables, only using the pseudo cost information of the
17804 * @return the average conflictlength score value over all variables, only using the pseudo cost information of the
17816 /** returns the average number of inferences found after branching in given direction over all variables
17818 * @return the average number of inferences found after branching in given direction over all variables
17830 /** returns the average number of inferences found after branching in given direction over all variables,
17833 * @return the average number of inferences found after branching in given direction over all variables,
17859 /** gets the average inference score value over all variables, only using the inference information information of the
17862 * @return the average inference score value over all variables, only using the inference information information of the
17874 /** returns the average number of cutoffs found after branching in given direction over all variables
17876 * @return the average number of cutoffs found after branching in given direction over all variables
17888 /** returns the average number of cutoffs found after branching in given direction over all variables,
17891 * @return the average number of cutoffs found after branching in given direction over all variables,
17917 /** gets the average cutoff score value over all variables, only using the pseudo cost information of the current run
17919 * @return the average cutoff score value over all variables, only using the pseudo cost information of the current run
17932 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17959 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17984 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17987 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
18009 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18031 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18041 SCIP_VERBLEVEL verblevel, /**< minimal verbosity level to actually display the information line */
18045 /** gets total number of implications between variables that are stored in the implication graph
18047 * @return the total number of implications between variables that are stored in the implication graph
18063 /** stores conflict graph of binary variables' implications into a file, which can be used as input for the DOT tool
18065 * @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
18186 * Method reads the value of the parameter timing/statistictiming. In order to disable statistic timing,
18192 * @see: For completely disabling all timing of SCIP, consider setting the parameter timing/enabled to FALSE
18217 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18243 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18279 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18464 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18475 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18487 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18498 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18519 /** returns the minimum value that is regarded as huge and should be handled separately (e.g., in activity
18574 /** checks, if value is huge and should be handled separately (e.g., in activity computation) */
18729 /** checks, if relative difference of val1 and val2 is not greater than feasibility tolerance */
18832 /** checks, if relative difference of val1 and val2 is not greater than dual feasibility tolerance */
18840 /** checks, if relative difference of val1 and val2 is greater than dual feasibility tolerance */
18848 /** checks, if relative difference of val1 and val2 is not lower than -dual feasibility tolerance */
18919 /** checks, if the given new lower bound is tighter (w.r.t. bound strengthening epsilon) than the old one */
18928 /** checks, if the given new upper bound is tighter (w.r.t. bound strengthening epsilon) than the old one */
19016 /** converts the given real number representing an integer to an int; in optimized mode the function gets inlined for
19025 /** converts the given real number representing an integer to a long integer; in optimized mode the function gets inlined for
19035 * This is useful, if the value, e.g., the activity of a linear constraint or the pseudo objective value, gets a high
19036 * absolute value during the optimization process which is later reduced significantly. In this case, the last digits
19038 * We do not consider the cancellations which can occur during increasing the absolute value because they just cannot
19040 * In order to get more reliable values, the idea is to always store the last reliable value, where increasing the
19041 * absolute of the value is viewed as preserving reliability. Then, after each update, the new absolute value can be
19042 * compared against the last reliable one with this method, checking whether it was decreased by a factor of at least
19054 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
19071 #define SCIPisScalingIntegral(scip, val, scalar) SCIPsetIsScalingIntegral((scip)->set, val, scalar)
19117 #define SCIPisLbBetter(scip, newlb, oldlb, oldub) SCIPsetIsLbBetter(scip->set, newlb, oldlb, oldub)
19118 #define SCIPisUbBetter(scip, newub, oldlb, oldub) SCIPsetIsUbBetter(scip->set, newub, oldlb, oldub)
19131 #define SCIPconvertRealToInt(scip, real) ((int)((real) < 0 ? ((real) - 0.5) : ((real) + 0.5)))
19132 #define SCIPconvertRealToLongint(scip, real) ((SCIP_Longint)((real) < 0 ? ((real) - 0.5) : ((real) + 0.5)))
19134 #define SCIPisUpdateUnreliable(scip, newval, oldval) SCIPsetIsUpdateUnreliable((scip)->set, newval, oldval)
19163 #define SCIPallocClearMemoryArray(scip,ptr,num) ( (BMSallocClearMemoryArray((ptr), (num)) == NULL) \
19167 #define SCIPreallocMemoryArray(scip,ptr,newnum) ( (BMSreallocMemoryArray((ptr), (newnum)) == NULL) \
19169 #define SCIPreallocMemorySize(scip,ptr,newsize) ( (BMSreallocMemorySize((ptr), (newsize)) == NULL) \
19171 #define SCIPduplicateMemory(scip, ptr, source) ( (BMSduplicateMemory((ptr), (source)) == NULL) \
19183 #define SCIPallocBlockMemory(scip,ptr) ( (BMSallocBlockMemory(SCIPblkmem(scip), (ptr)) == NULL) \
19185 #define SCIPallocBlockMemoryArray(scip,ptr,num) ( (BMSallocBlockMemoryArray(SCIPblkmem(scip), (ptr), (num)) == NULL) \
19187 #define SCIPallocBlockMemorySize(scip,ptr,size) ( (BMSallocBlockMemorySize(SCIPblkmem(scip), (ptr), (size)) == NULL) \
19206 #define SCIPfreeBlockMemoryArray(scip,ptr,num) BMSfreeBlockMemoryArray(SCIPblkmem(scip), (ptr), (num))
19209 #define SCIPfreeBlockMemorySize(scip,ptr,size) BMSfreeBlockMemorySize(SCIPblkmem(scip), (ptr), (size))
19213 #define SCIPallocBuffer(scip,ptr) SCIPallocBufferSize(scip, (void**)(ptr), (int)sizeof(**(ptr)))
19214 #define SCIPallocBufferArray(scip,ptr,num) SCIPallocBufferSize(scip, (void**)(ptr), (num)*(int)sizeof(**(ptr)))
19215 #define SCIPreallocBufferArray(scip,ptr,num) SCIPreallocBufferSize(scip, (void**)(ptr), (num)*(int)sizeof(**(ptr)))
19216 #define SCIPduplicateBuffer(scip,ptr,source) SCIPduplicateBufferSize(scip, (void**)(ptr), source, (int)sizeof(**(ptr)))
19222 #define SCIPfreeBufferArrayNull(scip,ptr) { if( *(ptr) != NULL ) SCIPfreeBufferArray(scip, ptr); }
19262 /** extends a dynamically allocated block memory array to be able to store at least the given number of elements;
19265 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19279 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19289 /** allocates a memory buffer with at least the given size and copies the given memory into the buffer
19291 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19304 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19319 int dummysize /**< used to get a safer define for SCIPfreeBuffer() and SCIPfreeBufferArray() */
19342 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19353 * @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
19395 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19408 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19441 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19452 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19463 * @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
19498 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19511 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19544 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19555 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19566 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19579 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19601 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19634 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19645 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19656 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19669 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19688 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19721 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
19727 #define SCIPextendRealarray(scip, realarray, minidx, maxidx) SCIPrealarrayExtend(realarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, minidx, maxidx)
19730 #define SCIPsetRealarrayVal(scip, realarray, idx, val) SCIPrealarraySetVal(realarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, val)
19731 #define SCIPincRealarrayVal(scip, realarray, idx, incval) SCIPrealarrayIncVal(realarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, incval)
19737 #define SCIPextendIntarray(scip, intarray, minidx, maxidx) SCIPintarrayExtend(intarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, minidx, maxidx)
19740 #define SCIPsetIntarrayVal(scip, intarray, idx, val) SCIPintarraySetVal(intarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, val)
19741 #define SCIPincIntarrayVal(scip, intarray, idx, incval) SCIPintarrayIncVal(intarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, incval)
19747 #define SCIPextendBoolarray(scip, boolarray, minidx, maxidx) SCIPboolarrayExtend(boolarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, minidx, maxidx)
19750 #define SCIPsetBoolarrayVal(scip, boolarray, idx, val) SCIPboolarraySetVal(boolarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, val)
19756 #define SCIPextendPtrarray(scip, ptrarray, minidx, maxidx) SCIPptrarrayExtend(ptrarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, minidx, maxidx)
19759 #define SCIPsetPtrarrayVal(scip, ptrarray, idx, val) SCIPptrarraySetVal(ptrarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, val)
SCIP_Real SCIPdualfeasCeil(SCIP *scip, SCIP_Real val) int SCIPgetNOrigIntVars(SCIP *scip) SCIP_RETCODE SCIPsetNLPRealPar(SCIP *scip, SCIP_NLPPARAM type, SCIP_Real dval) SCIP_Longint SCIPgetNNodes(SCIP *scip) SCIP_RETCODE SCIPsetPresolInitpre(SCIP *scip, SCIP_PRESOL *presol, SCIP_DECL_PRESOLINITPRE((*presolinitpre))) SCIP_CONSHDLR * SCIPfindConshdlr(SCIP *scip, const char *name) SCIP_RETCODE SCIPunmarkConsPropagate(SCIP *scip, SCIP_CONS *cons) SCIP_RETCODE SCIPrestartSolve(SCIP *scip) SCIP_RETCODE SCIPgetOpenNodesData(SCIP *scip, SCIP_NODE ***leaves, SCIP_NODE ***children, SCIP_NODE ***siblings, int *nleaves, int *nchildren, int *nsiblings) SCIP_RETCODE SCIPlinkRelaxSol(SCIP *scip, SCIP_SOL *sol) SCIP_RETCODE SCIPupdateVarBranchPriority(SCIP *scip, SCIP_VAR *var, int branchpriority) SCIP_RETCODE SCIPsetNlRowExprtreeParam(SCIP *scip, SCIP_NLROW *nlrow, int paramidx, SCIP_Real paramval) SCIP_Real SCIPgetConflictVarLb(SCIP *scip, SCIP_VAR *var) SCIP_Real SCIPgetVarImplRedcost(SCIP *scip, SCIP_VAR *var, SCIP_Bool varfixing) SCIP_SOL * SCIPgetBestSol(SCIP *scip) SCIP_RETCODE SCIPgetVarStrongbranchInt(SCIP *scip, SCIP_VAR *var, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror) SCIP_RETCODE SCIPsetConshdlrActive(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSACTIVE((*consactive))) SCIP_Longint SCIPgetNLimSolsFound(SCIP *scip) void SCIPprintError(SCIP_RETCODE retcode) SCIP_RETCODE SCIPstartClock(SCIP *scip, SCIP_CLOCK *clck) SCIP_RETCODE SCIPgetLPBInvACol(SCIP *scip, int c, SCIP_Real *coef) char ** SCIPgetExternalCodeDescriptions(SCIP *scip) SCIP_RETCODE SCIPcopyImplicationsCliques(SCIP *sourcescip, SCIP *targetscip, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, SCIP_Bool global, SCIP_Bool *infeasible, int *nbdchgs, int *ncopied) SCIP_RETCODE SCIPsetSepaInit(SCIP *scip, SCIP_SEPA *sepa, SCIP_DECL_SEPAINIT((*sepainit))) SCIP_Real SCIPgetCutEfficacy(SCIP *scip, SCIP_SOL *sol, SCIP_ROW *cut) SCIP_Longint SCIPgetNStrongbranchs(SCIP *scip) SCIP_Real SCIPgetFirstLPTime(SCIP *scip) SCIP_RETCODE SCIPsetBranchruleInit(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHINIT((*branchinit))) SCIP_RETCODE SCIPcreateNlRowFromRow(SCIP *scip, SCIP_NLROW **nlrow, SCIP_ROW *row) SCIP_RETCODE SCIPsetLongintParam(SCIP *scip, const char *name, SCIP_Longint value) SCIP_RETCODE SCIPsetPricerPriority(SCIP *scip, SCIP_PRICER *pricer, int priority) SCIP_RETCODE SCIPdelRowCutpool(SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_ROW *row) SCIP_Bool SCIPisFeasGE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPdelCons(SCIP *scip, SCIP_CONS *cons) int SCIPgetNObjVars(SCIP *scip) SCIP_Longint SCIPgetNDivingLPIterations(SCIP *scip) SCIP_RETCODE SCIPgetConsVars(SCIP *scip, SCIP_CONS *cons, SCIP_VAR **vars, int varssize, SCIP_Bool *success) int SCIPgetNBinVars(SCIP *scip) SCIP_RETCODE SCIPsetBranchruleExit(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHEXIT((*branchexit))) SCIP_RETCODE SCIPsetNLPStringPar(SCIP *scip, SCIP_NLPPARAM type, const char *sval) SCIP_Bool SCIPisFeasLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPincludeNlpi(SCIP *scip, SCIP_NLPI *nlpi) int SCIPgetNRelaxs(SCIP *scip) SCIP_RETCODE SCIPsetNodeselInitsol(SCIP *scip, SCIP_NODESEL *nodesel, SCIP_DECL_NODESELINITSOL((*nodeselinitsol))) SCIP_RETCODE SCIPisConflictVarUsed(SCIP *scip, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool *used) SCIP_RETCODE SCIPdeactiveCons(SCIP *scip, SCIP_CONS *cons) SCIP_RETCODE SCIPsetConflicthdlrFree(SCIP *scip, SCIP_CONFLICTHDLR *conflicthdlr, SCIP_DECL_CONFLICTFREE((*conflictfree))) int SCIPgetNNLPVars(SCIP *scip) SCIP_Bool SCIPisEfficacious(SCIP *scip, SCIP_Real efficacy) SCIP_RETCODE SCIPsetNLPIntPar(SCIP *scip, SCIP_NLPPARAM type, int ival) SCIP_Real SCIPgetClockTime(SCIP *scip, SCIP_CLOCK *clck) SCIP_RETCODE SCIPupdateVarPseudocost(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta, SCIP_Real objdelta, SCIP_Real weight) SCIP_RETCODE SCIPgetIntParam(SCIP *scip, const char *name, int *value) SCIP_RETCODE SCIPgetProbvarLinearSum(SCIP *scip, SCIP_VAR **vars, SCIP_Real *scalars, int *nvars, int varssize, SCIP_Real *constant, int *requiredsize, SCIP_Bool mergemultiples) SCIP_Real SCIPadjustedVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real lb) SCIP_RETCODE SCIPsetConshdlrParse(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPARSE((*consparse))) SCIP_RETCODE SCIPduplicateBufferSize(SCIP *scip, void **ptr, const void *source, int size) SCIP_RETCODE SCIPgetNlRowPseudoActivity(SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *pseudoactivity) SCIP_Real SCIPgetRowMinActivity(SCIP *scip, SCIP_ROW *row) SCIP_Real SCIPgetTimeOfDay(SCIP *scip) void SCIPenableVarHistory(SCIP *scip) SCIP_RETCODE SCIPsetNlpiPriority(SCIP *scip, SCIP_NLPI *nlpi, int priority) SCIP_Real SCIPgetReadingTime(SCIP *scip) SCIP_Bool SCIPisUbBetter(SCIP *scip, SCIP_Real newub, SCIP_Real oldlb, SCIP_Real oldub) SCIP_RETCODE SCIPaddVarLocks(SCIP *scip, SCIP_VAR *var, int nlocksdown, int nlocksup) SCIP_Bool SCIPisRelEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_Bool SCIPisFeasZero(SCIP *scip, SCIP_Real val) SCIP_Real SCIPversion(void) public methods for branching and inference history structure SCIP_RETCODE SCIPrecalcNlRowPseudoActivity(SCIP *scip, SCIP_NLROW *nlrow) SCIP_RETCODE SCIPgetVarsStrongbranchesFrac(SCIP *scip, SCIP_VAR **vars, int nvars, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror) SCIP_RETCODE SCIPchgVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real newobj) SCIP_RETCODE SCIPprintSol(SCIP *scip, SCIP_SOL *sol, FILE *file, SCIP_Bool printzeros) SCIP_Bool SCIPisDualfeasLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_Longint SCIPgetNDualLPs(SCIP *scip) int SCIPgetNProps(SCIP *scip) public methods for branch and bound tree SCIP_RETCODE SCIPgetNLPI(SCIP *scip, SCIP_NLPI **nlpi, SCIP_NLPIPROBLEM **nlpiproblem) SCIP_RETCODE SCIPstartStrongbranch(SCIP *scip, SCIP_Bool enablepropagation) type definitions for miscellaneous datastructures timing definitions for SCIP SCIP_VAR ** SCIPgetFixedVars(SCIP *scip) SCIP_RETCODE SCIPcreateRowCons(SCIP *scip, SCIP_ROW **row, SCIP_CONSHDLR *conshdlr, const char *name, int len, SCIP_COL **cols, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable) SCIP_Real SCIPgetOrigObjoffset(SCIP *scip) SCIP_RETCODE SCIPcaptureRow(SCIP *scip, SCIP_ROW *row) SCIP_RETCODE SCIPwriteVarsPolynomial(SCIP *scip, FILE *file, SCIP_VAR ***monomialvars, SCIP_Real **monomialexps, SCIP_Real *monomialcoefs, int *monomialnvars, int nmonomials, SCIP_Bool type) SCIP_RETCODE SCIPincludeExternalCodeInformation(SCIP *scip, const char *name, const char *description) SCIP_Real SCIPgetRowSolActivity(SCIP *scip, SCIP_ROW *row, SCIP_SOL *sol) SCIP_RETCODE SCIPaddConflictBinvar(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPfreeProb(SCIP *scip) SCIP_Real SCIPgetVarUbDive(SCIP *scip, SCIP_VAR *var) SCIP_Bool SCIPisSumGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2) int SCIPgetIntarrayMinIdx(SCIP *scip, SCIP_INTARRAY *intarray) SCIP_RETCODE SCIPgetNlRowNLPActivity(SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *activity) SCIP_RETCODE SCIPcreateVar(SCIP *scip, SCIP_VAR **var, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_DECL_VARCOPY((*varcopy)), SCIP_VARDATA *vardata) SCIP_RETCODE SCIPprintStage(SCIP *scip, FILE *file) type definitions for NLP management SCIP_READER ** SCIPgetReaders(SCIP *scip) SCIP_RETCODE SCIPactiveCons(SCIP *scip, SCIP_CONS *cons) SCIP_RETCODE SCIPincludePresolBasic(SCIP *scip, SCIP_PRESOL **presolptr, const char *name, const char *desc, int priority, int maxrounds, SCIP_Bool delay, SCIP_DECL_PRESOLEXEC((*presolexec)), SCIP_PRESOLDATA *presoldata) SCIP_Real SCIPgetHugeValue(SCIP *scip) SCIP_RETCODE SCIPaddLongintParam(SCIP *scip, const char *name, const char *desc, SCIP_Longint *valueptr, SCIP_Bool isadvanced, SCIP_Longint defaultvalue, SCIP_Longint minvalue, SCIP_Longint maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata) SCIP_RETCODE SCIPsetPropExitpre(SCIP *scip, SCIP_PROP *prop, SCIP_DECL_PROPEXITPRE((*propexitpre))) SCIP_Real SCIPgetFirstLPDualboundRoot(SCIP *scip) SCIP_RETCODE SCIPsetCharParam(SCIP *scip, const char *name, char value) SCIP_RETCODE SCIPsetPropInit(SCIP *scip, SCIP_PROP *prop, SCIP_DECL_PROPINIT((*propinit))) SCIP_RETCODE SCIPtransformVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar) SCIP_Real SCIPgetRelaxFeastolFactor(SCIP *scip) int SCIPcalcMemGrowSize(SCIP *scip, int num) SCIP_Bool SCIPisSumRelLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_Bool SCIPhasPerformedPresolve(SCIP *scip) SCIP_RETCODE SCIPsetNodeselExitsol(SCIP *scip, SCIP_NODESEL *nodesel, SCIP_DECL_NODESELEXITSOL((*nodeselexitsol))) SCIP_RETCODE SCIPrecalcRowLPActivity(SCIP *scip, SCIP_ROW *row) SCIP_RETCODE SCIPsolveNLP(SCIP *scip) SCIP_RETCODE SCIPchgVarName(SCIP *scip, SCIP_VAR *var, const char *name) SCIP_RETCODE SCIPgetLPI(SCIP *scip, SCIP_LPI **lpi) SCIP_RETCODE SCIPsetPropCopy(SCIP *scip, SCIP_PROP *prop, SCIP_DECL_PROPCOPY((*propcopy))) SCIP_PROBDATA * SCIPgetProbData(SCIP *scip) SCIP_RETCODE SCIPsetProbName(SCIP *scip, const char *name) SCIP_RETCODE SCIPparseCons(SCIP *scip, SCIP_CONS **cons, const char *str, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode, SCIP_Bool *success) SCIP_RETCODE SCIPsetConflicthdlrCopy(SCIP *scip, SCIP_CONFLICTHDLR *conflicthdlr, SCIP_DECL_CONFLICTCOPY((*conflictcopy))) SCIP_RETCODE SCIPprintStatistics(SCIP *scip, FILE *file) SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPsetNodeselCopy(SCIP *scip, SCIP_NODESEL *nodesel, SCIP_DECL_NODESELCOPY((*nodeselcopy))) SCIP_RETCODE SCIPtrySolFree(SCIP *scip, SCIP_SOL **sol, SCIP_Bool printreason, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored) SCIP_Bool SCIPisSumZero(SCIP *scip, SCIP_Real val) int SCIPgetNPrioLPBranchCands(SCIP *scip) int SCIPgetNVars(SCIP *scip) SCIP_Real SCIPgetVarObjDive(SCIP *scip, SCIP_VAR *var) public methods for implications, variable bounds, and cliques SCIP_RETCODE SCIPsetConshdlrTrans(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSTRANS((*constrans))) SCIP_NODE * SCIPgetBestboundNode(SCIP *scip) int SCIPgetNPrioPseudoBranchCands(SCIP *scip) SCIP_NODE * SCIPgetBestChild(SCIP *scip) SCIP_RETCODE SCIPdelPoolCut(SCIP *scip, SCIP_ROW *row) int SCIPgetNContVars(SCIP *scip) SCIP_RETCODE SCIPclearRealarray(SCIP *scip, SCIP_REALARRAY *realarray) int SCIPgetNLeaves(SCIP *scip) SCIP_RETCODE SCIPgetVarSols(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_Real *vals) SCIP_RETCODE SCIPrecalcRowActivity(SCIP *scip, SCIP_ROW *row) SCIP_RETCODE SCIPaddConflictRelaxedBd(SCIP *scip, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Real relaxedbd) SCIP_CUTPOOL * SCIPgetDelayedGlobalCutpool(SCIP *scip) SCIP_RETCODE SCIPcreateNlRow(SCIP *scip, SCIP_NLROW **nlrow, const char *name, SCIP_Real constant, int nlinvars, SCIP_VAR **linvars, SCIP_Real *lincoefs, int nquadvars, SCIP_VAR **quadvars, int nquadelems, SCIP_QUADELEM *quadelems, SCIP_EXPRTREE *expression, SCIP_Real lhs, SCIP_Real rhs) SCIP_RETCODE SCIPaddCut(SCIP *scip, SCIP_SOL *sol, SCIP_ROW *cut, SCIP_Bool forcecut, SCIP_Bool *infeasible) SCIP_RETCODE SCIPfreeRealarray(SCIP *scip, SCIP_REALARRAY **realarray) SCIP_RETCODE SCIPcreateNLPSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur) void SCIPdialogMessage(SCIP *scip, FILE *file, const char *formatstr,...) SCIP_Real SCIPgetSolvingTime(SCIP *scip) SCIP_Longint SCIPgetNBestSolsFound(SCIP *scip) SCIP_RETCODE SCIPsetSepaExit(SCIP *scip, SCIP_SEPA *sepa, SCIP_DECL_SEPAEXIT((*sepaexit))) SCIP_RETCODE SCIPsetPropPresol(SCIP *scip, SCIP_PROP *prop, SCIP_DECL_PROPPRESOL((*proppresol)), int presolpriority, int presolmaxrounds, SCIP_Bool presoldelay) SCIP_RETCODE SCIPchgNlRowQuadElement(SCIP *scip, SCIP_NLROW *nlrow, SCIP_QUADELEM quadelement) SCIP_CUTPOOL * SCIPgetGlobalCutpool(SCIP *scip) SCIP_RETCODE SCIPaddConflictBd(SCIP *scip, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx) SCIP_RETCODE SCIPcopyProb(SCIP *sourcescip, SCIP *targetscip, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, SCIP_Bool global, const char *name) SCIP_RETCODE SCIPsolveDiveNLP(SCIP *scip) SCIP_NLPTERMSTAT SCIPgetNLPTermstat(SCIP *scip) SCIP_RETCODE SCIPupdateCutoffbound(SCIP *scip, SCIP_Real cutoffbound) SCIP_RETCODE SCIPchgVarBranchDirection(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR branchdirection) SCIP_Real SCIPgetVarAvgConflictlength(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir) SCIP_Longint SCIPgetNRootLPIterations(SCIP *scip) SCIP_Real SCIPgetVarAvgInferenceCutoffScore(SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight) SCIP_RETCODE SCIPstartDive(SCIP *scip) SCIP_RETCODE SCIPsetNodeselInit(SCIP *scip, SCIP_NODESEL *nodesel, SCIP_DECL_NODESELINIT((*nodeselinit))) SCIP_LPSOLSTAT SCIPgetLPSolstat(SCIP *scip) int SCIPgetSubscipDepth(SCIP *scip) SCIP_RETCODE SCIPchgVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound) int SCIPgetPtrarrayMaxIdx(SCIP *scip, SCIP_PTRARRAY *ptrarray) SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_STATUS SCIPgetStatus(SCIP *scip) SCIP_Longint SCIPgetNLPIterations(SCIP *scip) int SCIPgetNOrigImplVars(SCIP *scip) int SCIPgetNExternBranchCands(SCIP *scip) SCIP_RETCODE SCIPcreateUnknownSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur) SCIP_RETCODE SCIPstartInteraction(SCIP *scip) SCIP_Longint SCIPgetNBarrierLPIterations(SCIP *scip) int SCIPgetRealarrayMaxIdx(SCIP *scip, SCIP_REALARRAY *realarray) SCIP_NLPI * SCIPfindNlpi(SCIP *scip, const char *name) SCIP_RETCODE SCIPtransformConss(SCIP *scip, int nconss, SCIP_CONS **conss, SCIP_CONS **transconss) SCIP_RETCODE SCIPaggregateVars(SCIP *scip, SCIP_VAR *varx, SCIP_VAR *vary, SCIP_Real scalarx, SCIP_Real scalary, SCIP_Real rhs, SCIP_Bool *infeasible, SCIP_Bool *redundant, SCIP_Bool *aggregated) SCIP_RETCODE SCIPsetParam(SCIP *scip, const char *name, void *value) SCIP_RETCODE SCIPsetConshdlrFree(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSFREE((*consfree))) SCIP_RETCODE SCIPfreeClock(SCIP *scip, SCIP_CLOCK **clck) SCIP_Real SCIPgetLowerbound(SCIP *scip) SCIP_RETCODE SCIPchgChildPrio(SCIP *scip, SCIP_NODE *child, SCIP_Real priority) SCIP_RETCODE SCIPbranchVar(SCIP *scip, SCIP_VAR *var, SCIP_NODE **downchild, SCIP_NODE **eqchild, SCIP_NODE **upchild) SCIP_Real SCIPgetLocalTransEstimate(SCIP *scip) SCIP_Longint SCIPgetNNodeInitLPs(SCIP *scip) SCIP_RETCODE SCIPgetLPColsData(SCIP *scip, SCIP_COL ***cols, int *ncols) SCIP_RETCODE SCIPprintLPSolutionQuality(SCIP *scip, FILE *file) void SCIPdisableVarHistory(SCIP *scip) SCIP_RETCODE SCIPwriteVarsList(SCIP *scip, FILE *file, SCIP_VAR **vars, int nvars, SCIP_Bool type, char delimiter) SCIP_Real SCIPgetRowSolFeasibility(SCIP *scip, SCIP_ROW *row, SCIP_SOL *sol) int SCIPgetNActiveConss(SCIP *scip) SCIP_RETCODE SCIPprintBestSol(SCIP *scip, FILE *file, SCIP_Bool printzeros) SCIP_Real SCIPgetAvgInferenceScore(SCIP *scip) SCIP_Bool SCIPisSumGE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPevalExprtreeLocalBounds(SCIP *scip, SCIP_EXPRTREE *tree, SCIP_Real infinity, SCIP_INTERVAL *val) SCIP_Real SCIPgetAvgCutoffScore(SCIP *scip) SCIP_NODE * SCIPgetPrioSibling(SCIP *scip) SCIP_RETCODE SCIPgetBinvarRepresentatives(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **repvars, SCIP_Bool *negated) SCIP_RETCODE SCIPresetParams(SCIP *scip) SCIP_RETCODE SCIPaddPricedVar(SCIP *scip, SCIP_VAR *var, SCIP_Real score) int SCIPgetNReaders(SCIP *scip) SCIP_RETCODE SCIPprintTransProblem(SCIP *scip, FILE *file, const char *extension, SCIP_Bool genericnames) SCIP_RETCODE SCIPconvertCutsToConss(SCIP *scip, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, SCIP_Bool global, int *ncutsadded) SCIP_RETCODE SCIPgetLPBInvARow(SCIP *scip, int r, SCIP_Real *binvrow, SCIP_Real *coef) SCIP_RETCODE SCIPcatchEvent(SCIP *scip, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int *filterpos) SCIP_EVENTHDLR * SCIPfindEventhdlr(SCIP *scip, const char *name) interface methods for specific LP solvers SCIP_RETCODE SCIPensureBlockMemoryArray_call(SCIP *scip, void **arrayptr, size_t elemsize, int *arraysize, int minsize) SCIP_DISP ** SCIPgetDisps(SCIP *scip) SCIP_Real SCIPgetTransObjoffset(SCIP *scip) SCIP_RETCODE SCIPbacktrackProbing(SCIP *scip, int probingdepth) SCIP_RETCODE SCIPchgVarLbDive(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound) SCIP_RETCODE SCIPgetVarClosestVlb(SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvlb, int *closestvlbidx) SCIP_Real SCIPgetNLPObjval(SCIP *scip) SCIP_RETCODE SCIPaddRowCutpool(SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_ROW *row) SCIP_Real SCIPcomputeVarUbGlobal(SCIP *scip, SCIP_VAR *var) SCIP_Bool SCIPisPrimalboundSol(SCIP *scip) SCIP_RETCODE SCIPcreateEmptyRowUnspec(SCIP *scip, SCIP_ROW **row, const char *name, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable) SCIP_Longint SCIPgetMemExternEstim(SCIP *scip) SCIP_Real SCIPgetOrigObjscale(SCIP *scip) SCIP_HEUR * SCIPgetSolHeur(SCIP *scip, SCIP_SOL *sol) SCIP_Bool SCIPisSumRelLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPgetLPBInvRow(SCIP *scip, int r, SCIP_Real *coef) SCIP_RETCODE SCIPenableConsPropagation(SCIP *scip, SCIP_CONS *cons) int SCIPgetNOrigVars(SCIP *scip) SCIP_RETCODE SCIPchgLongintParam(SCIP *scip, SCIP_PARAM *param, SCIP_Longint value) SCIP_RETCODE SCIPprintStatus(SCIP *scip, FILE *file) SCIP_RETCODE SCIPsetConsLocal(SCIP *scip, SCIP_CONS *cons, SCIP_Bool local) SCIP_Longint SCIPgetNBacktracks(SCIP *scip) SCIP_RETCODE SCIPsetSolVal(SCIP *scip, SCIP_SOL *sol, SCIP_VAR *var, SCIP_Real val) SCIP_PRESOL ** SCIPgetPresols(SCIP *scip) SCIP_Real SCIPfeasCeil(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPupdateLocalLowerbound(SCIP *scip, SCIP_Real newbound) SCIP_Real SCIPdualfeastol(SCIP *scip) SCIP_Longint SCIPgetNDualResolveLPIterations(SCIP *scip) SCIP_RETCODE SCIPsetPricerInitsol(SCIP *scip, SCIP_PRICER *pricer, SCIP_DECL_PRICERINITSOL((*pricerinitsol))) SCIP_RETCODE SCIPrespropCons(SCIP *scip, SCIP_CONS *cons, SCIP_VAR *infervar, int inferinfo, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Real relaxedbd, SCIP_RESULT *result) SCIP_RETCODE SCIPenableOrDisableStatisticTiming(SCIP *scip) SCIP_Real SCIPgetGap(SCIP *scip) SCIP_DISP * SCIPfindDisp(SCIP *scip, const char *name) SCIP_RETCODE SCIPsetRelaxPriority(SCIP *scip, SCIP_RELAX *relax, int priority) SCIP_RETCODE SCIPgetNlRowNLPFeasibility(SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *feasibility) SCIP_RETCODE SCIPchgIntParam(SCIP *scip, SCIP_PARAM *param, int value) SCIP_RETCODE SCIPaddExternBranchCand(SCIP *scip, SCIP_VAR *var, SCIP_Real score, SCIP_Real solval) SCIP_RETCODE SCIPsetObjIntegral(SCIP *scip) SCIP_RETCODE SCIPsolveProbingLP(SCIP *scip, int itlim, SCIP_Bool *lperror, SCIP_Bool *cutoff) SCIP_RETCODE SCIPcomputeLPRelIntPoint(SCIP *scip, SCIP_Bool relaxrows, SCIP_Bool inclobjcutoff, SCIP_Real timelimit, int iterlimit, SCIP_SOL **point) SCIP_RETCODE SCIPsetPricerExit(SCIP *scip, SCIP_PRICER *pricer, SCIP_DECL_PRICEREXIT((*pricerexit))) SCIP_Bool SCIPisLPConstructed(SCIP *scip) SCIP_Bool SCIPisZero(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPresetClock(SCIP *scip, SCIP_CLOCK *clck) SCIP_RETCODE SCIPrecalcNlRowActivity(SCIP *scip, SCIP_NLROW *nlrow) SCIP_RETCODE SCIPgetProbvarSum(SCIP *scip, SCIP_VAR **var, SCIP_Real *scalar, SCIP_Real *constant) int SCIPgetNPricevars(SCIP *scip) SCIP_RETCODE SCIPpermuteProb(SCIP *scip, unsigned int randseed, SCIP_Bool permuteconss, SCIP_Bool permutebinvars, SCIP_Bool permuteintvars, SCIP_Bool permuteimplvars, SCIP_Bool permutecontvars) SCIP_RETCODE SCIPaddOrigObjoffset(SCIP *scip, SCIP_Real addval) SCIP_RETCODE SCIPchgVarsBoundsDiveNLP(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_Real *lbs, SCIP_Real *ubs) SCIP_Real SCIPgetVarConflictlengthScoreCurrentRun(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPincludeDisp(SCIP *scip, const char *name, const char *desc, const char *header, SCIP_DISPSTATUS dispstatus, SCIP_DECL_DISPCOPY((*dispcopy)), SCIP_DECL_DISPFREE((*dispfree)), SCIP_DECL_DISPINIT((*dispinit)), SCIP_DECL_DISPEXIT((*dispexit)), SCIP_DECL_DISPINITSOL((*dispinitsol)), SCIP_DECL_DISPEXITSOL((*dispexitsol)), SCIP_DECL_DISPOUTPUT((*dispoutput)), SCIP_DISPDATA *dispdata, int width, int priority, int position, SCIP_Bool stripline) SCIP_RETCODE SCIPchgVarUbDive(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound) SCIP_RETCODE SCIPupdateNodeLowerbound(SCIP *scip, SCIP_NODE *node, SCIP_Real newbound) int SCIPgetNConss(SCIP *scip) SCIP_Bool SCIPisLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2) int SCIPgetNConflictConssFoundNode(SCIP *scip) SCIP_RETCODE SCIPgetNLPNlRowsData(SCIP *scip, SCIP_NLROW ***nlrows, int *nnlrows) SCIP_RETCODE SCIPstopClock(SCIP *scip, SCIP_CLOCK *clck) SCIP_RETCODE SCIPincludeRelax(SCIP *scip, const char *name, const char *desc, int priority, int freq, SCIP_DECL_RELAXCOPY((*relaxcopy)), SCIP_DECL_RELAXFREE((*relaxfree)), SCIP_DECL_RELAXINIT((*relaxinit)), SCIP_DECL_RELAXEXIT((*relaxexit)), SCIP_DECL_RELAXINITSOL((*relaxinitsol)), SCIP_DECL_RELAXEXITSOL((*relaxexitsol)), SCIP_DECL_RELAXEXEC((*relaxexec)), SCIP_RELAXDATA *relaxdata) SCIP_Longint SCIPgetNNodeInitLPIterations(SCIP *scip) SCIP_RETCODE SCIPsetConshdlrProp(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPROP((*consprop)), int propfreq, SCIP_Bool delayprop, SCIP_PROPTIMING timingmask) SCIP_RETCODE SCIPsetConshdlrPresol(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPRESOL((*conspresol)), int maxprerounds, SCIP_Bool delaypresol) SCIP_RETCODE SCIPunfixParam(SCIP *scip, const char *name) int SCIPgetNNodesels(SCIP *scip) SCIP_NODE * SCIPgetBestLeaf(SCIP *scip) SCIP_RETCODE SCIPinterruptSolve(SCIP *scip) SCIP_RETCODE SCIPdelConsNode(SCIP *scip, SCIP_NODE *node, SCIP_CONS *cons) SCIP_RETCODE SCIPgetConsCopy(SCIP *sourcescip, SCIP *targetscip, SCIP_CONS *sourcecons, SCIP_CONS **targetcons, SCIP_CONSHDLR *sourceconshdlr, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, const char *name, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode, SCIP_Bool global, SCIP_Bool *success) SCIP_RETCODE SCIPaddVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real addfactor) SCIP_Real SCIPgetVarPseudocostVal(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta) SCIP_Real SCIPgetColFarkasCoef(SCIP *scip, SCIP_COL *col) SCIP_ROW ** SCIPgetLPRows(SCIP *scip) SCIP_RETCODE SCIPincludeBranchruleBasic(SCIP *scip, SCIP_BRANCHRULE **branchruleptr, const char *name, const char *desc, int priority, int maxdepth, SCIP_Real maxbounddist, SCIP_BRANCHRULEDATA *branchruledata) SCIP_Bool SCIPisCutApplicable(SCIP *scip, SCIP_ROW *cut) int SCIPgetNPricers(SCIP *scip) SCIP_RETCODE SCIPaddBoolParam(SCIP *scip, const char *name, const char *desc, SCIP_Bool *valueptr, SCIP_Bool isadvanced, SCIP_Bool defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata) SCIP_RETCODE SCIPcreateIntarray(SCIP *scip, SCIP_INTARRAY **intarray) SCIP_Real SCIPgetVarConflictScoreCurrentRun(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPincIntarrayVal(SCIP *scip, SCIP_INTARRAY *intarray, int idx, int incval) SCIP_Bool SCIPisDualfeasPositive(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPsetClockTime(SCIP *scip, SCIP_CLOCK *clck, SCIP_Real sec) SCIP_Bool SCIPisFeasIntegral(SCIP *scip, SCIP_Real val) SCIP_Real SCIPgetCutoffbound(SCIP *scip) SCIP_RETCODE SCIPaddVarsToRow(SCIP *scip, SCIP_ROW *row, int nvars, SCIP_VAR **vars, SCIP_Real *vals) SCIP_PROP * SCIPfindProp(SCIP *scip, const char *name) void SCIPwarningMessage(SCIP *scip, const char *formatstr,...) SCIP_RETCODE SCIPcreateCPUClock(SCIP *scip, SCIP_CLOCK **clck) SCIP_Bool SCIPisDualfeasZero(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPsetRootDialog(SCIP *scip, SCIP_DIALOG *dialog) SCIP_Bool SCIPallColsInLP(SCIP *scip) SCIP_VAR ** SCIPgetVars(SCIP *scip) SCIP_RETCODE SCIPsetBranchruleExecLp(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHEXECLP((*branchexeclp))) SCIP_Real SCIPgetRowFeasibility(SCIP *scip, SCIP_ROW *row) SCIP_RETCODE SCIPgetTransformedCons(SCIP *scip, SCIP_CONS *cons, SCIP_CONS **transcons) int SCIPgetNParams(SCIP *scip) SCIP_RETCODE SCIPsetConshdlrSepa(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSSEPALP((*conssepalp)), SCIP_DECL_CONSSEPASOL((*conssepasol)), int sepafreq, int sepapriority, SCIP_Bool delaysepa) char ** SCIPgetExternalCodeNames(SCIP *scip) void SCIPclearExternBranchCands(SCIP *scip) SCIP_RETCODE SCIPsetSepaInitsol(SCIP *scip, SCIP_SEPA *sepa, SCIP_DECL_SEPAINITSOL((*sepainitsol))) public methods for displaying runtime statistics public methods for problem variables SCIP_RETCODE SCIPfreePtrarray(SCIP *scip, SCIP_PTRARRAY **ptrarray) SCIP_RETCODE SCIPsetConflicthdlrInitsol(SCIP *scip, SCIP_CONFLICTHDLR *conflicthdlr, SCIP_DECL_CONFLICTINITSOL((*conflictinitsol))) SCIP_RETCODE SCIPsetMessagehdlr(SCIP *scip, SCIP_MESSAGEHDLR *messagehdlr) SCIP_RETCODE SCIPsetPricerFree(SCIP *scip, SCIP_PRICER *pricer, SCIP_DECL_PRICERFREE((*pricerfree))) int SCIPconvertRealToInt(SCIP *scip, SCIP_Real real) SCIP_RETCODE SCIPinferVarUbCons(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_CONS *infercons, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened) SCIP_Real SCIPgetAvgCutoffScoreCurrentRun(SCIP *scip) SCIP_RETCODE SCIPsetPresolExitpre(SCIP *scip, SCIP_PRESOL *presol, SCIP_DECL_PRESOLEXITPRE((*presolexitpre))) int SCIPgetRepropdepth(SCIP *scip) SCIP_Real SCIPgetLowerboundRoot(SCIP *scip) SCIP_DIALOG * SCIPgetRootDialog(SCIP *scip) int SCIPgetNDelayedPoolCuts(SCIP *scip) int SCIPgetNCutsFoundRound(SCIP *scip) SCIP_Real SCIPcomputeVarLbGlobal(SCIP *scip, SCIP_VAR *var) void SCIPprintExternalCodes(SCIP *scip, FILE *file) SCIP_Bool SCIPhasNLPSolution(SCIP *scip) SCIP_Real SCIPdualfeasRound(SCIP *scip, SCIP_Real val) int SCIPgetNConshdlrs(SCIP *scip) type definitions for return codes for SCIP methods SCIP_Real SCIPgetAvgDualbound(SCIP *scip) SCIP_RETCODE SCIPchgBoolParam(SCIP *scip, SCIP_PARAM *param, SCIP_Bool value) SCIP_RETCODE SCIPpropagateProbing(SCIP *scip, int maxproprounds, SCIP_Bool *cutoff, SCIP_Longint *ndomredsfound) public methods for branching rules SCIP_RETCODE SCIPaddNlRow(SCIP *scip, SCIP_NLROW *nlrow) int SCIPgetNEventhdlrs(SCIP *scip) SCIP_Real SCIPgetAvgPseudocostCurrentRun(SCIP *scip, SCIP_Real solvaldelta) SCIP_RETCODE SCIPsetBranchruleExecPs(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHEXECPS((*branchexecps))) SCIP_RETCODE SCIPincludeConshdlr(SCIP *scip, const char *name, const char *desc, int sepapriority, int enfopriority, int chckpriority, int sepafreq, int propfreq, int eagerfreq, int maxprerounds, SCIP_Bool delaysepa, SCIP_Bool delayprop, SCIP_Bool delaypresol, SCIP_Bool needscons, SCIP_PROPTIMING timingmask, SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), SCIP_DECL_CONSFREE((*consfree)), SCIP_DECL_CONSINIT((*consinit)), SCIP_DECL_CONSEXIT((*consexit)), SCIP_DECL_CONSINITPRE((*consinitpre)), SCIP_DECL_CONSEXITPRE((*consexitpre)), SCIP_DECL_CONSINITSOL((*consinitsol)), SCIP_DECL_CONSEXITSOL((*consexitsol)), SCIP_DECL_CONSDELETE((*consdelete)), SCIP_DECL_CONSTRANS((*constrans)), SCIP_DECL_CONSINITLP((*consinitlp)), SCIP_DECL_CONSSEPALP((*conssepalp)), SCIP_DECL_CONSSEPASOL((*conssepasol)), SCIP_DECL_CONSENFOLP((*consenfolp)), SCIP_DECL_CONSENFOPS((*consenfops)), SCIP_DECL_CONSCHECK((*conscheck)), SCIP_DECL_CONSPROP((*consprop)), SCIP_DECL_CONSPRESOL((*conspresol)), SCIP_DECL_CONSRESPROP((*consresprop)), SCIP_DECL_CONSLOCK((*conslock)), SCIP_DECL_CONSACTIVE((*consactive)), SCIP_DECL_CONSDEACTIVE((*consdeactive)), SCIP_DECL_CONSENABLE((*consenable)), SCIP_DECL_CONSDISABLE((*consdisable)), SCIP_DECL_CONSDELVARS((*consdelvars)), SCIP_DECL_CONSPRINT((*consprint)), SCIP_DECL_CONSCOPY((*conscopy)), SCIP_DECL_CONSPARSE((*consparse)), SCIP_DECL_CONSGETVARS((*consgetvars)), SCIP_DECL_CONSGETNVARS((*consgetnvars)), SCIP_CONSHDLRDATA *conshdlrdata) SCIP_Bool SCIPisDualfeasGE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPfreeBoolarray(SCIP *scip, SCIP_BOOLARRAY **boolarray) SCIP_RETCODE SCIPincludeEventhdlr(SCIP *scip, const char *name, const char *desc, SCIP_DECL_EVENTCOPY((*eventcopy)), SCIP_DECL_EVENTFREE((*eventfree)), SCIP_DECL_EVENTINIT((*eventinit)), SCIP_DECL_EVENTEXIT((*eventexit)), SCIP_DECL_EVENTINITSOL((*eventinitsol)), SCIP_DECL_EVENTEXITSOL((*eventexitsol)), SCIP_DECL_EVENTDELETE((*eventdelete)), SCIP_DECL_EVENTEXEC((*eventexec)), SCIP_EVENTHDLRDATA *eventhdlrdata) SCIP_RETCODE SCIPseparateCutpool(SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_RESULT *result) SCIP_Real SCIPepsilon(SCIP *scip) SCIP_RETCODE SCIPprintBranchingStatistics(SCIP *scip, FILE *file) SCIP_Bool SCIPisFracIntegral(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPsetConsDynamic(SCIP *scip, SCIP_CONS *cons, SCIP_Bool dynamic) SCIP_RETCODE SCIPsetReaderFree(SCIP *scip, SCIP_READER *reader, SCIP_DECL_READERFREE((*readerfree))) SCIP_Real SCIPcutoffbounddelta(SCIP *scip) SCIP_RETCODE SCIPsetConshdlrCopy(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), SCIP_DECL_CONSCOPY((*conscopy))) SCIP_RETCODE SCIPaddQuadElementToNlRow(SCIP *scip, SCIP_NLROW *nlrow, SCIP_QUADELEM quadelem) SCIP_Bool SCIPdoNotMultaggrVar(SCIP *scip, SCIP_VAR *var) type definitions for presolvers SCIP_Bool SCIPisNLPConstructed(SCIP *scip) SCIP_RETCODE SCIPsetRelaxCopy(SCIP *scip, SCIP_RELAX *relax, SCIP_DECL_RELAXCOPY((*relaxcopy))) SCIP_Real SCIPgetLPObjval(SCIP *scip) SCIP_RETCODE SCIPcopy(SCIP *sourcescip, SCIP *targetscip, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, const char *suffix, SCIP_Bool global, SCIP_Bool enablepricing, SCIP_Bool passmessagehdlr, SCIP_Bool *valid) SCIP_Bool SCIPisCutEfficacious(SCIP *scip, SCIP_SOL *sol, SCIP_ROW *cut) SCIP_Longint SCIPgetNDualResolveLPs(SCIP *scip) SCIP_Real SCIPgetRowLPFeasibility(SCIP *scip, SCIP_ROW *row) SCIP_Real SCIPgetRowMaxCoef(SCIP *scip, SCIP_ROW *row) SCIP_RETCODE SCIPaddClique(SCIP *scip, SCIP_VAR **vars, SCIP_Bool *values, int nvars, SCIP_Bool *infeasible, int *nbdchgs) SCIP_CONSHDLR ** SCIPgetConshdlrs(SCIP *scip) SCIP_Bool SCIPisSumLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPgetNegatedVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **negvars) SCIP_RETCODE SCIPgetNLPFracVars(SCIP *scip, SCIP_VAR ***fracvars, SCIP_Real **fracvarssol, SCIP_Real **fracvarsfrac, int *nfracvars, int *npriofracvars) SCIP_Real SCIPgetAvgConflictScore(SCIP *scip) SCIP_RETCODE SCIPsetBranchruleFree(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHFREE((*branchfree))) SCIP_PARAM * SCIPgetParam(SCIP *scip, const char *name) SCIP_Real SCIPgetAvgInferencesCurrentRun(SCIP *scip, SCIP_BRANCHDIR dir) SCIP_RETCODE SCIPsetEventhdlrInit(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTINIT((*eventinit))) SCIP_RETCODE SCIPbranchExtern(SCIP *scip, SCIP_RESULT *result) int SCIPgetFocusDepth(SCIP *scip) SCIP_RETCODE SCIPsetProbDelorig(SCIP *scip, SCIP_DECL_PROBDELORIG((*probdelorig))) SCIP_Real SCIPgetLPRootObjval(SCIP *scip) SCIP_RETCODE SCIPwriteTransProblem(SCIP *scip, const char *filename, const char *extension, SCIP_Bool genericnames) SCIP_RETCODE SCIPtryCurrentSol(SCIP *scip, SCIP_HEUR *heur, SCIP_Bool printreason, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored) SCIP_SEPA ** SCIPgetSepas(SCIP *scip) SCIP_RETCODE SCIPupdateNodeDualbound(SCIP *scip, SCIP_NODE *node, SCIP_Real newbound) int SCIPmajorVersion(void) SCIP_RETCODE SCIPsetPresolPriority(SCIP *scip, SCIP_PRESOL *presol, int priority) SCIP_Bool SCIPisScalingIntegral(SCIP *scip, SCIP_Real val, SCIP_Real scalar) SCIP_Real SCIPgetDualboundRoot(SCIP *scip) SCIP_RETCODE SCIPsetNodeselExit(SCIP *scip, SCIP_NODESEL *nodesel, SCIP_DECL_NODESELEXIT((*nodeselexit))) SCIP_RETCODE SCIPcalcMIR(SCIP *scip, SCIP_SOL *sol, SCIP_Real boundswitch, SCIP_Bool usevbds, SCIP_Bool allowlocal, SCIP_Bool fixintegralrhs, int *boundsfortrans, SCIP_BOUNDTYPE *boundtypesfortrans, int maxmksetcoefs, SCIP_Real maxweightrange, SCIP_Real minfrac, SCIP_Real maxfrac, SCIP_Real *weights, int *sidetypes, SCIP_Real scale, SCIP_Real *mksetcoefs, SCIP_Bool *mksetcoefsvalid, SCIP_Real *mircoef, SCIP_Real *mirrhs, SCIP_Real *cutactivity, SCIP_Bool *success, SCIP_Bool *cutislocal, int *cutrank) int SCIPgetNEnabledConss(SCIP *scip) SCIP_RETCODE SCIPsetConshdlrEnable(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSENABLE((*consenable))) SCIP_RETCODE SCIPincludeRelaxBasic(SCIP *scip, SCIP_RELAX **relaxptr, const char *name, const char *desc, int priority, int freq, SCIP_DECL_RELAXEXEC((*relaxexec)), SCIP_RELAXDATA *relaxdata) SCIP_Bool SCIPallVarsInProb(SCIP *scip) SCIP_RETCODE SCIPaddDialogEntry(SCIP *scip, SCIP_DIALOG *dialog, SCIP_DIALOG *subdialog) type definitions for branching rules SCIP_Bool SCIPisStopped(SCIP *scip) SCIP_RETCODE SCIPaddVarBranchPriority(SCIP *scip, SCIP_VAR *var, int addpriority) SCIP_RETCODE SCIPprintCons(SCIP *scip, SCIP_CONS *cons, FILE *file) SCIP_VAR ** SCIPgetOrigVars(SCIP *scip) SCIP_Bool SCIPdoNotMultaggr(SCIP *scip) SCIP_RETCODE SCIPsetSepaFree(SCIP *scip, SCIP_SEPA *sepa, SCIP_DECL_SEPAFREE((*sepafree))) int SCIPgetNSols(SCIP *scip) SCIP_RETCODE SCIPsetBranchruleInitsol(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHINITSOL((*branchinitsol))) SCIP_Real SCIPgetDualbound(SCIP *scip) SCIP_RETCODE SCIPaddQuadElementsToNlRow(SCIP *scip, SCIP_NLROW *nlrow, int nquadelems, SCIP_QUADELEM *quadelems) int SCIPgetNPrioExternBranchImpls(SCIP *scip) SCIP_RETCODE SCIPparseVarsLinearsum(SCIP *scip, const char *str, SCIP_VAR **vars, SCIP_Real *vals, int *nvars, int varssize, int *requiredsize, char **endptr, SCIP_Bool *success) int SCIPgetNSepas(SCIP *scip) SCIP_RETCODE SCIPparseVarName(SCIP *scip, const char *str, SCIP_VAR **var, char **endptr) SCIP_Bool SCIPisFeasPositive(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPcreateBoolarray(SCIP *scip, SCIP_BOOLARRAY **boolarray) SCIP_RETCODE SCIPincludeHeur(SCIP *scip, const char *name, const char *desc, char dispchar, int priority, int freq, int freqofs, int maxdepth, unsigned int timingmask, SCIP_Bool usessubscip, SCIP_DECL_HEURCOPY((*heurcopy)), SCIP_DECL_HEURFREE((*heurfree)), SCIP_DECL_HEURINIT((*heurinit)), SCIP_DECL_HEUREXIT((*heurexit)), SCIP_DECL_HEURINITSOL((*heurinitsol)), SCIP_DECL_HEUREXITSOL((*heurexitsol)), SCIP_DECL_HEUREXEC((*heurexec)), SCIP_HEURDATA *heurdata) SCIP_RETCODE SCIPprintNodeRootPath(SCIP *scip, SCIP_NODE *node, FILE *file) SCIP_Real SCIPgetVectorEfficacyNorm(SCIP *scip, SCIP_Real *vals, int nvals) SCIP_RETCODE SCIPmarkRelaxSolValid(SCIP *scip) SCIP_NODE * SCIPgetRootNode(SCIP *scip) SCIP_RETCODE SCIPcreateCutpool(SCIP *scip, SCIP_CUTPOOL **cutpool, int agelimit) SCIP_RETCODE SCIPsetConflicthdlrInit(SCIP *scip, SCIP_CONFLICTHDLR *conflicthdlr, SCIP_DECL_CONFLICTINIT((*conflictinit))) SCIP_Bool SCIPisUpdateUnreliable(SCIP *scip, SCIP_Real newvalue, SCIP_Real oldvalue) SCIP_CONS * SCIPfindOrigCons(SCIP *scip, const char *name) SCIP_RETCODE SCIPfreeTransform(SCIP *scip) SCIP_RETCODE SCIPincludeEventhdlrBasic(SCIP *scip, SCIP_EVENTHDLR **eventhdlrptr, const char *name, const char *desc, SCIP_DECL_EVENTEXEC((*eventexec)), SCIP_EVENTHDLRDATA *eventhdlrdata) int SCIPgetNSepaRounds(SCIP *scip) SCIP_RETCODE SCIPaddCurrentSol(SCIP *scip, SCIP_HEUR *heur, SCIP_Bool *stored) SCIP_RETCODE SCIPgetLPBInvCol(SCIP *scip, int c, SCIP_Real *coef) SCIP_Real SCIPgetSolVal(SCIP *scip, SCIP_SOL *sol, SCIP_VAR *var) public methods for expressions, expression trees, expression graphs, and related stuff ... SCIP_Bool SCIPisSumRelGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPinferVarLbProp(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened) SCIP_RETCODE SCIPsetBoolarrayVal(SCIP *scip, SCIP_BOOLARRAY *boolarray, int idx, SCIP_Bool val) SCIP_Real SCIPgetPrimalRayVal(SCIP *scip, SCIP_VAR *var) SCIP_OBJSENSE SCIPgetObjsense(SCIP *scip) SCIP_Bool SCIPhasCurrentNodeLP(SCIP *scip) SCIP_RETCODE SCIPcopyConss(SCIP *sourcescip, SCIP *targetscip, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, SCIP_Bool global, SCIP_Bool enablepricing, SCIP_Bool *valid) type definitions for LP management SCIP_NODESEL ** SCIPgetNodesels(SCIP *scip) SCIP_RETCODE SCIPincludeHeurBasic(SCIP *scip, SCIP_HEUR **heur, const char *name, const char *desc, char dispchar, int priority, int freq, int freqofs, int maxdepth, unsigned int timingmask, SCIP_Bool usessubscip, SCIP_DECL_HEUREXEC((*heurexec)), SCIP_HEURDATA *heurdata) SCIP_Longint SCIPgetVarStrongbranchNode(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPcatchVarEvent(SCIP *scip, SCIP_VAR *var, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int *filterpos) SCIP_RETCODE SCIPincludeConshdlrBasic(SCIP *scip, SCIP_CONSHDLR **conshdlrptr, const char *name, const char *desc, int enfopriority, int chckpriority, int eagerfreq, SCIP_Bool needscons, SCIP_DECL_CONSENFOLP((*consenfolp)), SCIP_DECL_CONSENFOPS((*consenfops)), SCIP_DECL_CONSCHECK((*conscheck)), SCIP_DECL_CONSLOCK((*conslock)), SCIP_CONSHDLRDATA *conshdlrdata) SCIP_Bool SCIPisLbBetter(SCIP *scip, SCIP_Real newlb, SCIP_Real oldlb, SCIP_Real oldub) int SCIPgetNPrioExternBranchCands(SCIP *scip) SCIP_RETCODE SCIPsetRelaxInit(SCIP *scip, SCIP_RELAX *relax, SCIP_DECL_RELAXINIT((*relaxinit))) SCIP_RETCODE SCIPenableConsSeparation(SCIP *scip, SCIP_CONS *cons) SCIP_Real SCIPgetAvgPseudocostScoreCurrentRun(SCIP *scip) SCIP_CONFLICTHDLR ** SCIPgetConflicthdlrs(SCIP *scip) SCIP_RETCODE SCIPgetVarStrongbranchWithPropagation(SCIP *scip, SCIP_VAR *var, SCIP_Real solval, SCIP_Real lpobjval, int itlim, int maxproprounds, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror, SCIP_Real *newlbs, SCIP_Real *newubs) SCIP_RETCODE SCIPprintVar(SCIP *scip, SCIP_VAR *var, FILE *file) SCIP_RETCODE SCIPupdateLocalDualbound(SCIP *scip, SCIP_Real newbound) SCIP_RETCODE SCIPsetPropPresolPriority(SCIP *scip, SCIP_PROP *prop, int presolpriority) SCIP_RETCODE SCIPsetPresolInit(SCIP *scip, SCIP_PRESOL *presol, SCIP_DECL_PRESOLINIT((*presolinit))) SCIP_RETCODE SCIPcreatePseudoSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur) SCIP_RETCODE SCIPcreateEmptyNlRow(SCIP *scip, SCIP_NLROW **nlrow, const char *name, SCIP_Real lhs, SCIP_Real rhs) SCIP_Bool SCIPisObjIntegral(SCIP *scip) int SCIPgetNLPCols(SCIP *scip) SCIP_RETCODE SCIPcutoffNode(SCIP *scip, SCIP_NODE *node) void SCIPprintMemoryDiagnostic(SCIP *scip) SCIP_RETCODE SCIPcheckSolOrig(SCIP *scip, SCIP_SOL *sol, SCIP_Bool *feasible, SCIP_Bool printreason, SCIP_Bool completely) SCIP_Bool SCIPinProbing(SCIP *scip) SCIP_RETCODE SCIPdelDelayedPoolCut(SCIP *scip, SCIP_ROW *row) SCIP_RETCODE SCIPpropCons(SCIP *scip, SCIP_CONS *cons, SCIP_PROPTIMING proptiming, SCIP_RESULT *result) SCIP_RETCODE SCIPincConsAge(SCIP *scip, SCIP_CONS *cons) SCIP_RETCODE SCIPanalyzeConflictCons(SCIP *scip, SCIP_CONS *cons, SCIP_Bool *success) SCIP_Longint SCIPgetNStrongbranchLPIterations(SCIP *scip) SCIP_RETCODE SCIPgetSolVarsData(SCIP *scip, SCIP_SOL *sol, SCIP_VAR ***vars, int *nvars, int *nbinvars, int *nintvars, int *nimplvars, int *ncontvars) SCIP_HEUR * SCIPfindHeur(SCIP *scip, const char *name) SCIP_Real * SCIPgetNLPVarsUbDualsol(SCIP *scip) void SCIPmarkColNotRemovableLocal(SCIP *scip, SCIP_COL *col) SCIP_RETCODE SCIPcreateVarBasic(SCIP *scip, SCIP_VAR **var, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype) SCIP_RETCODE SCIPreleaseCons(SCIP *scip, SCIP_CONS **cons) SCIP_Real SCIPgetSolTransObj(SCIP *scip, SCIP_SOL *sol) SCIP_RETCODE SCIPwriteMIP(SCIP *scip, const char *filename, SCIP_Bool genericnames, SCIP_Bool origobj, SCIP_Bool lazyconss) SCIP_Real SCIPgetVarVSIDSCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir) SCIP_RETCODE SCIPsetPtrarrayVal(SCIP *scip, SCIP_PTRARRAY *ptrarray, int idx, void *val) SCIP_RETCODE SCIPgetLeaves(SCIP *scip, SCIP_NODE ***leaves, int *nleaves) SCIP_RETCODE SCIPincludeNodeselBasic(SCIP *scip, SCIP_NODESEL **nodesel, const char *name, const char *desc, int stdpriority, int memsavepriority, SCIP_DECL_NODESELSELECT((*nodeselselect)), SCIP_DECL_NODESELCOMP((*nodeselcomp)), SCIP_NODESELDATA *nodeseldata) int SCIPgetProbingDepth(SCIP *scip) SCIP_RETCODE SCIPremoveInefficaciousCuts(SCIP *scip) void SCIPfreeBufferSize(SCIP *scip, void **ptr, int dummysize) SCIP_RETCODE SCIPaddConsNode(SCIP *scip, SCIP_NODE *node, SCIP_CONS *cons, SCIP_NODE *validnode) SCIP_RETCODE SCIPchgDualfeastol(SCIP *scip, SCIP_Real dualfeastol) SCIP_RETCODE SCIPcreateProbBasic(SCIP *scip, const char *name) SCIP_RETCODE SCIPextendIntarray(SCIP *scip, SCIP_INTARRAY *intarray, int minidx, int maxidx) SCIP_RETCODE SCIPgetLPRowsData(SCIP *scip, SCIP_ROW ***rows, int *nrows) SCIP_RETCODE SCIPsepalpCons(SCIP *scip, SCIP_CONS *cons, SCIP_RESULT *result) public methods for handling parameter settings SCIP_Bool SCIPpressedCtrlC(SCIP *scip) SCIP_RETCODE SCIPgetSolVals(SCIP *scip, SCIP_SOL *sol, int nvars, SCIP_VAR **vars, SCIP_Real *vals) public methods for managing constraints SCIP_Bool SCIPisDualfeasLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_Real SCIPadjustedVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real ub) SCIP_RETCODE SCIPaddDialogHistoryLine(SCIP *scip, const char *inputline) SCIP_Real SCIPgetAvgPseudocostCountCurrentRun(SCIP *scip, SCIP_BRANCHDIR dir) SCIP_RETCODE SCIPanalyzeConflict(SCIP *scip, int validdepth, SCIP_Bool *success) SCIP_RETCODE SCIPdelConsLocal(SCIP *scip, SCIP_CONS *cons) SCIP_RETCODE SCIPsetPricerInit(SCIP *scip, SCIP_PRICER *pricer, SCIP_DECL_PRICERINIT((*pricerinit))) SCIP_NODE * SCIPgetBestNode(SCIP *scip) int SCIPgetNPseudoBranchCands(SCIP *scip) SCIP_Real SCIPgetUpperbound(SCIP *scip) SCIP_RETCODE SCIPgetVarStrongbranchFrac(SCIP *scip, SCIP_VAR *var, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror) int SCIPgetNPrioPseudoBranchBins(SCIP *scip) SCIP_RETCODE SCIPparseVar(SCIP *scip, SCIP_VAR **var, const char *str, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARCOPY((*varcopy)), SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_VARDATA *vardata, char **endptr, SCIP_Bool *success) int SCIPgetIntarrayVal(SCIP *scip, SCIP_INTARRAY *intarray, int idx) int SCIPsubversion(void) SCIP_RETCODE SCIPsetConsStickingAtNode(SCIP *scip, SCIP_CONS *cons, SCIP_Bool stickingatnode) SCIP_RETCODE SCIPsetRealarrayVal(SCIP *scip, SCIP_REALARRAY *realarray, int idx, SCIP_Real val) SCIP_Real SCIPgetVarConflictlengthScore(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPcaptureVar(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPsetEventhdlrExit(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTEXIT((*eventexit))) SCIP_Real SCIPgetAvgConflictlengthScore(SCIP *scip) SCIP_NLPSOLSTAT SCIPgetNLPSolstat(SCIP *scip) SCIP_RETCODE SCIPsetPricerExitsol(SCIP *scip, SCIP_PRICER *pricer, SCIP_DECL_PRICEREXITSOL((*pricerexitsol))) SCIP_Longint SCIPgetNDualLPIterations(SCIP *scip) SCIP_RETCODE SCIPcaptureCons(SCIP *scip, SCIP_CONS *cons) SCIP_RETCODE SCIPmakeRowIntegral(SCIP *scip, SCIP_ROW *row, SCIP_Real mindelta, SCIP_Real maxdelta, SCIP_Longint maxdnom, SCIP_Real maxscale, SCIP_Bool usecontvars, SCIP_Bool *success) SCIP_Bool SCIPisDualfeasIntegral(SCIP *scip, SCIP_Real val) SCIP_Longint SCIPgetNLPs(SCIP *scip) SCIP_RETCODE SCIPsetConshdlrExitpre(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSEXITPRE((*consexitpre))) SCIP_RETCODE SCIPinitConflictAnalysis(SCIP *scip) SCIP_RETCODE SCIPchgVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound) SCIP_RETCODE SCIPinferVarUbProp(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened) SCIP_RETCODE SCIPsetConsEnforced(SCIP *scip, SCIP_CONS *cons, SCIP_Bool enforce) SCIP_CUT ** SCIPgetDelayedPoolCuts(SCIP *scip) SCIP_RETCODE SCIPcopyCuts(SCIP *sourcescip, SCIP *targetscip, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, SCIP_Bool global, int *ncutsadded) SCIP_RETCODE SCIPresetParam(SCIP *scip, const char *name) SCIP_RETCODE SCIPsetRealParam(SCIP *scip, const char *name, SCIP_Real value) type definitions for variable pricers SCIP_RETCODE SCIPsetConsPropagated(SCIP *scip, SCIP_CONS *cons, SCIP_Bool propagate) SCIP_RETCODE SCIPdeactivatePricer(SCIP *scip, SCIP_PRICER *pricer) SCIP_RETCODE SCIPsetConflicthdlrPriority(SCIP *scip, SCIP_CONFLICTHDLR *conflicthdlr, int priority) SCIP_RETCODE SCIPsetConsRemovable(SCIP *scip, SCIP_CONS *cons, SCIP_Bool removable) SCIP_RETCODE SCIPsetReaderRead(SCIP *scip, SCIP_READER *reader, SCIP_DECL_READERREAD((*readerread))) SCIP_Real SCIPgetRowMaxActivity(SCIP *scip, SCIP_ROW *row) SCIP_RETCODE SCIPsetIntParam(SCIP *scip, const char *name, int value) int SCIPgetNActivePricers(SCIP *scip) SCIP_Bool SCIPisRelLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2) int SCIPgetMaxDepth(SCIP *scip) void SCIPenableNLP(SCIP *scip) SCIP_RETCODE SCIPaddIntParam(SCIP *scip, const char *name, const char *desc, int *valueptr, SCIP_Bool isadvanced, int defaultvalue, int minvalue, int maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata) SCIP_RETCODE SCIPcreateFiniteSolCopy(SCIP *scip, SCIP_SOL **sol, SCIP_SOL *sourcesol, SCIP_Bool *success) SCIP_RETCODE SCIPincludePropBasic(SCIP *scip, SCIP_PROP **propptr, const char *name, const char *desc, int priority, int freq, SCIP_Bool delay, SCIP_PROPTIMING timingmask, SCIP_DECL_PROPEXEC((*propexec)), SCIP_PROPDATA *propdata) SCIP_RETCODE SCIPsetHeurPriority(SCIP *scip, SCIP_HEUR *heur, int priority) SCIP_RETCODE SCIPmarkConsPropagate(SCIP *scip, SCIP_CONS *cons) type definitions for primal heuristics SCIP_RETCODE SCIPcreateRowSepa(SCIP *scip, SCIP_ROW **row, SCIP_SEPA *sepa, const char *name, int len, SCIP_COL **cols, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable) SCIP_RETCODE SCIPrecalcRowPseudoActivity(SCIP *scip, SCIP_ROW *row) SCIP_Bool SCIPisNegative(SCIP *scip, SCIP_Real val) int SCIPgetNPrioPseudoBranchInts(SCIP *scip) SCIP_RETCODE SCIPsetBranchruleCopy(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHCOPY((*branchcopy))) SCIP_RETCODE SCIPwriteImplicationConflictGraph(SCIP *scip, const char *filename) SCIP_Bool SCIPcontainsExternBranchCand(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPaddDialogInputLine(SCIP *scip, const char *inputline) int SCIPgetPlungeDepth(SCIP *scip) SCIP_RETCODE SCIPsetSepaCopy(SCIP *scip, SCIP_SEPA *sepa, SCIP_DECL_SEPACOPY((*sepacopy))) SCIP_RETCODE SCIPsetNLPInitialGuess(SCIP *scip, SCIP_Real *initialguess) SCIP_Real SCIPgetVarAvgInferenceScoreCurrentRun(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPchgVarObjDive(SCIP *scip, SCIP_VAR *var, SCIP_Real newobj) SCIP_RETCODE SCIPgetExprtreeTransformedVars(SCIP *scip, SCIP_EXPRTREE *tree) SCIP_NODESEL * SCIPgetNodesel(SCIP *scip) SCIP_RETCODE SCIPchgVarType(SCIP *scip, SCIP_VAR *var, SCIP_VARTYPE vartype, SCIP_Bool *infeasible) type definitions for SCIP's main datastructure SCIP_RETCODE SCIPgetNLPStatistics(SCIP *scip, SCIP_NLPSTATISTICS *statistics) SCIP_Real SCIPgetPseudoObjval(SCIP *scip) SCIP_Real SCIPgetNodeLowerbound(SCIP *scip, SCIP_NODE *node) SCIP_Bool SCIPisSumPositive(SCIP *scip, SCIP_Real val) SCIP_Real SCIPgetVarAvgConflictlengthCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir) SCIP_RETCODE SCIPsetProbDeltrans(SCIP *scip, SCIP_DECL_PROBDELTRANS((*probdeltrans))) SCIP_Real SCIPcalcNodeselPriority(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR branchdir, SCIP_Real targetvalue) SCIP_RETCODE SCIPsetNlRowExprtree(SCIP *scip, SCIP_NLROW *nlrow, SCIP_EXPRTREE *exprtree) SCIP_RETCODE SCIPgetBinvarRepresentative(SCIP *scip, SCIP_VAR *var, SCIP_VAR **repvar, SCIP_Bool *negated) SCIP_RETCODE SCIPaddRowDive(SCIP *scip, SCIP_ROW *row) SCIP_RETCODE SCIPsetNlRowExprtreeParams(SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *paramvals) SCIP_NLROW ** SCIPgetNLPNlRows(SCIP *scip) SCIP_RETCODE SCIPincludeBranchrule(SCIP *scip, const char *name, const char *desc, int priority, int maxdepth, SCIP_Real maxbounddist, SCIP_DECL_BRANCHCOPY((*branchcopy)), SCIP_DECL_BRANCHFREE((*branchfree)), SCIP_DECL_BRANCHINIT((*branchinit)), SCIP_DECL_BRANCHEXIT((*branchexit)), SCIP_DECL_BRANCHINITSOL((*branchinitsol)), SCIP_DECL_BRANCHEXITSOL((*branchexitsol)), SCIP_DECL_BRANCHEXECLP((*branchexeclp)), SCIP_DECL_BRANCHEXECEXT((*branchexecext)), SCIP_DECL_BRANCHEXECPS((*branchexecps)), SCIP_BRANCHRULEDATA *branchruledata) SCIP_RETCODE SCIPgetNlRowActivity(SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *activity) SCIP_RETCODE SCIPsetPropInitpre(SCIP *scip, SCIP_PROP *prop, SCIP_DECL_PROPINITPRE((*propinitpre))) SCIP_RETCODE SCIPchgNlRowRhs(SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real rhs) SCIP_RETCODE SCIPcopyParamSettings(SCIP *sourcescip, SCIP *targetscip) SCIP_RETCODE SCIPadjustImplicitSolVals(SCIP *scip, SCIP_SOL *sol, SCIP_Bool uselprows) SCIP_Bool SCIPisInRestart(SCIP *scip) int SCIPgetNExternalCodes(SCIP *scip) SCIP_RETCODE SCIPsetConflicthdlrExit(SCIP *scip, SCIP_CONFLICTHDLR *conflicthdlr, SCIP_DECL_CONFLICTEXIT((*conflictexit))) SCIP_RETCODE SCIPchgRowRhs(SCIP *scip, SCIP_ROW *row, SCIP_Real rhs) SCIP_RETCODE SCIPrecalcNlRowNLPActivity(SCIP *scip, SCIP_NLROW *nlrow) SCIP_Bool SCIPexistsDialog(SCIP *scip, SCIP_DIALOG *dialog) int SCIPgetNPrioExternBranchBins(SCIP *scip) SCIP_RETCODE SCIPsolveProbingLPWithPricing(SCIP *scip, SCIP_Bool pretendroot, SCIP_Bool displayinfo, int maxpricerounds, SCIP_Bool *lperror, SCIP_Bool *cutoff) int SCIPgetNPoolCuts(SCIP *scip) SCIP_RETCODE SCIPchgNlRowConstant(SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real constant) SCIP_Bool SCIPdoNotAggr(SCIP *scip) SCIP_RETCODE SCIPmultiaggregateVar(SCIP *scip, SCIP_VAR *var, int naggvars, SCIP_VAR **aggvars, SCIP_Real *scalars, SCIP_Real constant, SCIP_Bool *infeasible, SCIP_Bool *aggregated) SCIP_MESSAGEHDLR * SCIPgetMessagehdlr(SCIP *scip) SCIP_RETCODE SCIPchgVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real branchfactor) SCIP_Real SCIPgetVarAvgCutoffScoreCurrentRun(SCIP *scip, SCIP_VAR *var) SCIP_Bool SCIPisHugeValue(SCIP *scip, SCIP_Real val) SCIP_Real SCIPbarrierconvtol(SCIP *scip) SCIP_Bool SCIPisLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPaddVarVlb(SCIP *scip, SCIP_VAR *var, SCIP_VAR *vlbvar, SCIP_Real vlbcoef, SCIP_Real vlbconstant, SCIP_Bool *infeasible, int *nbdchgs) SCIP_RETCODE SCIPsetReaderCopy(SCIP *scip, SCIP_READER *reader, SCIP_DECL_READERCOPY((*readercopy))) SCIP_RETCODE SCIPsetBranchruleMaxdepth(SCIP *scip, SCIP_BRANCHRULE *branchrule, int maxdepth) SCIP_Real SCIPinfinity(SCIP *scip) SCIP_RETCODE SCIPchgCutoffboundDive(SCIP *scip, SCIP_Real newcutoffbound) SCIP_RETCODE SCIPgetTransformedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar) SCIP_RETCODE SCIPsetConshdlrDeactive(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDEACTIVE((*consdeactive))) SCIP_EVENTHDLR ** SCIPgetEventhdlrs(SCIP *scip) SCIP_RETCODE SCIPcalcRowIntegralScalar(SCIP *scip, SCIP_ROW *row, SCIP_Real mindelta, SCIP_Real maxdelta, SCIP_Longint maxdnom, SCIP_Real maxscale, SCIP_Bool usecontvars, SCIP_Real *intscalar, SCIP_Bool *success) SCIP_Real SCIPgetVarPseudocostCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir) int SCIPgetNNLPNlRows(SCIP *scip) SCIP_RETCODE SCIPclearRelaxSolVals(SCIP *scip) SCIP_RETCODE SCIPincludePricer(SCIP *scip, const char *name, const char *desc, int priority, SCIP_Bool delay, SCIP_DECL_PRICERCOPY((*pricercopy)), SCIP_DECL_PRICERFREE((*pricerfree)), SCIP_DECL_PRICERINIT((*pricerinit)), SCIP_DECL_PRICEREXIT((*pricerexit)), SCIP_DECL_PRICERINITSOL((*pricerinitsol)), SCIP_DECL_PRICEREXITSOL((*pricerexitsol)), SCIP_DECL_PRICERREDCOST((*pricerredcost)), SCIP_DECL_PRICERFARKAS((*pricerfarkas)), SCIP_PRICERDATA *pricerdata) SCIP_Bool SCIPisDualfeasFracIntegral(SCIP *scip, SCIP_Real val) SCIP_CUT ** SCIPgetPoolCuts(SCIP *scip) int SCIPgetNOrigBinVars(SCIP *scip) SCIP_RETCODE SCIPtightenVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened) SCIP_RETCODE SCIPgetNlRowSolFeasibility(SCIP *scip, SCIP_NLROW *nlrow, SCIP_SOL *sol, SCIP_Real *feasibility) SCIP_RETCODE SCIPclearBoolarray(SCIP *scip, SCIP_BOOLARRAY *boolarray) SCIP_RETCODE SCIPunlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup) SCIP_RETCODE SCIPcopyVars(SCIP *sourcescip, SCIP *targetscip, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, SCIP_Bool global) SCIP_RETCODE SCIPgetNLPVarsData(SCIP *scip, SCIP_VAR ***vars, int *nvars) SCIP_RETCODE SCIPsetProbInitsol(SCIP *scip, SCIP_DECL_PROBINITSOL((*probinitsol))) SCIP_RETCODE SCIPenfolpCons(SCIP *scip, SCIP_CONS *cons, SCIP_Bool solinfeasible, SCIP_RESULT *result) SCIP_CONS * SCIPfindCons(SCIP *scip, const char *name) SCIP_ROW ** SCIPgetCuts(SCIP *scip) SCIP_RETCODE SCIPgetStringParam(SCIP *scip, const char *name, char **value) SCIP_RETCODE SCIPincludePricerBasic(SCIP *scip, SCIP_PRICER **pricerptr, const char *name, const char *desc, int priority, SCIP_Bool delay, SCIP_DECL_PRICERREDCOST((*pricerredcost)), SCIP_DECL_PRICERFARKAS((*pricerfarkas)), SCIP_PRICERDATA *pricerdata) SCIP_RETCODE SCIPcatchRowEvent(SCIP *scip, SCIP_ROW *row, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int *filterpos) SCIP_SEPA * SCIPfindSepa(SCIP *scip, const char *name) SCIP_RETCODE SCIPprintBestTransSol(SCIP *scip, FILE *file, SCIP_Bool printzeros) SCIP_READER * SCIPfindReader(SCIP *scip, const char *name) int SCIPgetNPresols(SCIP *scip) SCIP_RETCODE SCIPsetPropResprop(SCIP *scip, SCIP_PROP *prop, SCIP_DECL_PROPRESPROP((*propresprop))) public methods for primal CIP solutions SCIP_RETCODE SCIPgetPseudoBranchCands(SCIP *scip, SCIP_VAR ***pseudocands, int *npseudocands, int *npriopseudocands) SCIP_Bool SCIPisPresolveFinished(SCIP *scip) int SCIPgetNPrioPseudoBranchImpls(SCIP *scip) SCIP_RETCODE SCIPcopyOrigVars(SCIP *sourcescip, SCIP *targetscip, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap) SCIP_Bool SCIPisSumLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPstopSolvingTime(SCIP *scip) SCIP_RETCODE SCIPchgRowRhsDive(SCIP *scip, SCIP_ROW *row, SCIP_Real newrhs) SCIP_Real SCIPgetSolOrigObj(SCIP *scip, SCIP_SOL *sol) SCIP_RETCODE SCIPcreateEmptyRowSepa(SCIP *scip, SCIP_ROW **row, SCIP_SEPA *sepa, const char *name, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable) struct SCIP_ConflicthdlrData SCIP_CONFLICTHDLRDATA Definition: type_conflict.h:40 SCIP_Bool SCIPisRelGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPendDiveNLP(SCIP *scip) SCIP_RETCODE SCIPaddConsLocks(SCIP *scip, SCIP_CONS *cons, int nlockspos, int nlocksneg) SCIP_RETCODE SCIPpropagateProbingImplications(SCIP *scip, SCIP_Bool *cutoff) SCIP_Longint SCIPgetNNodeLPs(SCIP *scip) SCIP_RETCODE SCIPcheckCons(SCIP *scip, SCIP_CONS *cons, SCIP_SOL *sol, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool printreason, SCIP_RESULT *result) SCIP_RETCODE SCIPchgFeastol(SCIP *scip, SCIP_Real feastol) SCIP_RETCODE SCIPprintTransSol(SCIP *scip, SCIP_SOL *sol, FILE *file, SCIP_Bool printzeros) SCIP_Real SCIPgetRelaxSolVal(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPconstructLP(SCIP *scip, SCIP_Bool *cutoff) SCIP_RETCODE SCIPtransformProb(SCIP *scip) int SCIPgetNCutsFound(SCIP *scip) SCIP_RETCODE SCIPparseVarsList(SCIP *scip, const char *str, SCIP_VAR **vars, int *nvars, int varssize, int *requiredsize, char **endptr, char delimiter, SCIP_Bool *success) SCIP_RETCODE SCIPsetRelaxFree(SCIP *scip, SCIP_RELAX *relax, SCIP_DECL_RELAXFREE((*relaxfree))) SCIP_RETCODE SCIPsetConshdlrInit(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSINIT((*consinit))) SCIP_Longint SCIPgetNTotalNodes(SCIP *scip) SCIP_RETCODE SCIPsetBranchrulePriority(SCIP *scip, SCIP_BRANCHRULE *branchrule, int priority) SCIP_Real SCIPgetVarPseudocostCountCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir) type definitions for problem variables SCIP_RETCODE SCIPcheckSol(SCIP *scip, SCIP_SOL *sol, SCIP_Bool printreason, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *feasible) SCIP_Real SCIPgetVarAvgInferences(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir) SCIP_RETCODE SCIPaddNewRowCutpool(SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_ROW *row) SCIP_RETCODE SCIPincludeConflicthdlr(SCIP *scip, const char *name, const char *desc, int priority, SCIP_DECL_CONFLICTCOPY((*conflictcopy)), SCIP_DECL_CONFLICTFREE((*conflictfree)), SCIP_DECL_CONFLICTINIT((*conflictinit)), SCIP_DECL_CONFLICTEXIT((*conflictexit)), SCIP_DECL_CONFLICTINITSOL((*conflictinitsol)), SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol)), SCIP_DECL_CONFLICTEXEC((*conflictexec)), SCIP_CONFLICTHDLRDATA *conflicthdlrdata) SCIP_PROP ** SCIPgetProps(SCIP *scip) SCIP_RETCODE SCIPgetNegatedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **negvar) SCIP_Bool SCIPgetBoolarrayVal(SCIP *scip, SCIP_BOOLARRAY *boolarray, int idx) int SCIPgetNCutsApplied(SCIP *scip) SCIP_RETCODE SCIPbranchLP(SCIP *scip, SCIP_RESULT *result) SCIP_RETCODE SCIPsetProbCopy(SCIP *scip, SCIP_DECL_PROBCOPY((*probcopy))) SCIP_RETCODE SCIPaddPoolCut(SCIP *scip, SCIP_ROW *row) SCIP_RETCODE SCIPsetConshdlrDisable(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDISABLE((*consdisable))) SCIP_Bool SCIPisGE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) type definitions for relaxators SCIP_Longint SCIPgetVarStrongbranchLPAge(SCIP *scip, SCIP_VAR *var) SCIP_Real SCIPgetAvgConflictlengthScoreCurrentRun(SCIP *scip) SCIP_Bool SCIPisParamFixed(SCIP *scip, const char *name) SCIP_RETCODE SCIPgetActiveVars(SCIP *scip, SCIP_VAR **vars, int *nvars, int varssize, int *requiredsize) SCIP_RETCODE SCIPtightenVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened) SCIP_Real SCIPgetRowPseudoFeasibility(SCIP *scip, SCIP_ROW *row) int SCIPgetNRuns(SCIP *scip) SCIP_RETCODE SCIPwriteParams(SCIP *scip, const char *filename, SCIP_Bool comments, SCIP_Bool onlychanged) void SCIPmarkRowNotRemovableLocal(SCIP *scip, SCIP_ROW *row) SCIP_RETCODE SCIPchgVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound) type definitions for conflict analysis SCIP_Real SCIPfloor(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPchgNlRowLinearCoef(SCIP *scip, SCIP_NLROW *nlrow, SCIP_VAR *var, SCIP_Real coef) SCIP_Bool SCIPisRelGE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPgetOrigVarsData(SCIP *scip, SCIP_VAR ***vars, int *nvars, int *nbinvars, int *nintvars, int *nimplvars, int *ncontvars) SCIP_RETCODE SCIPcopyOrig(SCIP *sourcescip, SCIP *targetscip, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, const char *suffix, SCIP_Bool enablepricing, SCIP_Bool passmessagehdlr, SCIP_Bool *valid) SCIP_RETCODE SCIPendProbing(SCIP *scip) SCIP_RETCODE SCIPaddLinearCoefsToNlRow(SCIP *scip, SCIP_NLROW *nlrow, int nvars, SCIP_VAR **vars, SCIP_Real *vals) SCIP_RETCODE SCIPfree(SCIP **scip) type definitions for managing events SCIP_RETCODE SCIPfixParam(SCIP *scip, const char *name) SCIP_Bool SCIPisDualfeasEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2) int SCIPgetNSiblings(SCIP *scip) SCIP_RETCODE SCIPsetHeuristics(SCIP *scip, SCIP_PARAMSETTING paramsetting, SCIP_Bool quiet) SCIP_RETCODE SCIPsetConshdlrInitpre(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSINITPRE((*consinitpre))) SCIP_Real SCIPgetLocalLowerbound(SCIP *scip) SCIP_RETCODE SCIPprintDualSol(SCIP *scip, FILE *file, SCIP_Bool printzeros) SCIP_RETCODE SCIPextendPtrarray(SCIP *scip, SCIP_PTRARRAY *ptrarray, int minidx, int maxidx) public methods for NLP management SCIP_Longint SCIPgetNResolveLPs(SCIP *scip) public methods for node selectors wrapper functions to map file i/o to standard or zlib file i/o SCIP_Bool SCIPisFeasGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPreadProb(SCIP *scip, const char *filename, const char *extension) SCIP_RETCODE SCIPincludeConflicthdlrBasic(SCIP *scip, SCIP_CONFLICTHDLR **conflicthdlrptr, const char *name, const char *desc, int priority, SCIP_DECL_CONFLICTEXEC((*conflictexec)), SCIP_CONFLICTHDLRDATA *conflicthdlrdata) SCIP_RETCODE SCIPgetVarCopy(SCIP *sourcescip, SCIP *targetscip, SCIP_VAR *sourcevar, SCIP_VAR **targetvar, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, SCIP_Bool global, SCIP_Bool *success) SCIP_RETCODE SCIPgetNlRowActivityBounds(SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *minactivity, SCIP_Real *maxactivity) SCIP_Real SCIPgetLPRootColumnObjval(SCIP *scip) SCIP_Real SCIPdualfeasFloor(SCIP *scip, SCIP_Real val) SCIP_Real SCIPgetTotalTime(SCIP *scip) SCIP_Longint SCIPgetSolNodenum(SCIP *scip, SCIP_SOL *sol) SCIP_RETCODE SCIPsetPropFree(SCIP *scip, SCIP_PROP *prop, SCIP_DECL_PROPFREE((*propfree))) SCIP_Real SCIPgetLPRootLooseObjval(SCIP *scip) SCIP_RETCODE SCIPsetRelaxSolVals(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_Real *vals) SCIP_RETCODE SCIPbranchVarHole(SCIP *scip, SCIP_VAR *var, SCIP_Real left, SCIP_Real right, SCIP_NODE **downchild, SCIP_NODE **upchild) SCIP_RETCODE SCIPclearCuts(SCIP *scip) SCIP_Real SCIPgetVarAvgCutoffs(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir) public data structures and miscellaneous methods SCIP_RETCODE SCIPsetReaderWrite(SCIP *scip, SCIP_READER *reader, SCIP_DECL_READERWRITE((*readerwrite))) SCIP_RETCODE SCIPincludeSepa(SCIP *scip, const char *name, const char *desc, int priority, int freq, SCIP_Real maxbounddist, SCIP_Bool usessubscip, SCIP_Bool delay, SCIP_DECL_SEPACOPY((*sepacopy)), SCIP_DECL_SEPAFREE((*sepafree)), SCIP_DECL_SEPAINIT((*sepainit)), SCIP_DECL_SEPAEXIT((*sepaexit)), SCIP_DECL_SEPAINITSOL((*sepainitsol)), SCIP_DECL_SEPAEXITSOL((*sepaexitsol)), SCIP_DECL_SEPAEXECLP((*sepaexeclp)), SCIP_DECL_SEPAEXECSOL((*sepaexecsol)), SCIP_SEPADATA *sepadata) SCIP_RETCODE SCIPcalcCliquePartition(SCIP *const scip, SCIP_VAR **const vars, int const nvars, int *const cliquepartition, int *const ncliques) SCIP_RETCODE SCIPreleaseNlRow(SCIP *scip, SCIP_NLROW **nlrow) SCIP_RETCODE SCIPcreateRowUnspec(SCIP *scip, SCIP_ROW **row, const char *name, int len, SCIP_COL **cols, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable) SCIP_RETCODE SCIPallocBufferSize(SCIP *scip, void **ptr, int size) SCIP_PRICER * SCIPfindPricer(SCIP *scip, const char *name) SCIP_RETCODE SCIPsetPresolExit(SCIP *scip, SCIP_PRESOL *presol, SCIP_DECL_PRESOLEXIT((*presolexit))) SCIP_RETCODE SCIPtransformCons(SCIP *scip, SCIP_CONS *cons, SCIP_CONS **transcons) SCIP_RETCODE SCIPgetNlRowPseudoFeasibility(SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *pseudofeasibility) SCIP_RETCODE SCIPlinkNLPSol(SCIP *scip, SCIP_SOL *sol) SCIP_RETCODE SCIPpresolve(SCIP *scip) SCIP_Longint SCIPgetNSolsFound(SCIP *scip) int SCIPgetNPrioExternBranchConts(SCIP *scip) SCIP_Real SCIPgetAvgCutoffsCurrentRun(SCIP *scip, SCIP_BRANCHDIR dir) SCIP_Longint SCIPgetNRootStrongbranchLPIterations(SCIP *scip) SCIP_RETCODE SCIPgetTransformedVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars) SCIP_RETCODE SCIPsetEventhdlrExitsol(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTEXITSOL((*eventexitsol))) SCIP_RETCODE SCIPstartProbing(SCIP *scip) SCIP_RETCODE SCIPdropVarEvent(SCIP *scip, SCIP_VAR *var, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int filterpos) SCIP_Real SCIPgetRowPseudoActivity(SCIP *scip, SCIP_ROW *row) SCIP_RETCODE SCIPaddObjoffset(SCIP *scip, SCIP_Real addval) SCIP_Bool SCIPisFeasEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_Real SCIPgetVarAvgCutoffsCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir) SCIP_RETCODE SCIPaddSol(SCIP *scip, SCIP_SOL *sol, SCIP_Bool *stored) public methods for storing cuts in a cut pool SCIP_RETCODE SCIPsetSubscipsOff(SCIP *scip, SCIP_Bool quiet) type definitions for input file readers SCIP_Real SCIPgetBranchScore(SCIP *scip, SCIP_VAR *var, SCIP_Real downgain, SCIP_Real upgain) SCIP_Bool SCIPisTransformed(SCIP *scip) SCIP_RETCODE SCIPinferBinvarCons(SCIP *scip, SCIP_VAR *var, SCIP_Bool fixedval, SCIP_CONS *infercons, int inferinfo, SCIP_Bool *infeasible, SCIP_Bool *tightened) SCIP_RETCODE SCIPsetRelaxInitsol(SCIP *scip, SCIP_RELAX *relax, SCIP_DECL_RELAXINITSOL((*relaxinitsol))) SCIP_RETCODE SCIPupdateConsFlags(SCIP *scip, SCIP_CONS *cons0, SCIP_CONS *cons1) SCIP_Longint SCIPgetNDivingLPs(SCIP *scip) SCIP_RETCODE SCIPsetPresolving(SCIP *scip, SCIP_PARAMSETTING paramsetting, SCIP_Bool quiet) SCIP_RETCODE SCIPcreateCurrentSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur) int SCIPgetNCheckConss(SCIP *scip) SCIP_Real SCIPgetPrimalbound(SCIP *scip) SCIP_RETCODE SCIPsetSeparating(SCIP *scip, SCIP_PARAMSETTING paramsetting, SCIP_Bool quiet) SCIP_Real SCIPgetAvgInferences(SCIP *scip, SCIP_BRANCHDIR dir) SCIP_RETCODE SCIPcreateCons(SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_CONSHDLR *conshdlr, SCIP_CONSDATA *consdata, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode) SCIP_RETCODE SCIPchgVarObjDiveNLP(SCIP *scip, SCIP_VAR *var, SCIP_Real coef) SCIP_Bool SCIPisFeasNegative(SCIP *scip, SCIP_Real val) SCIP_Longint SCIPgetNResolveLPIterations(SCIP *scip) SCIP_RETCODE SCIPchgVarUbProbing(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound) SCIP_Real SCIPgetVarRedcost(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPevalExprtreeGlobalBounds(SCIP *scip, SCIP_EXPRTREE *tree, SCIP_Real infinity, SCIP_INTERVAL *val) SCIP_RETCODE SCIPsetPropInitsol(SCIP *scip, SCIP_PROP *prop, SCIP_DECL_PROPINITSOL((*propinitsol))) SCIP_RETCODE SCIPsumLPRows(SCIP *scip, SCIP_Real *weights, SCIP_REALARRAY *sumcoef, SCIP_Real *sumlhs, SCIP_Real *sumrhs) SCIP_RETCODE SCIPenfopsCons(SCIP *scip, SCIP_CONS *cons, SCIP_Bool solinfeasible, SCIP_Bool objinfeasible, SCIP_RESULT *result) SCIP_RETCODE SCIPchgConsName(SCIP *scip, SCIP_CONS *cons, const char *name) SCIP_RETCODE SCIPincludeNodesel(SCIP *scip, const char *name, const char *desc, int stdpriority, int memsavepriority, SCIP_DECL_NODESELCOPY((*nodeselcopy)), SCIP_DECL_NODESELFREE((*nodeselfree)), SCIP_DECL_NODESELINIT((*nodeselinit)), SCIP_DECL_NODESELEXIT((*nodeselexit)), SCIP_DECL_NODESELINITSOL((*nodeselinitsol)), SCIP_DECL_NODESELEXITSOL((*nodeselexitsol)), SCIP_DECL_NODESELSELECT((*nodeselselect)), SCIP_DECL_NODESELCOMP((*nodeselcomp)), SCIP_NODESELDATA *nodeseldata) SCIP_RETCODE SCIPsetPricerCopy(SCIP *scip, SCIP_PRICER *pricer, SCIP_DECL_PRICERCOPY((*pricercopy))) SCIP_RETCODE SCIPfreeIntarray(SCIP *scip, SCIP_INTARRAY **intarray) SCIP_RETCODE SCIPdelVar(SCIP *scip, SCIP_VAR *var, SCIP_Bool *deleted) SCIP_RETCODE SCIPaddStringParam(SCIP *scip, const char *name, const char *desc, char **valueptr, SCIP_Bool isadvanced, const char *defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata) SCIP_RETCODE SCIPreleaseVar(SCIP *scip, SCIP_VAR **var) SCIP_RETCODE SCIPgetCharParam(SCIP *scip, const char *name, char *value) SCIP_RETCODE SCIPcreateProb(SCIP *scip, const char *name, SCIP_DECL_PROBDELORIG((*probdelorig)), SCIP_DECL_PROBTRANS((*probtrans)), SCIP_DECL_PROBDELTRANS((*probdeltrans)), SCIP_DECL_PROBINITSOL((*probinitsol)), SCIP_DECL_PROBEXITSOL((*probexitsol)), SCIP_DECL_PROBCOPY((*probcopy)), SCIP_PROBDATA *probdata) SCIP_RETCODE SCIPsetBranchruleExecExt(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHEXECEXT((*branchexecext))) SCIP_Bool SCIPisRelLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPcreateSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur) SCIP_RETCODE SCIPsetHeurExit(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEUREXIT((*heurexit))) public methods for variable pricers SCIP_Real SCIPgetGlobalPseudoObjval(SCIP *scip) SCIP_RETCODE SCIPcopyOrigConss(SCIP *sourcescip, SCIP *targetscip, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, SCIP_Bool enablepricing, SCIP_Bool *valid) SCIP_STAGE SCIPgetStage(SCIP *scip) SCIP_Real SCIPgetVarConflictScore(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPnewProbingNode(SCIP *scip) SCIP_Real SCIPgetAvgCutoffs(SCIP *scip, SCIP_BRANCHDIR dir) SCIP_NODE * SCIPgetBestSibling(SCIP *scip) int SCIPgetNCuts(SCIP *scip) public methods for LP management SCIP_RETCODE SCIPchgLpfeastol(SCIP *scip, SCIP_Real lpfeastol, SCIP_Bool printnewvalue) SCIP_Bool SCIPisRootLPRelax(SCIP *scip) SCIP_RETCODE SCIPsetNodeselFree(SCIP *scip, SCIP_NODESEL *nodesel, SCIP_DECL_NODESELFREE((*nodeselfree))) SCIP_RETCODE SCIPchgVarBranchPriority(SCIP *scip, SCIP_VAR *var, int branchpriority) SCIP_Bool SCIPisSumNegative(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPaddLinearCoefToNlRow(SCIP *scip, SCIP_NLROW *nlrow, SCIP_VAR *var, SCIP_Real val) SCIP_RETCODE SCIPcreateLPSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur) int SCIPgetNConflicthdlrs(SCIP *scip) int SCIPgetNPricevarsFound(SCIP *scip) SCIP_Bool SCIPisIntegral(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPtransformVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars) SCIP_RETCODE SCIPcacheRowExtensions(SCIP *scip, SCIP_ROW *row) SCIP_PRESOL * SCIPfindPresol(SCIP *scip, const char *name) SCIP_RETCODE SCIPchgVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound) SCIP_RETCODE SCIPaddConflictLb(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx) SCIP_RETCODE SCIPflattenVarAggregationGraph(SCIP *scip, SCIP_VAR *var) SCIP_Real SCIPfeastol(SCIP *scip) SCIP_RETCODE SCIPcreateSolCopy(SCIP *scip, SCIP_SOL **sol, SCIP_SOL *sourcesol) SCIP_Real SCIPgetVarPseudocostScoreCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real solval) SCIP_RETCODE SCIPsetSepaPriority(SCIP *scip, SCIP_SEPA *sepa, int priority) type definitions for branch and bound tree SCIP_Longint SCIPgetLastDivenode(SCIP *scip) SCIP_Real SCIPgetTransGap(SCIP *scip) SCIP_RETCODE SCIPfreeSolve(SCIP *scip, SCIP_Bool restart) SCIP_NODE * SCIPgetCurrentNode(SCIP *scip) SCIP_RETCODE SCIPsetBranchruleExitsol(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHEXITSOL((*branchexitsol))) SCIP_RETCODE SCIPsetConshdlrPrint(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPRINT((*consprint))) SCIP_NODE * SCIPgetPrioChild(SCIP *scip) int SCIPgetNPrioExternBranchInts(SCIP *scip) SCIP_Real SCIPgetAvgConflictScoreCurrentRun(SCIP *scip) int SCIPgetNNlpis(SCIP *scip) SCIP_NLPI ** SCIPgetNlpis(SCIP *scip) SCIP_RETCODE SCIPaddVarImplication(SCIP *scip, SCIP_VAR *var, SCIP_Bool varfixing, SCIP_VAR *implvar, SCIP_BOUNDTYPE impltype, SCIP_Real implbound, SCIP_Bool *infeasible, int *nbdchgs) SCIP_RETCODE SCIPfixVarProbing(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval) SCIP_RETCODE SCIPsetPresolFree(SCIP *scip, SCIP_PRESOL *presol, SCIP_DECL_PRESOLFREE((*presolfree))) SCIP_Real SCIPgetAvgPseudocost(SCIP *scip, SCIP_Real solvaldelta) SCIP_BRANCHRULE ** SCIPgetBranchrules(SCIP *scip) SCIP_RETCODE SCIPaddQuadVarsToNlRow(SCIP *scip, SCIP_NLROW *nlrow, int nvars, SCIP_VAR **vars) SCIP_Real SCIPgetObjlimit(SCIP *scip) SCIP_RETCODE SCIPwriteVarsLinearsum(SCIP *scip, FILE *file, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_Bool type) SCIP_RETCODE SCIPaddConflictRelaxedLb(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Real relaxedlb) type definitions for clocks and timing issues SCIP_RETCODE SCIPgetLPBasisInd(SCIP *scip, int *basisind) SCIP_PARAM ** SCIPgetParams(SCIP *scip) SCIP_RETCODE SCIPdisableConsSeparation(SCIP *scip, SCIP_CONS *cons) SCIP_RETCODE SCIPflushLP(SCIP *scip) SCIP_Real SCIPgetVarAvgInferenceCutoffScoreCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight) SCIP_RETCODE SCIPprintRay(SCIP *scip, SCIP_SOL *sol, FILE *file, SCIP_Bool printzeros) SCIP_RETCODE SCIPsetConshdlrInitlp(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSINITLP((*consinitlp))) SCIP_RETCODE SCIPsetRelaxExit(SCIP *scip, SCIP_RELAX *relax, SCIP_DECL_RELAXEXIT((*relaxexit))) SCIP_Longint SCIPgetNPrimalResolveLPIterations(SCIP *scip) SCIP_RETCODE SCIPgetSiblings(SCIP *scip, SCIP_NODE ***siblings, int *nsiblings) SCIP_RETCODE SCIPfreeCutpool(SCIP *scip, SCIP_CUTPOOL **cutpool) SCIP_RETCODE SCIPaddCons(SCIP *scip, SCIP_CONS *cons) SCIP_RETCODE SCIPsetConsChecked(SCIP *scip, SCIP_CONS *cons, SCIP_Bool check) SCIP_RETCODE SCIPcreatePtrarray(SCIP *scip, SCIP_PTRARRAY **ptrarray) SCIP_Real SCIPgetVarPseudocostScore(SCIP *scip, SCIP_VAR *var, SCIP_Real solval) SCIP_RETCODE SCIPreadParams(SCIP *scip, const char *filename) SCIP_RETCODE SCIPgetVarsData(SCIP *scip, SCIP_VAR ***vars, int *nvars, int *nbinvars, int *nintvars, int *nimplvars, int *ncontvars) SCIP_Real SCIPgetFirstLPLowerboundRoot(SCIP *scip) SCIP_RETCODE SCIPaddQuadVarToNlRow(SCIP *scip, SCIP_NLROW *nlrow, SCIP_VAR *var) SCIP_RETCODE SCIPextendBoolarray(SCIP *scip, SCIP_BOOLARRAY *boolarray, int minidx, int maxidx) SCIP_CONS ** SCIPgetConss(SCIP *scip) SCIP_RETCODE SCIPseparateSol(SCIP *scip, SCIP_SOL *sol, SCIP_Bool pretendroot, SCIP_Bool onlydelayed, SCIP_Bool *delayed, SCIP_Bool *cutoff) SCIP_RETCODE SCIPprintRow(SCIP *scip, SCIP_ROW *row, FILE *file) BMS_BLKMEM * SCIPblkmem(SCIP *scip) SCIP_RETCODE SCIPaddConsAge(SCIP *scip, SCIP_CONS *cons, SCIP_Real deltaage) SCIP_RETCODE SCIPsetConshdlrInitsol(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSINITSOL((*consinitsol))) type definitions for storing and manipulating the main problem SCIP_SOL ** SCIPgetSols(SCIP *scip) SCIP_RETCODE SCIPinitlpCons(SCIP *scip, SCIP_CONS *cons) SCIP_RETCODE SCIPcreateChild(SCIP *scip, SCIP_NODE **node, SCIP_Real nodeselprio, SCIP_Real estimate) void SCIPsetMessagehdlrQuiet(SCIP *scip, SCIP_Bool quiet) SCIP_Real SCIPlpfeastol(SCIP *scip) SCIP_RETCODE SCIPgetTransformedConss(SCIP *scip, int nconss, SCIP_CONS **conss, SCIP_CONS **transconss) SCIP_Real SCIPgetVarLbDive(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPchgRealParam(SCIP *scip, SCIP_PARAM *param, SCIP_Real value) int SCIPgetPtrarrayMinIdx(SCIP *scip, SCIP_PTRARRAY *ptrarray) SCIP_Real SCIPgetBranchingPoint(SCIP *scip, SCIP_VAR *var, SCIP_Real suggestion) SCIP_Real SCIPfeasRound(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPgetLongintParam(SCIP *scip, const char *name, SCIP_Longint *value) SCIP_RETCODE SCIPcreateOrigSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur) SCIP_RETCODE SCIPgetVarStrongbranchLast(SCIP *scip, SCIP_VAR *var, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Real *solval, SCIP_Real *lpobjval) SCIP_RETCODE SCIPincludePresol(SCIP *scip, const char *name, const char *desc, int priority, int maxrounds, SCIP_Bool delay, SCIP_DECL_PRESOLCOPY((*presolcopy)), SCIP_DECL_PRESOLFREE((*presolfree)), SCIP_DECL_PRESOLINIT((*presolinit)), SCIP_DECL_PRESOLEXIT((*presolexit)), SCIP_DECL_PRESOLINITPRE((*presolinitpre)), SCIP_DECL_PRESOLEXITPRE((*presolexitpre)), SCIP_DECL_PRESOLEXEC((*presolexec)), SCIP_PRESOLDATA *presoldata) SCIP_RETCODE SCIPflushNLP(SCIP *scip) SCIP_PRICER ** SCIPgetPricers(SCIP *scip) SCIP_RETCODE SCIPrepropagateNode(SCIP *scip, SCIP_NODE *node) SCIP_RETCODE SCIPaddConflictUb(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx) SCIP_Real SCIPgetVarAvgCutoffScore(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPreadSol(SCIP *scip, const char *filename) SCIP_RETCODE SCIPchgVarUbNode(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound) SCIP_RETCODE SCIPwriteOrigProblem(SCIP *scip, const char *filename, const char *extension, SCIP_Bool genericnames) SCIP_BRANCHRULE * SCIPfindBranchrule(SCIP *scip, const char *name) type definitions for propagators SCIP_Real SCIPgetVarPseudocostCount(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir) SCIP_Longint SCIPgetMemUsed(SCIP *scip) SCIP_Real SCIPcomputeVarUbLocal(SCIP *scip, SCIP_VAR *var) void SCIPverbMessage(SCIP *scip, SCIP_VERBLEVEL msgverblevel, FILE *file, const char *formatstr,...) SCIP_Real SCIPgetLPColumnObjval(SCIP *scip) SCIP_Longint SCIPgetNConflictConssFound(SCIP *scip) SCIP_VERBLEVEL SCIPgetVerbLevel(SCIP *scip) SCIP_RETCODE SCIPgetNlRowSolActivity(SCIP *scip, SCIP_NLROW *nlrow, SCIP_SOL *sol, SCIP_Real *activity) public methods for presolvers SCIP_RETCODE SCIPlinkCurrentSol(SCIP *scip, SCIP_SOL *sol) SCIP_COL ** SCIPgetLPCols(SCIP *scip) SCIP_RETCODE SCIPgetNLPIntPar(SCIP *scip, SCIP_NLPPARAM type, int *ival) public methods for managing events SCIP_Bool SCIPisGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_Longint SCIPgetNRootStrongbranchs(SCIP *scip) SCIP_CLIQUE ** SCIPgetCliques(SCIP *scip) int SCIPgetVarNStrongbranchs(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPprintOrigProblem(SCIP *scip, FILE *file, const char *extension, SCIP_Bool genericnames) SCIP_RETCODE SCIPmarkDoNotMultaggrVar(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPcreateEmptyRowCons(SCIP *scip, SCIP_ROW **row, SCIP_CONSHDLR *conshdlr, const char *name, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable) SCIP_RETCODE SCIPsetConshdlrDelvars(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDELVARS((*consdelvars))) int SCIPgetNIntVars(SCIP *scip) SCIP_Real SCIPgetTransObjscale(SCIP *scip) SCIP_Bool SCIPisLPRelax(SCIP *scip) SCIP_RETCODE SCIPsetProbExitsol(SCIP *scip, SCIP_DECL_PROBEXITSOL((*probexitsol))) SCIP_RETCODE SCIPretransformSol(SCIP *scip, SCIP_SOL *sol) int SCIPgetMaxTotalDepth(SCIP *scip) SCIP_Real SCIPgetLocalDualbound(SCIP *scip) SCIP_RETCODE SCIPchgStringParam(SCIP *scip, SCIP_PARAM *param, const char *value) SCIP_Real SCIPfrac(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPchgVarBoundsDiveNLP(SCIP *scip, SCIP_VAR *var, SCIP_Real lb, SCIP_Real ub) SCIP_Real SCIPceil(SCIP *scip, SCIP_Real val) void SCIPprintReal(SCIP *scip, FILE *file, SCIP_Real val, int width, int precision) SCIP_Bool SCIPisSumEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPchgNlRowLhs(SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real lhs) int SCIPgetNPriceRounds(SCIP *scip) SCIP_RETCODE SCIPgetBoolParam(SCIP *scip, const char *name, SCIP_Bool *value) SCIP_Real * SCIPgetNLPVarsLbDualsol(SCIP *scip) void * SCIPgetPtrarrayVal(SCIP *scip, SCIP_PTRARRAY *ptrarray, int idx) SCIP_Real SCIPgetVarPseudocostValCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta) SCIP_RETCODE SCIPstartSolvingTime(SCIP *scip) int SCIPgetNLPRows(SCIP *scip) SCIP_RETCODE SCIPinitVarBranchStats(SCIP *scip, SCIP_VAR *var, SCIP_Real downpscost, SCIP_Real uppscost, SCIP_Real downvsids, SCIP_Real upvsids, SCIP_Real downconflen, SCIP_Real upconflen, SCIP_Real downinfer, SCIP_Real upinfer, SCIP_Real downcutoff, SCIP_Real upcutoff) SCIP_NODESEL * SCIPfindNodesel(SCIP *scip, const char *name) SCIP_Bool SCIPhasPrimalRay(SCIP *scip) SCIP_Real SCIPretransformObj(SCIP *scip, SCIP_Real obj) public methods for conflict analysis handlers SCIP_RETCODE SCIPtrySol(SCIP *scip, SCIP_SOL *sol, SCIP_Bool printreason, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored) int SCIPgetNOrigConss(SCIP *scip) SCIP_RETCODE SCIPdropRowEvent(SCIP *scip, SCIP_ROW *row, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int filterpos) SCIP_RETCODE SCIPparseVarsPolynomial(SCIP *scip, const char *str, SCIP_VAR ****monomialvars, SCIP_Real ***monomialexps, SCIP_Real **monomialcoefs, int **monomialnvars, int *nmonomials, char **endptr, SCIP_Bool *success) SCIP_Real SCIPgetBranchScoreMultiple(SCIP *scip, SCIP_VAR *var, int nchildren, SCIP_Real *gains) SCIP_RETCODE SCIPdisableCons(SCIP *scip, SCIP_CONS *cons) SCIP_RETCODE SCIPsetObjsense(SCIP *scip, SCIP_OBJSENSE objsense) type definitions for separators int SCIPgetNCliques(SCIP *scip) SCIP_RETCODE SCIPsetEmphasis(SCIP *scip, SCIP_PARAMEMPHASIS paramemphasis, SCIP_Bool quiet) int SCIPminorVersion(void) SCIP_Longint SCIPgetNNodeLPIterations(SCIP *scip) SCIP_RETCODE SCIPincludeDialog(SCIP *scip, SCIP_DIALOG **dialog, SCIP_DECL_DIALOGCOPY((*dialogcopy)), SCIP_DECL_DIALOGEXEC((*dialogexec)), SCIP_DECL_DIALOGDESC((*dialogdesc)), SCIP_DECL_DIALOGFREE((*dialogfree)), const char *name, const char *desc, SCIP_Bool issubmenu, SCIP_DIALOGDATA *dialogdata) SCIP_Bool SCIPinRepropagation(SCIP *scip) SCIP_RETCODE SCIPchgVarLbNode(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound) SCIP_Bool SCIPisPositive(SCIP *scip, SCIP_Real val) SCIP_Longint SCIPconvertRealToLongint(SCIP *scip, SCIP_Real real) SCIP_RETCODE SCIPsolveDiveLP(SCIP *scip, int itlim, SCIP_Bool *lperror, SCIP_Bool *cutoff) SCIP_RETCODE SCIPgetConsNVars(SCIP *scip, SCIP_CONS *cons, int *nvars, SCIP_Bool *success) int SCIPgetNNodesLeft(SCIP *scip) SCIP_Real SCIPgetRowLPActivity(SCIP *scip, SCIP_ROW *row) SCIP_RELAX * SCIPfindRelax(SCIP *scip, const char *name) SCIP_RETCODE SCIPendStrongbranch(SCIP *scip) SCIP_Longint SCIPgetNPrimalResolveLPs(SCIP *scip) SCIP_RETCODE SCIPinferVarLbCons(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_CONS *infercons, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened) SCIP_RETCODE SCIPaddCharParam(SCIP *scip, const char *name, const char *desc, char *valueptr, SCIP_Bool isadvanced, char defaultvalue, const char *allowedvalues, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata) public methods for message output SCIP_Bool SCIPisExactSolve(SCIP *scip) SCIP_RETCODE SCIPsetBoolParam(SCIP *scip, const char *name, SCIP_Bool value) SCIP_RETCODE SCIPincludeReaderBasic(SCIP *scip, SCIP_READER **readerptr, const char *name, const char *desc, const char *extension, SCIP_READERDATA *readerdata) SCIP_RETCODE SCIPsetSepaExitsol(SCIP *scip, SCIP_SEPA *sepa, SCIP_DECL_SEPAEXITSOL((*sepaexitsol))) SCIP_RETCODE SCIPenableCons(SCIP *scip, SCIP_CONS *cons) SCIP_Bool SCIPisRelaxSolValid(SCIP *scip) SCIP_RETCODE SCIPsetConshdlrDelete(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDELETE((*consdelete))) SCIP_RETCODE SCIPsetPropExit(SCIP *scip, SCIP_PROP *prop, SCIP_DECL_PROPEXIT((*propexit))) SCIP_RETCODE SCIPsetRelaxExitsol(SCIP *scip, SCIP_RELAX *relax, SCIP_DECL_RELAXEXITSOL((*relaxexitsol))) SCIP_RETCODE SCIPdisableConsPropagation(SCIP *scip, SCIP_CONS *cons) SCIP_Bool SCIPhaveVarsCommonClique(SCIP *scip, SCIP_VAR *var1, SCIP_Bool value1, SCIP_VAR *var2, SCIP_Bool value2, SCIP_Bool regardimplics) SCIP_RETCODE SCIPbranchVarValNary(SCIP *scip, SCIP_VAR *var, SCIP_Real val, int n, SCIP_Real minwidth, SCIP_Real widthfactor, int *nchildren) SCIP_RETCODE SCIPcopyPlugins(SCIP *sourcescip, SCIP *targetscip, SCIP_Bool copyreaders, SCIP_Bool copypricers, SCIP_Bool copyconshdlrs, SCIP_Bool copyconflicthdlrs, SCIP_Bool copypresolvers, SCIP_Bool copyrelaxators, SCIP_Bool copyseparators, SCIP_Bool copypropagators, SCIP_Bool copyheuristics, SCIP_Bool copyeventhdlrs, SCIP_Bool copynodeselectors, SCIP_Bool copybranchrules, SCIP_Bool copydisplays, SCIP_Bool copydialogs, SCIP_Bool copynlpis, SCIP_Bool passmessagehdlr, SCIP_Bool *valid) SCIP_RETCODE SCIPsetEventhdlrDelete(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTDELETE((*eventdelete))) type definitions for handling parameter settings SCIP_Real SCIPgetVarFarkasCoef(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPclearPtrarray(SCIP *scip, SCIP_PTRARRAY *ptrarray) SCIP_RETCODE SCIProundSol(SCIP *scip, SCIP_SOL *sol, SCIP_Bool *success) SCIP_RETCODE SCIPchgBarrierconvtol(SCIP *scip, SCIP_Real barrierconvtol) SCIP_RETCODE SCIPunlinkSol(SCIP *scip, SCIP_SOL *sol) SCIP_Bool SCIPisNLPEnabled(SCIP *scip) SCIP_RETCODE SCIPsetConshdlrExitsol(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSEXITSOL((*consexitsol))) type definitions for user interface dialog int SCIPgetNPricevarsApplied(SCIP *scip) const char * SCIPgetProbName(SCIP *scip) SCIP_RETCODE SCIPprintNlRow(SCIP *scip, SCIP_NLROW *nlrow, FILE *file) SCIP_RETCODE SCIPsetProbData(SCIP *scip, SCIP_PROBDATA *probdata) public methods for relaxation handlers SCIP_RETCODE SCIPsetEventhdlrFree(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTFREE((*eventfree))) SCIP_Real SCIPgetPresolvingTime(SCIP *scip) result codes for SCIP callback methods type definitions for branching and inference history SCIP_RETCODE SCIPgetNLPRealPar(SCIP *scip, SCIP_NLPPARAM type, SCIP_Real *dval) SCIP_RETCODE SCIPincSolVal(SCIP *scip, SCIP_SOL *sol, SCIP_VAR *var, SCIP_Real incval) int SCIPgetCutoffdepth(SCIP *scip) int SCIPgetDepth(SCIP *scip) public methods for input file readers SCIP_RETCODE SCIPsetHeurFree(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEURFREE((*heurfree))) SCIP_Bool SCIPisDualfeasNegative(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPlinkLPSol(SCIP *scip, SCIP_SOL *sol) SCIP_RETCODE SCIPaddVarsToRowSameCoef(SCIP *scip, SCIP_ROW *row, int nvars, SCIP_VAR **vars, SCIP_Real val) SCIP_Real SCIPgetAvgPseudocostScore(SCIP *scip) SCIP_RETCODE SCIPgetChildren(SCIP *scip, SCIP_NODE ***children, int *nchildren) SCIP_RETCODE SCIPlinkPseudoSol(SCIP *scip, SCIP_SOL *sol) SCIP_Real SCIPtransformObj(SCIP *scip, SCIP_Real obj) int SCIPgetNImplVars(SCIP *scip) SCIP_RETCODE SCIPsetConsSeparated(SCIP *scip, SCIP_CONS *cons, SCIP_Bool separate) SCIP_RETCODE SCIPscaleVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real scale) SCIP_RETCODE SCIPreleaseDialog(SCIP *scip, SCIP_DIALOG **dialog) SCIP_Real SCIPgetColRedcost(SCIP *scip, SCIP_COL *col) SCIP_RETCODE SCIPsetHeurInit(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEURINIT((*heurinit))) void SCIPinfoMessage(SCIP *scip, FILE *file, const char *formatstr,...) SCIP_Real SCIPround(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPgetNLPVarsNonlinearity(SCIP *scip, int *nlcount) SCIP_RETCODE SCIPclearIntarray(SCIP *scip, SCIP_INTARRAY *intarray) SCIP_RETCODE SCIPsetRelaxSolVal(SCIP *scip, SCIP_VAR *var, SCIP_Real val) int SCIPgetNHeurs(SCIP *scip) SCIP_RETCODE SCIPsetStringParam(SCIP *scip, const char *name, const char *value) SCIP_RETCODE SCIPchgVarLbProbing(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound) SCIP_RETCODE SCIPsetNodeselStdPriority(SCIP *scip, SCIP_NODESEL *nodesel, int priority) SCIP_RETCODE SCIPactivatePricer(SCIP *scip, SCIP_PRICER *pricer) SCIP_RETCODE SCIPtightenVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened) SCIP_RETCODE SCIPcalcStrongCG(SCIP *scip, SCIP_Real boundswitch, SCIP_Bool usevbds, SCIP_Bool allowlocal, int maxmksetcoefs, SCIP_Real maxweightrange, SCIP_Real minfrac, SCIP_Real maxfrac, SCIP_Real *weights, SCIP_Real scale, SCIP_Real *mircoef, SCIP_Real *mirrhs, SCIP_Real *cutactivity, SCIP_Bool *success, SCIP_Bool *cutislocal, int *cutrank) SCIP_RETCODE SCIPchgVarUbLazy(SCIP *scip, SCIP_VAR *var, SCIP_Real lazyub) void SCIPprintVersion(SCIP *scip, FILE *file) SCIP_Real SCIPgetRelaxSolObj(SCIP *scip) SCIP_RETCODE SCIPsetConshdlrGetNVars(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSGETNVARS((*consgetnvars))) int SCIPgetNUpgrConss(SCIP *scip) SCIP_RETCODE SCIPsepasolCons(SCIP *scip, SCIP_CONS *cons, SCIP_SOL *sol, SCIP_RESULT *result) SCIP_RETCODE SCIPsetHeurExitsol(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEUREXITSOL((*heurexitsol))) SCIP_RETCODE SCIPautoselectDisps(SCIP *scip) SCIP_Real SCIPgetVarVSIDS(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir) SCIP_RETCODE SCIPcreateEmptyRow(SCIP *scip, SCIP_ROW **row, const char *name, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable) SCIP_RETCODE SCIPaddConsLocal(SCIP *scip, SCIP_CONS *cons, SCIP_NODE *validnode) SCIP_RETCODE SCIPcalcNegatedCliquePartition(SCIP *const scip, SCIP_VAR **const vars, int const nvars, int *const cliquepartition, int *const ncliques) SCIP_RETCODE SCIPgetNLPStringPar(SCIP *scip, SCIP_NLPPARAM type, const char **sval) SCIP_RETCODE SCIPclearSol(SCIP *scip, SCIP_SOL *sol) SCIP_Real SCIPgetSolTime(SCIP *scip, SCIP_SOL *sol) SCIP_RETCODE SCIPcreate(SCIP **scip) int SCIPtechVersion(void) SCIP_Longint SCIPgetNBarrierLPs(SCIP *scip) SCIP_Bool SCIPareSolsEqual(SCIP *scip, SCIP_SOL *sol1, SCIP_SOL *sol2) SCIP_Bool SCIPisFeasLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPsetNLPInitialGuessSol(SCIP *scip, SCIP_SOL *sol) int SCIPgetNDisps(SCIP *scip) SCIP_VAR ** SCIPgetNLPVars(SCIP *scip) SCIP_RETCODE SCIPsetEventhdlrInitsol(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTINITSOL((*eventinitsol))) SCIP_RETCODE SCIPcopyOrigProb(SCIP *sourcescip, SCIP *targetscip, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, const char *name) int SCIPgetNBranchrules(SCIP *scip) SCIP_RETCODE SCIPchgRowLhs(SCIP *scip, SCIP_ROW *row, SCIP_Real lhs) void SCIPstoreSolutionGap(SCIP *scip) SCIP_RETCODE SCIPflushRowExtensions(SCIP *scip, SCIP_ROW *row) SCIP_RETCODE SCIPgetVarsStrongbranchesInt(SCIP *scip, SCIP_VAR **vars, int nvars, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror) SCIP_RETCODE SCIPwriteNLP(SCIP *scip, const char *filename) SCIP_RETCODE SCIPcaptureNlRow(SCIP *scip, SCIP_NLROW *nlrow) SCIP_CONS ** SCIPgetOrigConss(SCIP *scip) SCIP_RETCODE SCIPgetVarClosestVub(SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvub, int *closestvubidx) SCIP_RETCODE SCIPbranchVarVal(SCIP *scip, SCIP_VAR *var, SCIP_Real val, SCIP_NODE **downchild, SCIP_NODE **eqchild, SCIP_NODE **upchild) SCIP_RETCODE SCIPextendRealarray(SCIP *scip, SCIP_REALARRAY *realarray, int minidx, int maxidx) SCIP_RETCODE SCIPcreateWallClock(SCIP *scip, SCIP_CLOCK **clck) SCIP_RETCODE SCIPincludeSepaBasic(SCIP *scip, SCIP_SEPA **sepa, const char *name, const char *desc, int priority, int freq, SCIP_Real maxbounddist, SCIP_Bool usessubscip, SCIP_Bool delay, SCIP_DECL_SEPAEXECLP((*sepaexeclp)), SCIP_DECL_SEPAEXECSOL((*sepaexecsol)), SCIP_SEPADATA *sepadata) SCIP_Real SCIPgetVarSol(SCIP *scip, SCIP_VAR *var) SCIP_CONFLICTHDLR * SCIPfindConflicthdlr(SCIP *scip, const char *name) void SCIPsetMessagehdlrLogfile(SCIP *scip, const char *filename) SCIP_Real SCIPgetConflictVarUb(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPtightenVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened) void SCIPmarkLimitChanged(SCIP *scip) int SCIPgetBoolarrayMinIdx(SCIP *scip, SCIP_BOOLARRAY *boolarray) SCIP_RETCODE SCIPincludeReader(SCIP *scip, const char *name, const char *desc, const char *extension, SCIP_DECL_READERCOPY((*readercopy)), SCIP_DECL_READERFREE((*readerfree)), SCIP_DECL_READERREAD((*readerread)), SCIP_DECL_READERWRITE((*readerwrite)), SCIP_READERDATA *readerdata) int SCIPgetNTotalVars(SCIP *scip) SCIP_Longint SCIPgetNPrimalLPIterations(SCIP *scip) SCIP_Longint SCIPgetNRootFirstLPIterations(SCIP *scip) SCIP_RETCODE SCIPbranchPseudo(SCIP *scip, SCIP_RESULT *result) SCIP_RETCODE SCIPpresolCons(SCIP *scip, SCIP_CONS *cons, int nrounds, int nnewfixedvars, int nnewaggrvars, int nnewchgvartypes, int nnewchgbds, int nnewholes, int nnewdelconss, int nnewaddconss, int nnewupgdconss, int nnewchgcoefs, int nnewchgsides, int *nfixedvars, int *naggrvars, int *nchgvartypes, int *nchgbds, int *naddholes, int *ndelconss, int *naddconss, int *nupgdconss, int *nchgcoefs, int *nchgsides, SCIP_RESULT *result) SCIP_Longint SCIPgetNPrimalLPs(SCIP *scip) SCIP_RETCODE SCIPresetConsAge(SCIP *scip, SCIP_CONS *cons) SCIP_Bool SCIPisSumRelEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_Real SCIPgetAvgInferenceScoreCurrentRun(SCIP *scip) SCIP_Bool SCIPisSumRelGE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_Real SCIPfeasFrac(SCIP *scip, SCIP_Real val) public methods for separators SCIP_RETCODE SCIPsetHeurCopy(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEURCOPY((*heurcopy))) public methods for primal heuristics SCIP_RETCODE SCIPendDive(SCIP *scip) SCIP_Real SCIPsumepsilon(SCIP *scip) SCIP_RETCODE SCIPfreeSol(SCIP *scip, SCIP_SOL **sol) common defines and data types used in all packages of SCIP SCIP_RETCODE SCIPsolve(SCIP *scip) SCIP_Real SCIPgetVarAvgInferencesCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir) SCIP_Real SCIPgetRowMinCoef(SCIP *scip, SCIP_ROW *row) SCIP_RETCODE SCIPincRealarrayVal(SCIP *scip, SCIP_REALARRAY *realarray, int idx, SCIP_Real incval) SCIP_VAR * SCIPfindVar(SCIP *scip, const char *name) SCIP_RETCODE SCIPaddVarVub(SCIP *scip, SCIP_VAR *var, SCIP_VAR *vubvar, SCIP_Real vubcoef, SCIP_Real vubconstant, SCIP_Bool *infeasible, int *nbdchgs) SCIP_RETCODE SCIPgetRealParam(SCIP *scip, const char *name, SCIP_Real *value) SCIP_RETCODE SCIPchgVarLbLazy(SCIP *scip, SCIP_VAR *var, SCIP_Real lazylb) SCIP_RETCODE SCIPsetHeurInitsol(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEURINITSOL((*heurinitsol))) SCIP_RETCODE SCIPcreateRealarray(SCIP *scip, SCIP_REALARRAY **realarray) SCIP_Real SCIPgetNodeDualbound(SCIP *scip, SCIP_NODE *node) int SCIPgetNLPBranchCands(SCIP *scip) SCIP_RETCODE SCIPincludeProp(SCIP *scip, const char *name, const char *desc, int priority, int freq, SCIP_Bool delay, SCIP_PROPTIMING timingmask, int presolpriority, int presolmaxrounds, SCIP_Bool presoldelay, SCIP_DECL_PROPCOPY((*propcopy)), SCIP_DECL_PROPFREE((*propfree)), SCIP_DECL_PROPINIT((*propinit)), SCIP_DECL_PROPEXIT((*propexit)), SCIP_DECL_PROPINITPRE((*propinitpre)), SCIP_DECL_PROPEXITPRE((*propexitpre)), SCIP_DECL_PROPINITSOL((*propinitsol)), SCIP_DECL_PROPEXITSOL((*propexitsol)), SCIP_DECL_PROPPRESOL((*proppresol)), SCIP_DECL_PROPEXEC((*propexec)), SCIP_DECL_PROPRESPROP((*propresprop)), SCIP_PROPDATA *propdata) SCIP_RETCODE SCIPsetObjlimit(SCIP *scip, SCIP_Real objlimit) SCIP_RETCODE SCIPreleaseRow(SCIP *scip, SCIP_ROW **row) type definitions for node selectors SCIP_RETCODE SCIPsetPropExitsol(SCIP *scip, SCIP_PROP *prop, SCIP_DECL_PROPEXITSOL((*propexitsol))) int SCIPgetIntarrayMaxIdx(SCIP *scip, SCIP_INTARRAY *intarray) SCIP_RETCODE SCIPdropEvent(SCIP *scip, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int filterpos) SCIP_Real SCIPgetLocalOrigEstimate(SCIP *scip) SCIP_RETCODE SCIPaddVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real addobj) int SCIPgetNFixedVars(SCIP *scip) SCIP_RETCODE SCIPcreateRow(SCIP *scip, SCIP_ROW **row, const char *name, int len, SCIP_COL **cols, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable) SCIP_RETCODE SCIPaddConflictRelaxedUb(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Real relaxedub) SCIP_RETCODE SCIPcreateClock(SCIP *scip, SCIP_CLOCK **clck) SCIP_RETCODE SCIPcaptureDialog(SCIP *scip, SCIP_DIALOG *dialog) SCIP_RETCODE SCIPseparateSolCutpool(SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_SOL *sol, SCIP_RESULT *result) SCIP_RETCODE SCIPgetLPBranchCands(SCIP *scip, SCIP_VAR ***lpcands, SCIP_Real **lpcandssol, SCIP_Real **lpcandsfrac, int *nlpcands, int *npriolpcands, int *nfracimplvars) SCIP_Real SCIPgetAvgLowerbound(SCIP *scip) SCIP_RETCODE SCIPevalExprtreeSol(SCIP *scip, SCIP_EXPRTREE *tree, SCIP_SOL *sol, SCIP_Real *val) void SCIPfreeParseVarsPolynomialData(SCIP *scip, SCIP_VAR ****monomialvars, SCIP_Real ***monomialexps, SCIP_Real **monomialcoefs, int **monomialnvars, int nmonomials) int SCIPgetNOrigContVars(SCIP *scip) SCIP_RETCODE SCIPprintDisplayLine(SCIP *scip, FILE *file, SCIP_VERBLEVEL verblevel, SCIP_Bool endline) SCIP_Real SCIPgetVarAvgInferenceScore(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPcreateRelaxSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur) SCIP_RETCODE SCIPsetEventhdlrCopy(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTCOPY((*eventcopy))) SCIP_RETCODE SCIPwriteCliqueGraph(SCIP *scip, const char *fname, SCIP_Bool writeimplications, SCIP_Bool writenodeweights) SCIP_RELAX ** SCIPgetRelaxs(SCIP *scip) SCIP_RETCODE SCIPsetConshdlrExit(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSEXIT((*consexit))) SCIP_RETCODE SCIPstartDiveNLP(SCIP *scip) SCIP_RETCODE SCIPsetConsInitial(SCIP *scip, SCIP_CONS *cons, SCIP_Bool initial) SCIP_RETCODE SCIPsetConflicthdlrExitsol(SCIP *scip, SCIP_CONFLICTHDLR *conflicthdlr, SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol))) SCIP_Real SCIPcalcChildEstimate(SCIP *scip, SCIP_VAR *var, SCIP_Real targetvalue) int SCIPgetBoolarrayMaxIdx(SCIP *scip, SCIP_BOOLARRAY *boolarray) SCIP_RETCODE SCIPsetPropPriority(SCIP *scip, SCIP_PROP *prop, int priority) SCIP_RETCODE SCIPaddRealParam(SCIP *scip, const char *name, const char *desc, SCIP_Real *valueptr, SCIP_Bool isadvanced, SCIP_Real defaultvalue, SCIP_Real minvalue, SCIP_Real maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata) public methods for user interface dialog SCIP_RETCODE SCIPchgRowLhsDive(SCIP *scip, SCIP_ROW *row, SCIP_Real newlhs) SCIP_Real SCIPfeasFloor(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPsetConsModifiable(SCIP *scip, SCIP_CONS *cons, SCIP_Bool modifiable) SCIP_RETCODE SCIPreallocBufferSize(SCIP *scip, void **ptr, int size) SCIP_Real SCIPgetRowActivity(SCIP *scip, SCIP_ROW *row) SCIP_RETCODE SCIPchgCharParam(SCIP *scip, SCIP_PARAM *param, char value) SCIP_RETCODE SCIPmarkRelaxSolInvalid(SCIP *scip) SCIP_Real SCIPgetObjNorm(SCIP *scip) SCIP_RETCODE SCIPaddVarToRow(SCIP *scip, SCIP_ROW *row, SCIP_VAR *var, SCIP_Real val) SCIP_RETCODE SCIPsetNodeselMemsavePriority(SCIP *scip, SCIP_NODESEL *nodesel, int priority) int SCIPgetSolRunnum(SCIP *scip, SCIP_SOL *sol) SCIP_RETCODE SCIPgetExternBranchCands(SCIP *scip, SCIP_VAR ***externcands, SCIP_Real **externcandssol, SCIP_Real **externcandsscore, int *nexterncands, int *nprioexterncands, int *nprioexternbins, int *nprioexternints, int *nprioexternimpls) SCIP_RETCODE SCIPsetPresolCopy(SCIP *scip, SCIP_PRESOL *presol, SCIP_DECL_PRESOLCOPY((*presolcopy))) SCIP_Real SCIPdualfeasFrac(SCIP *scip, SCIP_Real val) SCIP_RETCODE SCIPaddVar(SCIP *scip, SCIP_VAR *var) int SCIPgetRealarrayMinIdx(SCIP *scip, SCIP_REALARRAY *realarray) int SCIPgetNChildren(SCIP *scip) SCIP_Bool SCIPisLPSolBasic(SCIP *scip) SCIP_Real SCIPgetVarPseudocost(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir) SCIP_RETCODE SCIPgetNlRowFeasibility(SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *feasibility) SCIP_Bool SCIPisDualfeasGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPaddDelayedPoolCut(SCIP *scip, SCIP_ROW *row) SCIP_Real SCIPgetAvgPseudocostCount(SCIP *scip, SCIP_BRANCHDIR dir) SCIP_RETCODE SCIPfixVar(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_Bool *infeasible, SCIP_Bool *fixed) SCIP_Longint SCIPgetNConflictConssApplied(SCIP *scip) SCIP_RETCODE SCIPsetProbTrans(SCIP *scip, SCIP_DECL_PROBTRANS((*probtrans))) type definitions for constraints and constraint handlers SCIP_HEUR ** SCIPgetHeurs(SCIP *scip) SCIP_Real SCIPgetLPLooseObjval(SCIP *scip) SCIP_RETCODE SCIPlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup) public methods for propagators SCIP_RETCODE SCIPsetConshdlrResprop(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSRESPROP((*consresprop))) SCIP_Bool SCIPisConflictAnalysisApplicable(SCIP *scip) SCIP_Real SCIPcomputeVarLbLocal(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPinferBinvarProp(SCIP *scip, SCIP_VAR *var, SCIP_Bool fixedval, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool *infeasible, SCIP_Bool *tightened) SCIP_Bool SCIPisFeasFracIntegral(SCIP *scip, SCIP_Real val) int SCIPgetNImplications(SCIP *scip) SCIP_RETCODE SCIPaddSolFree(SCIP *scip, SCIP_SOL **sol, SCIP_Bool *stored) SCIP_RETCODE SCIPwriteVarName(SCIP *scip, FILE *file, SCIP_VAR *var, SCIP_Bool type) type definitions for specific NLP solver interfaces SCIP_Bool SCIPinDive(SCIP *scip) SCIP_RETCODE SCIPsetIntarrayVal(SCIP *scip, SCIP_INTARRAY *intarray, int idx, int val) SCIP_RETCODE SCIPsetBranchruleMaxbounddist(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_Real maxbounddist) SCIP_Bool SCIPhasNLPContinuousNonlinearity(SCIP *scip) SCIP_Real SCIPgetRealarrayVal(SCIP *scip, SCIP_REALARRAY *realarray, int idx) SCIP_RETCODE SCIPsetSolVals(SCIP *scip, SCIP_SOL *sol, int nvars, SCIP_VAR **vars, SCIP_Real *vals) SCIP_RETCODE SCIPsetConshdlrGetVars(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSGETVARS((*consgetvars))) type definitions for displaying runtime statistics SCIP_RETCODE SCIPwriteLP(SCIP *scip, const char *filename) SCIP_RETCODE SCIPsetRelaxSolValsSol(SCIP *scip, SCIP_SOL *sol) |