scip.h
Go to the documentation of this file.
27 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 209 * @note The SCIP default message handler is installed. Use the method SCIPsetMessagehdlr() to install your own 210 * message handler or SCIPsetMessagehdlrLogfile() and SCIPsetMessagehdlrQuiet() to write into a log 213 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 227 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 266 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and 269 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 293 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 324 /** returns whether the presolving process would be finished given no more presolving reductions are found in this 327 * Checks whether the number of presolving rounds is not exceeded and the presolving reductions found in the current 330 * @note if subsequent presolvers find more reductions, presolving might continue even if the method returns FALSE 331 * @note does not check whether infeasibility or unboundedness was already detected in presolving (which would result 412 /** installs the given message handler, such that all messages are passed to this handler. A messages handler can be 415 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 422 * @note The currently installed messages handler gets freed if this SCIP instance is its last user (w.r.t. capture/release). 427 SCIP_MESSAGEHDLR* messagehdlr /**< message handler to install, or NULL to suppress all output */ 461 /** prints a dialog message that requests user interaction or is a direct response to a user interactive command */ 513 /** copies plugins from sourcescip to targetscip; in case that a constraint handler which does not need constraints 514 * cannot be copied, valid will return FALSE. All plugins can declare that, if their copy process failed, the 518 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex. 522 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 540 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution 574 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex. 576 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 594 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution 608 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding 616 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex. 618 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 636 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution 650 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding 655 /** returns copy of the source variable; if there already is a copy of the source variable in the variable hash map, 656 * it is just returned as target variable; elsewise a new variable will be created and added to the target SCIP; this 659 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex. 661 * @note if a new variable was created, this variable will be added to the target-SCIP, but it is not captured 663 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 697 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding 699 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding 705 /** copies all active variables from source-SCIP and adds these variable to the target-SCIP; the mapping between these 706 * variables are stored in the variable hashmap, target-SCIP has to be in problem creation stage, fixed and aggregated 711 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex. 714 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 741 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding 743 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding 748 /** copies all original variables from source-SCIP and adds these variable to the target-SCIP; the mapping between these 749 * variables are stored in the variable hashmap, target-SCIP has to be in problem creation stage, fixed and aggregated 754 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex. 757 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 784 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding 786 SCIP_HASHMAP* consmap /**< a hashmap to store the mapping of source constraints to the corresponding 790 /** merges the histories of variables from a source SCIP into a target SCIP. The two data structures should point to 793 * @note the notion of source and target is inverted here; \p sourcescip usually denotes a copied SCIP instance, whereas 806 /** returns copy of the source constraint; if there already is a copy of the source constraint in the constraint hash 807 * map, it is just returned as target constraint; elsewise a new constraint will be created; this created constraint is 808 * added to the constraint hash map and returned as target constraint; the variable map is used to map the variables of 811 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution may 812 * be declared feasible even if it violates this particular constraint. This constellation should only be 813 * used, if no LP or pseudo solution can violate the constraint -- e.g. if a local constraint is redundant due 816 * @note The constraint is not added to the target SCIP. You can check whether a constraint is added by calling 817 * SCIPconsIsAdded(). (If you mix SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add 820 * @note The constraint is always captured, either during the creation of the copy or after finding the copy of the 823 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex. 826 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 863 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding 865 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding 867 const char* name, /**< name of constraint, or NULL if the name of the source constraint should be used */ 876 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup? */ 877 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even 884 * variables between the source and the target SCIP a hash map can be given; if the variable hash 885 * map is NULL or necessary variable mapping is missing, the required variables are created in the 886 * target-SCIP and added to the hash map, if not NULL; all variables which are created are added to 890 * @note the constraints are added to the target-SCIP but are not (user) captured in the target SCIP. (If you mix 891 * SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add explicitly and what is already 894 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex. 897 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 924 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding 926 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding 934 /** copies all original constraints from the source-SCIP and adds these to the target-SCIP; for mapping the 935 * variables between the source and the target SCIP a hash map can be given; if the variable hash 936 * map is NULL or necessary variable mapping is missing, the required variables are created in the 937 * target-SCIP and added to the hash map, if not NULL; all variables which are created are added to 941 * @note the constraints are added to the target-SCIP but are not (user) captured in the target SCIP. (If you mix 942 * SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add explicitly and what is already 945 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex. 948 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 975 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding 977 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding 988 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1009 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding 1017 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex. 1020 * @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 1063 * This function should be called for a targetscip in transformed stage. It can save time in presolving of the 1066 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex. 1069 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1103 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding 1113 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex. 1116 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1181 * @note all variables and constraints which are created in the target-SCIP are not (user) captured 1183 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex. 1187 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1217 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding 1221 SCIP_Bool enablepricing, /**< should pricing be enabled in copied SCIP instance? If TRUE, pricer 1229 /** copies source SCIP original problem to target SCIP; the copying process is done in the following order: 1236 * @note all variables and constraints which are created in the target-SCIP are not (user) captured 1238 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex. 1242 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1272 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding 1274 const char* suffix, /**< suffix which will be added to the names of the target SCIP, might be empty */ 1275 SCIP_Bool enablepricing, /**< should pricing be enabled in copied SCIP instance? If TRUE, pricer 1292 /** creates a SCIP_Bool parameter, sets it to its default value, and adds it to the parameter set 1294 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1311 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1328 /** creates a SCIP_Longint parameter, sets it to its default value, and adds it to the parameter set 1330 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1347 /** creates a SCIP_Real parameter, sets it to its default value, and adds it to the parameter set 1349 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1368 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1379 const char* allowedvalues, /**< array with possible parameter values, or NULL if not restricted */ 1384 /** creates a string(char*) parameter, sets it to its default value, and adds it to the parameter set 1386 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1394 char** valueptr, /**< pointer to store the current parameter value, or NULL; if not NULL then *valueptr should be NULL */ 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 1459 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1471 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1483 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1495 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1498 * @note: Be careful with this method! Some general settings, e.g., the time or node limit, should not be fixed because 1509 * @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 1554 /** checks the value of an existing SCIP_Bool parameter; issues a warning message if value was invalid 1556 * @return \ref SCIP_OKAY is returned if value is valid. Otherwise \ref SCIP_PARAMETERWRONGVAL is returned. 1567 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1579 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1591 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1603 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1613 /** checks parameter value according to the given feasible domain; issues a warning message if value was invalid 1615 * @return \ref SCIP_OKAY is returned if value is valid. Otherwise \ref SCIP_PARAMETERWRONGVAL is returned. 1626 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1638 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1650 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1662 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1672 /** checks parameter value according to the given feasible domain; issues a warning message if value was invalid 1674 * @return \ref SCIP_OKAY is returned if value is valid. Otherwise \ref SCIP_PARAMETERWRONGVAL is returned. 1685 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1697 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1707 /** checks parameter value according to the given feasible domain; issues a warning message if value was invalid 1709 * @return \ref SCIP_OKAY is returned if value is valid. Otherwise \ref SCIP_PARAMETERWRONGVAL is returned. 1720 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1731 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1747 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1762 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1773 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1791 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1801 /** sets parameters to deactivate separators and heuristics that use auxiliary SCIP instances; should be called for 1804 * @note only deactivates plugins which could cause recursion, some plugins which use sub-SCIPs stay activated 1806 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1822 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1839 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1856 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1896 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1903 * @note method has all reader callbacks as arguments and is thus changed every time a new callback is added 1913 SCIP_DECL_READERCOPY ((*readercopy)), /**< copy method of reader or NULL if you don't want to copy your plugin into sub-SCIPs */ 1920 /** creates a reader and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL. 1924 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1931 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeReader() instead 1945 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1956 SCIP_DECL_READERCOPY ((*readercopy)) /**< copy method of reader or NULL if you don't want to copy your plugin into sub-SCIPs */ 1961 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1977 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 1993 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2027 * To use the variable pricer for solving a problem, it first has to be activated with a call to SCIPactivatePricer(). 2030 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2037 * @note method has all pricer callbacks as arguments and is thus changed every time a new callback is added 2052 SCIP_DECL_PRICERCOPY ((*pricercopy)), /**< copy method of variable pricer or NULL if you don't want to copy your plugin into sub-SCIPs */ 2056 SCIP_DECL_PRICERINITSOL((*pricerinitsol)),/**< solving process initialization method of variable pricer */ 2057 SCIP_DECL_PRICEREXITSOL((*pricerexitsol)),/**< solving process deinitialization method of variable pricer */ 2058 SCIP_DECL_PRICERREDCOST((*pricerredcost)),/**< reduced cost pricing method of variable pricer for feasible LPs */ 2059 SCIP_DECL_PRICERFARKAS((*pricerfarkas)), /**< Farkas pricing method of variable pricer for infeasible LPs */ 2063 /** creates a variable pricer and includes it in SCIP with all non-fundamental callbacks set to NULL; 2064 * if needed, these can be added afterwards via setter functions SCIPsetPricerCopy(), SCIPsetPricerFree(), 2068 * To use the variable pricer for solving a problem, it first has to be activated with a call to SCIPactivatePricer(). 2071 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2078 * @note if you want to set all callbacks with a single method call, consider using SCIPincludePricer() instead 2092 SCIP_DECL_PRICERREDCOST((*pricerredcost)),/**< reduced cost pricing method of variable pricer for feasible LPs */ 2093 SCIP_DECL_PRICERFARKAS((*pricerfarkas)), /**< Farkas pricing method of variable pricer for infeasible LPs */ 2099 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2110 SCIP_DECL_PRICERCOPY ((*pricercopy)) /**< copy method of pricer or NULL if you don't want to copy your plugin into sub-SCIPs */ 2115 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2131 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2147 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2163 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2174 SCIP_DECL_PRICERINITSOL ((*pricerinitsol))/**< solving process initialization method of pricer */ 2179 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2190 SCIP_DECL_PRICEREXITSOL((*pricerexitsol)) /**< solving process deinitialization method of pricer */ 2200 /** returns the array of currently available variable pricers; active pricers are in the first slots of the array */ 2212 /** returns the number of currently active variable pricers, that are used in the LP solving loop */ 2227 * This method should be called during the problem creation stage for all pricers that are necessary to solve 2231 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2245 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2260 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2267 * @note method has all constraint handler callbacks as arguments and is thus changed every time a new 2279 int chckpriority, /**< priority of the constraint handler for checking feasibility (and propagation) */ 2280 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */ 2281 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */ 2282 int eagerfreq, /**< frequency for using all instead of only the useful constraints in separation, 2284 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */ 2285 SCIP_Bool delaysepa, /**< should separation method be delayed, if other separators found cuts? */ 2286 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */ 2287 SCIP_Bool needscons, /**< should the constraint handler be skipped, if no constraints are available? */ 2288 SCIP_PROPTIMING proptiming, /**< positions in the node solving loop where propagation method of constraint handlers should be executed */ 2289 SCIP_PRESOLTIMING presoltiming, /**< timing mask of the constraint handler's presolving method */ 2290 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */ 2294 SCIP_DECL_CONSINITPRE ((*consinitpre)), /**< presolving initialization method of constraint handler */ 2295 SCIP_DECL_CONSEXITPRE ((*consexitpre)), /**< presolving deinitialization method of constraint handler */ 2296 SCIP_DECL_CONSINITSOL ((*consinitsol)), /**< solving process initialization method of constraint handler */ 2297 SCIP_DECL_CONSEXITSOL ((*consexitsol)), /**< solving process deinitialization method of constraint handler */ 2299 SCIP_DECL_CONSTRANS ((*constrans)), /**< transform constraint data into data belonging to the transformed problem */ 2300 SCIP_DECL_CONSINITLP ((*consinitlp)), /**< initialize LP with relaxations of "initial" constraints */ 2302 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */ 2320 SCIP_DECL_CONSGETDIVEBDCHGS((*consgetdivebdchgs)), /**< constraint handler diving solution enforcement method */ 2324 /** creates a constraint handler and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL. 2325 * Optional callbacks can be set via specific setter functions, see SCIPsetConshdlrInit(), SCIPsetConshdlrExit(), 2326 * SCIPsetConshdlrCopy(), SCIPsetConshdlrFree(), SCIPsetConshdlrInitsol(), SCIPsetConshdlrExitsol(), 2327 * SCIPsetConshdlrInitpre(), SCIPsetConshdlrExitpre(), SCIPsetConshdlrPresol(), SCIPsetConshdlrDelete(), 2328 * SCIPsetConshdlrDelvars(), SCIPsetConshdlrInitlp(), SCIPsetConshdlrActive(), SCIPsetConshdlrDeactive(), 2329 * SCIPsetConshdlrEnable(), SCIPsetConshdlrDisable(), SCIPsetConshdlrResprop(), SCIPsetConshdlrTrans(), 2330 * SCIPsetConshdlrPrint(), SCIPsetConshdlrParse(), SCIPsetConshdlrGetVars(), SCIPsetConshdlrGetNVars(), and 2333 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2340 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeConshdlr() instead 2349 int chckpriority, /**< priority of the constraint handler for checking feasibility (and propagation) */ 2350 int eagerfreq, /**< frequency for using all instead of only the useful constraints in separation, 2352 SCIP_Bool needscons, /**< should the constraint handler be skipped, if no constraints are available? */ 2362 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2374 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */ 2375 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */ 2377 SCIP_Bool delaysepa /**< should separation method be delayed, if other separators found cuts? */ 2382 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2394 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */ 2395 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */ 2396 SCIP_PROPTIMING proptiming /**< positions in the node solving loop where propagation should be executed */ 2401 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2412 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */ 2418 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2434 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2450 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2466 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2477 SCIP_DECL_CONSINITSOL((*consinitsol)) /**< solving process initialization method of constraint handler */ 2482 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2493 SCIP_DECL_CONSEXITSOL ((*consexitsol))/**< solving process deinitialization method of constraint handler */ 2498 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2509 SCIP_DECL_CONSINITPRE((*consinitpre)) /**< preprocessing initialization method of constraint handler */ 2514 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2525 SCIP_DECL_CONSEXITPRE((*consexitpre)) /**< preprocessing deinitialization method of constraint handler */ 2530 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2542 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */ 2543 SCIP_PRESOLTIMING presoltiming /**< timing mask of the constraint handler's presolving method */ 2548 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2562 /** sets method of constraint handler to transform constraint data into data belonging to the transformed problem 2564 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2575 SCIP_DECL_CONSTRANS ((*constrans)) /**< transform constraint data into data belonging to the transformed problem */ 2578 /** sets method of constraint handler to initialize LP with relaxations of "initial" constraints 2580 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2591 SCIP_DECL_CONSINITLP ((*consinitlp)) /**< initialize LP with relaxations of "initial" constraints */ 2596 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2612 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2628 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2644 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2660 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2676 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2692 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2708 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2724 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2740 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2756 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 2767 SCIP_DECL_CONSGETDIVEBDCHGS((*consgetdivebdchgs)) /**< constraint handler diving solution enforcement method */ 2791 * @note method has all conflict handler callbacks as arguments and is thus changed every time a new 2802 SCIP_DECL_CONFLICTCOPY((*conflictcopy)), /**< copy method of conflict handler or NULL if you don't want to copy your plugin into sub-SCIPs */ 2806 SCIP_DECL_CONFLICTINITSOL((*conflictinitsol)),/**< solving process initialization method of conflict handler */ 2807 SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol)),/**< solving process deinitialization method of conflict handler */ 2808 SCIP_DECL_CONFLICTEXEC((*conflictexec)), /**< conflict processing method of conflict handler */ 2812 /** creates a conflict handler and includes it in SCIP with its most fundamental callbacks. All non-fundamental 2814 * Optional callbacks can be set via specific setter functions SCIPsetConflicthdlrCopy(), SCIPsetConflicthdlrFree(), 2818 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeConflicthdlr() instead 2827 SCIP_DECL_CONFLICTEXEC((*conflictexec)), /**< conflict processing method of conflict handler */ 2868 SCIP_DECL_CONFLICTINITSOL((*conflictinitsol))/**< solving process initialization method of conflict handler */ 2876 SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol))/**< solving process deinitialization method of conflict handler */ 2919 int maxrounds, /**< maximal number of presolving rounds the presolver participates in (-1: no limit) */ 2921 SCIP_DECL_PRESOLCOPY ((*presolcopy)), /**< copy method of presolver or NULL if you don't want to copy your plugin into sub-SCIPs */ 2922 SCIP_DECL_PRESOLFREE ((*presolfree)), /**< destructor of presolver to free user data (called when SCIP is exiting) */ 2923 SCIP_DECL_PRESOLINIT ((*presolinit)), /**< initialization method of presolver (called after problem was transformed) */ 2924 SCIP_DECL_PRESOLEXIT ((*presolexit)), /**< deinitialization method of presolver (called before transformed problem is freed) */ 2925 SCIP_DECL_PRESOLINITPRE((*presolinitpre)),/**< presolving initialization method of presolver (called when presolving is about to begin) */ 2926 SCIP_DECL_PRESOLEXITPRE((*presolexitpre)),/**< presolving deinitialization method of presolver (called after presolving has been finished) */ 2931 /** Creates a presolver and includes it in SCIP with its fundamental callback. All non-fundamental (or optional) 2932 * callbacks as, e.g., init and exit callbacks, will be set to NULL. Optional callbacks can be set via specific setter 2933 * functions. These are SCIPsetPresolCopy(), SCIPsetPresolFree(), SCIPsetPresolInit(), SCIPsetPresolExit(), 2936 * @note if you want to set all callbacks with a single method call, consider using SCIPincludePresol() instead 2945 int maxrounds, /**< maximal number of presolving rounds the presolver participates in (-1: no limit) */ 2956 SCIP_DECL_PRESOLCOPY ((*presolcopy)) /**< copy method of presolver or NULL if you don't want to copy your plugin into sub-SCIPs */ 2988 SCIP_DECL_PRESOLINITPRE ((*presolinitpre))/**< solving process initialization method of presolver */ 2995 SCIP_DECL_PRESOLEXITPRE ((*presolexitpre))/**< solving process deinitialization method of presolver */ 3027 * @note method has all relaxation handler callbacks as arguments and is thus changed every time a new 3037 int priority, /**< priority of the relaxation handler (negative: after LP, non-negative: before LP) */ 3039 SCIP_DECL_RELAXCOPY ((*relaxcopy)), /**< copy method of relaxation handler or NULL if you don't want to copy your plugin into sub-SCIPs */ 3043 SCIP_DECL_RELAXINITSOL((*relaxinitsol)), /**< solving process initialization method of relaxation handler */ 3044 SCIP_DECL_RELAXEXITSOL((*relaxexitsol)), /**< solving process deinitialization method of relaxation handler */ 3051 * Optional callbacks can be set via specific setter functions, see SCIPsetRelaxInit(), SCIPsetRelaxExit(), 3054 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeRelax() instead 3062 int priority, /**< priority of the relaxation handler (negative: after LP, non-negative: before LP) */ 3073 SCIP_DECL_RELAXCOPY ((*relaxcopy)) /**< copy method of relaxation handler or NULL if you don't want to copy your plugin into sub-SCIPs */ 3105 SCIP_DECL_RELAXINITSOL((*relaxinitsol)) /**< solving process initialization method of relaxation handler */ 3113 SCIP_DECL_RELAXEXITSOL((*relaxexitsol)) /**< solving process deinitialization method of relaxation handler */ 3157 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound compared 3161 SCIP_DECL_SEPACOPY ((*sepacopy)), /**< copy method of separator or NULL if you don't want to copy your plugin into sub-SCIPs */ 3165 SCIP_DECL_SEPAINITSOL ((*sepainitsol)), /**< solving process initialization method of separator */ 3166 SCIP_DECL_SEPAEXITSOL ((*sepaexitsol)), /**< solving process deinitialization method of separator */ 3168 SCIP_DECL_SEPAEXECSOL ((*sepaexecsol)), /**< arbitrary primal solution separation method of separator */ 3172 /** creates a separator and includes it in SCIP with its most fundamental callbacks. All non-fundamental 3174 * Optional callbacks can be set via specific setter functions, see SCIPsetSepaInit(), SCIPsetSepaFree(), 3177 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeSepa() instead 3187 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound compared 3192 SCIP_DECL_SEPAEXECSOL ((*sepaexecsol)), /**< arbitrary primal solution separation method of separator */ 3201 SCIP_DECL_SEPACOPY ((*sepacopy)) /**< copy method of separator or NULL if you don't want to copy your plugin into sub-SCIPs */ 3233 SCIP_DECL_SEPAINITSOL ((*sepainitsol)) /**< solving process initialization method of separator */ 3241 SCIP_DECL_SEPAEXITSOL ((*sepaexitsol)) /**< solving process deinitialization method of separator */ 3274 * callback is added in future releases; consider using SCIPincludePropBasic() and setter functions 3282 int priority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */ 3285 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagator should be executed */ 3286 int presolpriority, /**< presolving priority of the propagator (>= 0: before, < 0: after constraint handlers) */ 3287 int presolmaxrounds, /**< maximal number of presolving rounds the propagator participates in (-1: no limit) */ 3289 SCIP_DECL_PROPCOPY ((*propcopy)), /**< copy method of propagator or NULL if you don't want to copy your plugin into sub-SCIPs */ 3294 SCIP_DECL_PROPEXITPRE ((*propexitpre)), /**< presolving deinitialization method of propagator */ 3295 SCIP_DECL_PROPINITSOL ((*propinitsol)), /**< solving process initialization method of propagator */ 3296 SCIP_DECL_PROPEXITSOL ((*propexitsol)), /**< solving process deinitialization method of propagator */ 3303 /** creates a propagator and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL. 3304 * Optional callbacks can be set via specific setter functions, see SCIPsetPropInit(), SCIPsetPropExit(), 3308 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeProp() instead 3316 int priority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */ 3319 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagators should be executed */ 3329 SCIP_DECL_PROPCOPY ((*propcopy)) /**< copy method of propagator or NULL if you don't want to copy your plugin into sub-SCIPs */ 3361 SCIP_DECL_PROPINITSOL((*propinitsol)) /**< solving process initialization method of propagator */ 3369 SCIP_DECL_PROPEXITSOL ((*propexitsol)) /**< solving process deinitialization method of propagator */ 3377 SCIP_DECL_PROPINITPRE((*propinitpre)) /**< preprocessing initialization method of propagator */ 3385 SCIP_DECL_PROPEXITPRE((*propexitpre)) /**< preprocessing deinitialization method of propagator */ 3394 int presolpriority, /**< presolving priority of the propagator (>= 0: before, < 0: after constraint handlers) */ 3395 int presolmaxrounds, /**< maximal number of presolving rounds the propagator participates in (-1: no limit) */ 3446 * callback is added in future releases; consider using SCIPincludeHeurBasic() and setter functions 3449 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 3466 unsigned int timingmask, /**< positions in the node solving loop where heuristic should be executed; 3469 SCIP_DECL_HEURCOPY ((*heurcopy)), /**< copy method of primal heuristic or NULL if you don't want to copy your plugin into sub-SCIPs */ 3473 SCIP_DECL_HEURINITSOL ((*heurinitsol)), /**< solving process initialization method of primal heuristic */ 3474 SCIP_DECL_HEUREXITSOL ((*heurexitsol)), /**< solving process deinitialization method of primal heuristic */ 3482 * Optional callbacks can be set via specific setter functions, see SCIPsetHeurCopy(), SCIPsetHeurFree(), 3485 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeHeur() instead 3498 unsigned int timingmask, /**< positions in the node solving loop where heuristic should be executed; 3510 SCIP_DECL_HEURCOPY ((*heurcopy)) /**< copy method of primal heuristic or NULL if you don't want to copy your plugin into sub-SCIPs */ 3542 SCIP_DECL_HEURINITSOL ((*heurinitsol)) /**< solving process initialization method of primal heuristic */ 3550 SCIP_DECL_HEUREXITSOL ((*heurexitsol)) /**< solving process deinitialization method of primal heuristic */ 3583 * callback is added in future releases; consider using SCIPincludeComprBasic() and setter functions 3593 SCIP_DECL_COMPRCOPY ((*comprcopy)), /**< copy method of tree compression or NULL if you don't want to copy your plugin into sub-SCIPs */ 3597 SCIP_DECL_COMPRINITSOL ((*comprinitsol)), /**< solving process initialization method of tree compression */ 3598 SCIP_DECL_COMPREXITSOL ((*comprexitsol)), /**< solving process deinitialization method of tree compression */ 3606 * Optional callbacks can be set via specific setter functions, see SCIPsetComprCopy(), SCIPsetComprFree(), 3609 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeCompr() instead 3628 SCIP_DECL_COMPRCOPY ((*comprcopy)) /**< copy method of tree compression or NULL if you don't want to copy your plugin into sub-SCIPs */ 3660 SCIP_DECL_COMPRINITSOL ((*comprinitsol)) /**< solving process initialization method of tree compression */ 3668 SCIP_DECL_COMPREXITSOL ((*comprexitsol)) /**< solving process deinitialization method of tree compression */ 3697 /** create a diving set associated with a primal heuristic. The primal heuristic needs to be included 3698 * before this method can be called. The diveset is installed in the array of divesets of the heuristic 3701 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 3711 SCIP_DIVESET** diveset, /**< pointer to created diving heuristic settings, or NULL if not needed */ 3713 const char* name, /**< name for the diveset, or NULL if the name of the heuristic should be used */ 3716 SCIP_Real maxlpiterquot, /**< maximal fraction of diving LP iterations compared to node LP iterations */ 3717 SCIP_Real maxdiveubquot, /**< maximal quotient (curlowerbound - lowerbound)/(cutoffbound - lowerbound) 3719 SCIP_Real maxdiveavgquot, /**< maximal quotient (curlowerbound - lowerbound)/(avglowerbound - lowerbound) 3721 SCIP_Real maxdiveubquotnosol, /**< maximal UBQUOT when no solution was found yet (0.0: no limit) */ 3722 SCIP_Real maxdiveavgquotnosol,/**< maximal AVGQUOT when no solution was found yet (0.0: no limit) */ 3723 SCIP_Real lpresolvedomchgquot,/**< percentage of immediate domain changes during probing to trigger LP resolve */ 3724 int lpsolvefreq, /**< LP solve frequency for (0: only if enough domain reductions are found by propagation)*/ 3727 SCIP_Bool onlylpbranchcands, /**< should only LP branching candidates be considered instead of the slower but 3729 SCIP_Bool specificsos1score, /**< should SOS1 variables be scored by the diving heuristics specific score function; 3731 SCIP_DECL_DIVESETGETSCORE((*divesetgetscore)) /**< method for candidate score and rounding direction */ 3737 * @note method has all event handler callbacks as arguments and is thus changed every time a new 3738 * callback is added in future releases; consider using SCIPincludeEventhdlrBasic() and setter functions 3746 SCIP_DECL_EVENTCOPY ((*eventcopy)), /**< copy method of event handler or NULL if you don't want to copy your plugin into sub-SCIPs */ 3750 SCIP_DECL_EVENTINITSOL((*eventinitsol)), /**< solving process initialization method of event handler */ 3751 SCIP_DECL_EVENTEXITSOL((*eventexitsol)), /**< solving process deinitialization method of event handler */ 3757 /** creates an event handler and includes it in SCIP with all its non-fundamental callbacks set 3759 * SCIPsetEventhdlrCopy(), SCIPsetEventhdlrFree(), SCIPsetEventhdlrInit(), SCIPsetEventhdlrExit(), 3762 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeEventhdlr() instead 3811 SCIP_DECL_EVENTINITSOL((*eventinitsol)) /**< solving process initialization callback of event handler */ 3819 SCIP_DECL_EVENTEXITSOL((*eventexitsol)) /**< solving process deinitialization callback of event handler */ 3851 * @note method has all node selector callbacks as arguments and is thus changed every time a new 3852 * callback is added in future releases; consider using SCIPincludeNodeselBasic() and setter functions 3862 SCIP_DECL_NODESELCOPY ((*nodeselcopy)), /**< copy method of node selector or NULL if you don't want to copy your plugin into sub-SCIPs */ 3866 SCIP_DECL_NODESELINITSOL((*nodeselinitsol)),/**< solving process initialization method of node selector */ 3867 SCIP_DECL_NODESELEXITSOL((*nodeselexitsol)),/**< solving process deinitialization method of node selector */ 3873 /** Creates a node selector and includes it in SCIP with its most fundamental callbacks. All non-fundamental 3875 * Optional callbacks can be set via specific setter functions, see SCIPsetNodeselCopy(), SCIPsetNodeselFree(), 3876 * SCIPsetNodeselInit(), SCIPsetNodeselExit(), SCIPsetNodeselInitsol(), and SCIPsetNodeselExitsol() 3878 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeNodesel() instead 3898 SCIP_DECL_NODESELCOPY ((*nodeselcopy)) /**< copy method of node selector or NULL if you don't want to copy your plugin into sub-SCIPs */ 3930 SCIP_DECL_NODESELINITSOL ((*nodeselinitsol))/**< solving process initialization method of node selector */ 3938 SCIP_DECL_NODESELEXITSOL ((*nodeselexitsol))/**< solving process deinitialization method of node selector */ 3984 * @note method has all branching rule callbacks as arguments and is thus changed every time a new 3985 * callback is added in future releases; consider using SCIPincludeBranchruleBasic() and setter functions 3994 int maxdepth, /**< maximal depth level, up to which this branching rule should be used (or -1) */ 3995 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound 3998 SCIP_DECL_BRANCHCOPY ((*branchcopy)), /**< copy method of branching rule or NULL if you don't want to copy your plugin into sub-SCIPs */ 4002 SCIP_DECL_BRANCHINITSOL((*branchinitsol)),/**< solving process initialization method of branching rule */ 4003 SCIP_DECL_BRANCHEXITSOL((*branchexitsol)),/**< solving process deinitialization method of branching rule */ 4004 SCIP_DECL_BRANCHEXECLP((*branchexeclp)), /**< branching execution method for fractional LP solutions */ 4005 SCIP_DECL_BRANCHEXECEXT((*branchexecext)),/**< branching execution method for external candidates */ 4006 SCIP_DECL_BRANCHEXECPS((*branchexecps)), /**< branching execution method for not completely fixed pseudo solutions */ 4010 /** creates a branching rule and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL. 4011 * Optional callbacks can be set via specific setter functions, see SCIPsetBranchruleInit(), SCIPsetBranchruleExit(), 4012 * SCIPsetBranchruleCopy(), SCIPsetBranchruleFree(), SCIPsetBranchruleInitsol(), SCIPsetBranchruleExitsol(), 4015 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeBranchrule() instead 4024 int maxdepth, /**< maximal depth level, up to which this branching rule should be used (or -1) */ 4025 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound 4036 SCIP_DECL_BRANCHCOPY ((*branchcopy)) /**< copy method of branching rule or NULL if you don't want to copy your plugin into sub-SCIPs */ 4068 SCIP_DECL_BRANCHINITSOL((*branchinitsol)) /**< solving process initialization method of branching rule */ 4076 SCIP_DECL_BRANCHEXITSOL((*branchexitsol)) /**< solving process deinitialization method of branching rule */ 4084 SCIP_DECL_BRANCHEXECLP((*branchexeclp)) /**< branching execution method for fractional LP solutions */ 4092 SCIP_DECL_BRANCHEXECEXT((*branchexecext)) /**< branching execution method for external candidates */ 4100 SCIP_DECL_BRANCHEXECPS((*branchexecps)) /**< branching execution method for not completely fixed pseudo solutions */ 4130 /** sets maximal depth level, up to which this branching rule should be used (-1 for no limit) */ 4138 /** sets maximal relative distance from current node's dual bound to primal bound for applying branching rule */ 4154 SCIP_DECL_DISPCOPY ((*dispcopy)), /**< copy method of display column or NULL if you don't want to copy your plugin into sub-SCIPs */ 4158 SCIP_DECL_DISPINITSOL ((*dispinitsol)), /**< solving process initialization method of display column */ 4159 SCIP_DECL_DISPEXITSOL ((*dispexitsol)), /**< solving process deinitialization method of display column */ 4165 SCIP_Bool stripline /**< should the column be separated with a line from its right neighbor? */ 4187 /** automatically selects display columns for being shown w.r.t. the display width parameter */ 4280 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 4287 SCIP_DECL_DIALOGCOPY ((*dialogcopy)), /**< copy method of dialog or NULL if you don't want to copy your plugin into sub-SCIPs */ 4309 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4320 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4329 /** makes given dialog the root dialog of SCIP's interactive user shell; captures dialog and releases former root dialog 4331 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4351 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4363 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4372 /** adds a single line of input to the command history which can be accessed with the cursor keys 4374 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4385 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4392 * @post After calling this method \SCIP reaches one of the following stages depending on if and when the 4395 * - \ref SCIP_STAGE_TRANSFORMED if the interactive shell was closed after the problem was transformed 4418 /** creates empty problem and initializes all solving data structures (the objective sense is set to MINIMIZE) 4419 * If the problem type requires the use of variable pricers, these pricers should be added to the problem with calls 4420 * to SCIPactivatePricer(). These pricers are automatically deactivated, when the problem is freed. 4422 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4443 SCIP_DECL_PROBTRANS ((*probtrans)), /**< creates user data of transformed problem by transforming original user data */ 4445 SCIP_DECL_PROBINITSOL ((*probinitsol)), /**< solving process initialization method of transformed data */ 4446 SCIP_DECL_PROBEXITSOL ((*probexitsol)), /**< solving process deinitialization method of transformed data */ 4447 SCIP_DECL_PROBCOPY ((*probcopy)), /**< copies user data if you want to copy it to a subscip, or NULL */ 4451 /** creates empty problem and initializes all solving data structures (the objective sense is set to MINIMIZE) 4452 * all callback methods will be set to NULL and can be set afterwards, if needed, via SCIPsetProbDelorig(), 4455 * If the problem type requires the use of variable pricers, these pricers should be added to the problem with calls 4456 * to SCIPactivatePricer(). These pricers are automatically deactivated, when the problem is freed. 4458 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4482 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4493 /** sets callback to create user data of transformed problem by transforming original user data 4495 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4504 SCIP_DECL_PROBTRANS ((*probtrans)) /**< creates user data of transformed problem by transforming original user data */ 4509 * @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 4532 SCIP_DECL_PROBINITSOL ((*probinitsol)) /**< solving process initialization method of transformed data */ 4537 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4546 SCIP_DECL_PROBEXITSOL ((*probexitsol)) /**< solving process deinitialization method of transformed data */ 4551 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4560 SCIP_DECL_PROBCOPY ((*probcopy)) /**< copies user data if you want to copy it to a subscip, or NULL */ 4565 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4593 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4621 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4635 * @note If you want the write all constraints (including the once which are redundant for example), you need to set 4649 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4672 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4683 SCIP_Bool permuteconss, /**< should the list of constraints in each constraint handler be permuted? */ 4715 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4763 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4811 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4825 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4837 /** adds offset of objective function to original problem and to all existing solution in original space 4839 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4931 /** sets limit on objective function, such that only solutions better than this limit are accepted 4933 * @note SCIP will only look for solutions with a strictly better objective value, thus, e.g., prune 4935 * However, SCIP will also collect solutions with objective value worse than the objective limit and 4937 * @note If SCIP can prove that there exists no solution with a strictly better objective value, the solving status 4939 * The only exception is that by chance, SCIP found a solution with the same objective value and thus 4942 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 4983 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref 5016 /** returns the Euclidean norm of the objective function vector (available only for transformed problem) 5038 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 5058 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 5072 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 5089 SCIP_Bool* deleted /**< pointer to store whether variable was successfully marked to be deleted */ 5092 /** gets variables of the problem along with the numbers of different variable types; data may become invalid after 5095 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 5110 * @note Variables in the vars array are ordered: binaries first, then integers, implicit integers and continuous last. 5119 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */ 5139 * @warning If your are using the methods which add or change bound of variables (e.g., SCIPchgVarType(), SCIPfixVar(), 5140 * SCIPaggregateVars(), and SCIPmultiaggregateVar()), it can happen that the internal variable array (which is 5141 * accessed via this method) gets resized and/or resorted. This can invalid the data pointer which is returned 5144 * @note Variables in the array are ordered: binaries first, then integers, implicit integers and continuous last. 5258 * @note In case of the original problem the number of variables is counted. In case of the transformed problem the 5321 /** gets variables of the original problem along with the numbers of different variable types; data may become invalid 5324 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 5348 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */ 5517 /** gets variables of the original or transformed problem along with the numbers of different variable types; 5519 * data may become invalid after calls to SCIPchgVarType(), SCIPfixVar(), SCIPaggregateVars(), and 5522 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 5539 SCIP_SOL* sol, /**< primal solution that selects the problem space, NULL for current solution */ 5544 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */ 5572 /** returns TRUE iff all potential variables exist in the problem, and FALSE, if there may be additional variables, 5595 /** adds constraint to the problem; if constraint is only valid locally, it is added to the local subproblem of the 5597 * if a local constraint is added at the root node, it is automatically upgraded into a global constraint 5599 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 5618 /** globally removes constraint from all subproblems; removes constraint from the constraint set change data of the 5621 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 5737 * @warning If your are using the method SCIPaddCons(), it can happen that the internal constraint array (which is 5738 * accessed via this method) gets resized. This can invalid the pointer which is returned by this method. 5791 /** computes the number of check constraint in the current node (loop over all constraint handler and cumulates the 5822 /** adds constraint to the given node (and all of its subnodes), even if it is a global constraint; 5823 * It is sometimes desirable to add the constraint to a more local node (i.e., a node of larger depth) even if 5824 * the constraint is also valid higher in the tree, for example, if one wants to produce a constraint which is 5826 * In this case, one should pass the more global node where the constraint is valid as "validnode". 5827 * Note that the same constraint cannot be added twice to the branching tree with different "validnode" parameters. 5828 * If the constraint is valid at the same node as it is inserted (the usual case), one should pass NULL as "validnode". 5829 * If the "validnode" is the root node, it is automatically upgraded into a global constraint, but still only added to 5830 * the given node. If a local constraint is added to the root node, it is added to the global problem instead. 5832 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 5849 /** adds constraint locally to the current node (and all of its subnodes), even if it is a global constraint; 5850 * It is sometimes desirable to add the constraint to a more local node (i.e., a node of larger depth) even if 5851 * the constraint is also valid higher in the tree, for example, if one wants to produce a constraint which is 5854 * If the constraint is valid at the same node as it is inserted (the usual case), one should pass NULL as "validnode". 5855 * If the "validnode" is the root node, it is automatically upgraded into a global constraint, but still only added to 5856 * the given node. If a local constraint is added to the root node, it is added to the global problem instead. 5858 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 5867 * @note The same constraint cannot be added twice to the branching tree with different "validnode" parameters. This is 5868 * the case due internal data structures and performance issues. In such a case you should try to realize your 5869 * issue using the method SCIPdisableCons() and SCIPenableCons() and control these via the event system of SCIP. 5878 /** disables constraint's separation, enforcing, and propagation capabilities at the given node (and all subnodes); 5879 * if the method is called at the root node, the constraint is globally deleted from the problem; 5880 * the constraint deletion is being remembered at the given node, s.t. after leaving the node's subtree, the constraint 5881 * is automatically enabled again, and after entering the node's subtree, it is automatically disabled; 5882 * this may improve performance because redundant checks on this constraint are avoided, but it consumes memory; 5885 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 5901 /** disables constraint's separation, enforcing, and propagation capabilities at the current node (and all subnodes); 5902 * if the method is called during problem modification or at the root node, the constraint is globally deleted from 5904 * the constraint deletion is being remembered at the current node, s.t. after leaving the current subtree, the 5905 * constraint is automatically enabled again, and after reentering the current node's subtree, it is automatically 5907 * this may improve performance because redundant checks on this constraint are avoided, but it consumes memory; 5910 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 5928 * @return estimate of best primal solution w.r.t. original problem contained in current subtree 5938 /** gets estimate of best primal solution w.r.t. transformed problem contained in current subtree 5940 * @return estimate of best primal solution w.r.t. transformed problem contained in current subtree 6000 /** if given value is tighter (larger for minimization, smaller for maximization) than the current node's dual bound (in 6003 * @note the given new bound has to be a dual bound, i.e., it has to be valid for the original problem. 6005 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6020 /** if given value is larger than the current node's lower bound (in transformed problem), sets the current node's 6023 * @note the given new bound has to be a lower bound, i.e., it has to be valid for the transformed problem. 6025 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6039 /** if given value is tighter (larger for minimization, smaller for maximization) than the node's dual bound, 6042 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6055 /** if given value is larger than the node's lower bound (in transformed problem), sets the node's lower bound 6058 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6073 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6100 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6117 * @post When calling this method in the \ref SCIP_STAGE_PROBLEM stage, the \SCIP stage is changed to \ref 6129 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6140 * - \ref SCIP_STAGE_PRESOLVED if the presolving process was finished and did not solve the problem 6152 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6163 * @post After calling this method \SCIP reaches one of the following stages depending on if and when the solution 6177 /** frees branch and bound tree and all solution process data; statistics, presolving data and transformed problem is 6180 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6192 * @post If this method is called in \SCIP stage \ref SCIP_STAGE_INIT or \ref SCIP_STAGE_PROBLEM, the stage of 6203 /** frees all solution process data including presolving and transformed problem, only original problem is kept 6205 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6228 /** informs \SCIP that the solving process should be interrupted as soon as possible (e.g., after the current node has 6231 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6254 /** informs SCIP that the solving process should be restarted as soon as possible (e.g., after the current node has 6257 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6275 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6311 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6327 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6351 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6398 /** creates and captures problem variable; if variable is of integral type, fractional bounds are automatically rounded; 6399 * an integer variable with bounds zero and one is automatically converted into a binary variable; 6401 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will 6402 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the 6403 * original objective function value of variables created during the solving process has to be multiplied by 6406 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6418 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar() 6432 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data, or NULL */ 6433 SCIP_DECL_VARDELTRANS ((*vardeltrans)), /**< frees user data of transformed variable, or NULL */ 6438 /** creates and captures problem variable with optional callbacks and variable data set to NULL, which can be set 6440 * SCIPvarSetDeltransData(), SCIPvarSetCopy(), and SCIPvarSetData(); sets variable flags initial=TRUE 6441 * and removable = FALSE, which can be adjusted by using SCIPvarSetInitial() and SCIPvarSetRemovable(), resp.; 6443 * an integer variable with bounds zero and one is automatically converted into a binary variable; 6445 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will 6446 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the 6447 * original objective function value of variables created during the solving process has to be multiplied by 6450 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6462 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar() 6477 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6502 /** print the given list of variables to output stream separated by the given delimiter character; 6504 * i. e. the variables x1, x2, ..., xn with given delimiter ',' are written as: <x1>, <x2>, ..., <xn>; 6508 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6542 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6576 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6607 /** parses variable information (in cip format) out of a string; if the parsing process was successful a variable is 6608 * created and captured; if variable is of integral type, fractional bounds are automatically rounded; an integer 6611 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6632 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data */ 6639 /** parses the given string for a variable name and stores the variable in the corresponding pointer if such a variable 6642 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6662 /** parse the given string as variable list (here ',' is the delimiter)) (<x1>, <x2>, ..., <xn>) (see 6665 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6677 * @note The pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist. 6679 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens 6680 * except that the required size is stored in the corresponding integer; the reason for this approach is that we 6681 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP 6697 /** parse the given string as linear sum of variables and coefficients (c1 <x1> + c2 <x2> + ... + cn <xn>) 6700 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6712 * @note The pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist. 6714 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens 6715 * except that the required size is stored in the corresponding integer; the reason for this approach is that we 6716 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP 6737 * monomialcoefs, monomialnvars, *nmonomials) short after SCIPparseVarsPolynomial to free all the 6738 * allocated memory again. Do not keep the arrays created by SCIPparseVarsPolynomial around, since 6741 * Parsing is stopped at the end of string (indicated by the \\0-character) or when no more monomials 6744 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6771 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6795 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6817 /** decreases usage counter of variable, if the usage pointer reaches zero the variable gets freed 6819 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6846 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6860 /** gets and captures transformed variable of a given variable; if the variable is not yet transformed, 6863 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6884 * if a variable of the array is not yet transformed, a new transformed variable for this variable is created; 6887 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6911 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6936 * it is possible to call this method with vars == transvars, but remember that variables that are not 6939 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6963 /** gets negated variable x' = lb + ub - x of variable x; negated variable is created, if not yet existing 6965 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 6989 /** gets negated variables x' = lb + ub - x of variables x; negated variables are created, if not yet existing; 6990 * in difference to \ref SCIPcreateVar, the negated variable must not be released (unless captured explicitly) 6992 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7017 /** gets a binary variable that is equal to the given binary variable, and that is either active, fixed, or 7020 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7040 SCIP_Bool* negated /**< pointer to store whether the negation of an active variable was returned */ 7043 /** gets binary variables that are equal to the given binary variables, and which are either active, fixed, or 7046 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7067 SCIP_Bool* negated /**< array to store whether the negation of an active variable was returned */ 7070 /** flattens aggregation graph of multi-aggregated variable in order to avoid exponential recursion later on 7072 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7090 /** Transforms a given linear sum of variables, that is a_1*x_1 + ... + a_n*x_n + c into a corresponding linear sum of 7093 * If the number of needed active variables is greater than the available slots in the variable array, nothing happens 7094 * except that the required size is stored in the corresponding variable (requiredsize). Otherwise, the active variable 7097 * The reason for this approach is that we cannot reallocate memory, since we do not know how the memory has been 7100 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7115 * @note The resulting linear sum is stored into the given variable array, scalar array, and constant. That means the 7118 * @note That method can be used to convert a single variables into variable space of active variables. Therefore call 7135 SCIP_Real* constant, /**< pointer to constant c in linear sum a_1*x_1 + ... + a_n*x_n + c which 7140 SCIP_Bool mergemultiples /**< should multiple occurrences of a var be replaced by a single coeff? */ 7144 * multi-aggregated variable, scalar and constant; if the variable resolves to a fixed variable, 7145 * "scalar" will be 0.0 and the value of the sum will be stored in "constant"; a multi-aggregation 7147 * is treated like an aggregation; if the multi-aggregation constant is infinite, "scalar" will be 0.0 7149 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7172 /** return for given variables all their active counterparts; all active variables will be pairwise different 7173 * @note It does not hold that the first output variable is the active variable for the first input variable. 7175 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7260 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7277 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7290 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation; 7295 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7310 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation; 7313 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7329 * in the given primal solution; the relaxation solution can be filled by the relaxation hanlders 7332 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7360 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7374 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7415 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7422 * @note if propagation is enabled, strong branching is not done directly on the LP, but probing nodes are created 7428 SCIP_Bool enablepropagation /**< should propagation be done before solving the strong branching LP? */ 7433 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7447 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7461 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL; 7465 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */ 7467 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an 7477 * Before calling this method, the strong branching mode must have been activated by calling SCIPstartStrongbranch(); 7478 * after strong branching was done for all candidate variables, the strong branching mode must be ended by 7479 * SCIPendStrongbranch(). Since this method applies domain propagation before strongbranching, propagation has to be be 7482 * Before solving the strong branching LP, domain propagation can be performed. The number of propagation rounds 7485 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7492 * @warning When using this method, LP banching candidates and solution values must be copied beforehand, because 7506 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL; 7510 SCIP_Longint* ndomredsdown, /**< pointer to store the number of domain reductions down, or NULL */ 7512 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */ 7514 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an 7524 /** gets strong branching information on column variable x with integral LP solution value (val); that is, the down branch 7527 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7534 * @note If the integral LP solution value is the lower or upper bound of the variable, the corresponding branch will be 7544 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL; 7548 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */ 7550 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an 7560 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7575 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL; 7579 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */ 7591 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7606 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL; 7610 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */ 7620 /** gets strong branching information on COLUMN variable of the last SCIPgetVarStrongbranch() call; 7621 * returns values of SCIP_INVALID, if strong branching was not yet called on the given variable; 7622 * keep in mind, that the returned old values may have nothing to do with the current LP solution 7624 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7637 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL; 7641 SCIP_Real* solval, /**< stores LP solution value of variable at last strong branching call, or NULL */ 7645 /** gets node number of the last node in current branch and bound run, where strong branching was used on the 7648 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7669 /** if strong branching was already applied on the variable at the current node, returns the number of LPs solved after 7673 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7696 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7719 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7743 /** locks rounding of variable with respect to the lock status of the constraint and its negation; 7744 * this method should be called whenever the lock status of a variable in a constraint changes, for example if 7745 * the coefficient of the variable changed its sign or if the left or right hand sides of the constraint were 7748 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7771 /** unlocks rounding of variable with respect to the lock status of the constraint and its negation; 7772 * this method should be called whenever the lock status of a variable in a constraint changes, for example if 7773 * the coefficient of the variable changed its sign or if the left or right hand sides of the constraint were 7776 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7801 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7818 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7833 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) lower bound value; 7836 * @return adjusted lower bound for the given variable; the bound of the variable is not changed 7859 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) upper bound value; 7862 * @return adjusted upper bound for the given variable; the bound of the variable is not changed 7885 /** depending on SCIP's stage, changes lower bound of variable in the problem, in preprocessing, or in current node; 7886 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such 7889 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via 7892 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7901 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable. 7910 /** depending on SCIP's stage, changes upper bound of variable in the problem, in preprocessing, or in current node; 7911 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such 7914 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via 7917 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7926 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable. 7935 /** changes lower bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any 7936 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching 7939 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7952 /** changes upper bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any 7953 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching 7956 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7969 /** changes global lower bound of variable; if possible, adjust bound to integral value; also tightens the local bound, 7972 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via 7975 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 7984 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable. 7993 /** changes global upper bound of variable; if possible, adjust bound to integral value; also tightens the local bound, 7996 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via 7999 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8008 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable. 8017 /** changes lazy lower bound of the variable, this is only possible if the variable is not in the LP yet 8019 * lazy bounds are bounds, that are enforced by constraints and the objective function; hence, these bounds do not need 8022 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8032 * @note lazy bounds are useful for branch-and-price since the corresponding variable bounds are not part of the LP 8041 /** changes lazy upper bound of the variable, this is only possible if the variable is not in the LP yet 8043 * lazy bounds are bounds, that are enforced by constraints and the objective function; hence, these bounds do not need 8046 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8056 * @note lazy bounds are useful for branch-and-price since the corresponding variable bounds are not part of the LP 8065 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter 8066 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value; 8067 * doesn't store any inference information in the bound change, such that in conflict analysis, this change 8070 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via 8073 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8081 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable. 8093 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter 8094 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value; 8095 * doesn't store any inference information in the bound change, such that in conflict analysis, this change 8098 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via 8101 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8109 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable. 8121 /** fixes variable in preprocessing or in the current node, if the new bound is tighter (w.r.t. bound strengthening 8122 * epsilon) than the current bound; if possible, adjusts bound to integral value; the given inference constraint is 8123 * stored, such that the conflict analysis is able to find out the reason for the deduction of the bound change 8125 * @note In presolving stage when not in probing mode the variable will be fixed directly, otherwise this method 8126 * changes first the lowerbound by calling SCIPinferVarLbCons and second the upperbound by calling 8129 * @note If SCIP is in presolving stage, it can happen that the internal variable array (which get be accessed via 8132 * @note During presolving, an integer variable which bound changes to {0,1} is upgraded to a binary variable. 8146 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter 8147 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value; 8148 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason 8151 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via 8154 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8162 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable. 8176 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter 8177 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value; 8178 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason 8181 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via 8184 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8192 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable. 8206 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node; 8207 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason for the 8210 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8226 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */ 8229 /** fixes variable in preprocessing or in the current node, if the new bound is tighter (w.r.t. bound strengthening 8230 * epsilon) than the current bound; if possible, adjusts bound to integral value; the given inference constraint is 8231 * stored, such that the conflict analysis is able to find out the reason for the deduction of the bound change 8233 * @note In presolving stage when not in probing mode the variable will be fixed directly, otherwise this method 8234 * changes first the lowerbound by calling SCIPinferVarLbProp and second the upperbound by calling 8237 * @note If SCIP is in presolving stage, it can happen that the internal variable array (which get be accessed via 8240 * @note During presolving, an integer variable which bound changes to {0,1} is upgraded to a binary variable. 8254 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter 8255 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value; 8256 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason 8259 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via 8262 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8270 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable. 8284 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter 8285 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value; 8286 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason 8289 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via 8292 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8300 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable. 8314 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node; 8315 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason for the 8318 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8335 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */ 8338 /** changes global lower bound of variable in preprocessing or in the current node, if the new bound is tighter 8339 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value; 8342 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via 8345 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8354 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable. 8366 /** changes global upper bound of variable in preprocessing or in the current node, if the new bound is tighter 8367 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value; 8370 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via 8373 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8382 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable. 8394 /** for a multi-aggregated variable, returns the global lower bound computed by adding the global bounds from all aggregation variables 8396 * 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 8397 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbGlobal. 8399 * @return the global lower bound computed by adding the global bounds from all aggregation variables 8407 /** for a multi-aggregated variable, returns the global upper bound computed by adding the global bounds from all aggregation variables 8409 * 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 8410 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbGlobal. 8412 * @return the global upper bound computed by adding the global bounds from all aggregation variables 8420 /** for a multi-aggregated variable, returns the local lower bound computed by adding the local bounds from all aggregation variables 8422 * 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 8423 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbLocal. 8425 * @return the local lower bound computed by adding the global bounds from all aggregation variables 8433 /** for a multi-aggregated variable, returns the local upper bound computed by adding the local bounds from all aggregation variables 8435 * 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 8436 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbLocal. 8438 * @return the local upper bound computed by adding the global bounds from all aggregation variables 8446 /** for a multi-aggregated variable, gives the global lower bound computed by adding the global bounds from all 8447 * aggregation variables, this global bound may be tighter than the one given by SCIPvarGetLbGlobal, since the latter is 8458 /** for a multi-aggregated variable, gives the global upper bound computed by adding the global bounds from all 8459 * aggregation variables, this upper bound may be tighter than the one given by SCIPvarGetUbGlobal, since the latter is 8470 /** for a multi-aggregated variable, gives the local lower bound computed by adding the local bounds from all 8471 * aggregation variables, this lower bound may be tighter than the one given by SCIPvarGetLbLocal, since the latter is 8482 /** for a multi-aggregated variable, gives the local upper bound computed by adding the local bounds from all 8483 * aggregation variables, this upper bound may be tighter than the one given by SCIPvarGetUbLocal, since the latter is 8496 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and 8500 #define SCIPcomputeVarLbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrLbGlobal(scip, var) : SCIPvarGetLbGlobal(var)) 8501 #define SCIPcomputeVarUbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrUbGlobal(scip, var) : SCIPvarGetUbGlobal(var)) 8502 #define SCIPcomputeVarLbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrLbLocal(scip, var) : SCIPvarGetLbLocal(var)) 8503 #define SCIPcomputeVarUbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrUbLocal(scip, var) : SCIPvarGetUbLocal(var)) 8507 /** returns solution value and index of variable lower bound that is closest to the variable's value in the given primal 8508 * solution or current LP solution if no primal solution is given; returns an index of -1 if no variable lower bound is 8511 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8525 /** returns solution value and index of variable upper bound that is closest to the variable's value in the given primal solution; 8526 * or current LP solution if no primal solution is given; returns an index of -1 if no variable upper bound is available 8528 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8542 /** informs variable x about a globally valid variable lower bound x >= b*z + d with integer variable z; 8548 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8568 /** informs variable x about a globally valid variable upper bound x <= b*z + d with integer variable z; 8574 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8593 /** informs binary variable x about a globally valid implication: x == 0 or x == 1 ==> y <= b or y >= b; 8596 * if the variable is already fixed to the given value, the implication is performed immediately; 8599 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8612 SCIP_Bool varfixing, /**< FALSE if y should be added in implications for x == 0, TRUE for x == 1 */ 8621 /** adds a clique information to SCIP, stating that at most one of the given binary variables can be set to 1; 8624 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8637 SCIP_Bool* values, /**< values of the variables in the clique; NULL to use TRUE for all vars */ 8645 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they 8647 * the first variable is always assigned to clique 0, and a variable can only be assigned to clique i if at least one of 8651 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8664 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */ 8667 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */ 8671 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they 8673 * the first variable is always assigned to clique 0 and a variable can only be assigned to clique i if at least one of 8675 * for each clique with n_c variables at least n_c-1 variables can be set to TRUE in a feasible solution; 8677 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8690 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */ 8693 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */ 8696 /** force SCIP to clean up all cliques; cliques do not get automatically cleaned up after presolving. Use 8761 * if regardimplics is TRUE, both the cliques and the implications of the implication graph are regarded 8763 * @return TRUE, if there is a clique that contains both variable/clique pairs; FALSE, otherwise 8791 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8807 * If @p writenodeweights is true, only nodes corresponding to variables that have a fractional value and only edges 8817 /** Removes (irrelevant) variable from all its global structures, i.e. cliques, implications and variable bounds. 8839 /** sets the branch factor of the variable; this value can be used in the branching methods to scale the score 8840 * values of the variables; higher factor leads to a higher probability that this variable is chosen for branching 8842 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8864 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8886 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8906 /** sets the branch priority of the variable; variables with higher branch priority are always preferred to variables 8909 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8931 /** changes the branch priority of the variable to the given value, if it is larger than the current priority 8933 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8950 int branchpriority /**< new branch priority of the variable, if it is larger than current priority */ 8955 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8975 /** sets the branch direction of the variable (-1: prefer downwards branch, 0: automatic selection, +1: prefer upwards 8978 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 8995 SCIP_BRANCHDIR branchdirection /**< preferred branch direction of the variable (downwards, upwards, auto) */ 9000 * @warning This type change might change the variable array returned from SCIPgetVars() and SCIPgetVarsData(); 9002 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 9010 * @note If SCIP is already beyond the SCIP_STAGE_PROBLEM and a original variable is passed, the variable type of the 9011 * corresponding transformed variable is changed; the type of the original variable does not change 9013 * @note If the type changes from a continuous variable to a non-continuous variable the bounds of the variable get 9025 /** in problem creation and solving stage, both bounds of the variable are set to the given value; 9026 * in presolving stage, the variable is converted into a fixed variable, and bounds are changed respectively; 9027 * conversion into a fixed variable changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(), 9030 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 9044 SCIP_Bool* fixed /**< pointer to store whether the fixing was performed (variable was unfixed) */ 9047 /** From a given equality a*x + b*y == c, aggregates one of the variables and removes it from the set of 9048 * active problem variables. This changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(), 9049 * and also renders the arrays returned from the SCIPvarGetImpl...() methods for the two variables invalid. 9050 * In the first step, the equality is transformed into an equality with active problem variables 9051 * a'*x' + b'*y' == c'. If x' == y', this leads to the detection of redundancy if a' == -b' and c' == 0, 9052 * of infeasibility, if a' == -b' and c' != 0, or to a variable fixing x' == c'/(a'+b') (and possible 9054 * In the second step, the variable to be aggregated is chosen among x' and y', prefering a less strict variable 9055 * type as aggregation variable (i.e. continuous variables are preferred over implicit integers, implicit integers 9056 * over integers, and integers over binaries). If none of the variables is continuous, it is tried to find an integer 9057 * aggregation (i.e. integral coefficients a'' and b'', such that a''*x' + b''*y' == c''). This can lead to 9058 * the detection of infeasibility (e.g. if c'' is fractional), or to a rejection of the aggregation (denoted by 9059 * aggregated == FALSE), if the resulting integer coefficients are too large and thus numerically instable. 9064 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before) 9066 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 9084 /** converts variable into multi-aggregated variable; this changes the variable array returned from 9087 * @warning The integrality condition is not checked anymore on the multi-aggregated variable. You must not 9088 * multi-aggregate an integer variable without being sure, that integrality on the aggregation variables 9093 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before) 9095 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 9145 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 9157 * @note There exists no "unmark" method since it has to be ensured that if a plugin requires that a variable is not 9196 /** updates the pseudo costs of the given variable and the global pseudo costs after a change of "solvaldelta" in the 9197 * variable's solution value and resulting change of "objdelta" in the in the LP's objective value; 9200 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 9300 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction 9302 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction 9320 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction, 9323 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction, 9342 /** get pseudo cost variance of the variable, either for entire solve or only for current branch and bound run 9363 /** calculates a confidence bound for this variable under the assumption of normally distributed pseudo costs 9365 * The confidence bound \f$ \theta \geq 0\f$ denotes the interval borders \f$ [X - \theta, \ X + \theta]\f$, which contains 9366 * the true pseudo costs of the variable, i.e., the expected value of the normal distribution, with a probability 9380 /** check if variable pseudo-costs have a significant difference in location. The significance depends on 9381 * the choice of \p clevel and on the kind of tested hypothesis. The one-sided hypothesis, which 9385 * This method is applied best if variable x has a better pseudo-cost score than y. The method hypothesizes that y were actually 9386 * better than x (despite the current information), meaning that y can be expected to yield branching 9387 * decisions as least as good as x in the long run. If the method returns TRUE, the current history information is 9388 * sufficient to safely rely on the alternative hypothesis that x yields indeed a better branching score (on average) 9393 * @note set \p onesided to FALSE if you are not sure which variable is better. The hypothesis tested then reads 9410 /** tests at a given confidence level whether the variable pseudo-costs only have a small probability to 9411 * exceed a \p threshold. This is useful to determine if past observations provide enough evidence 9412 * to skip an expensive strong-branching step if there is already a candidate that has been proven to yield an improvement 9415 * @note use \p clevel to adjust the level of confidence. For SCIP_CONFIDENCELEVEL_MIN, the method returns TRUE if 9418 * @see SCIP_Confidencelevel for a list of available levels. The used probability limits refer to the one-sided levels 9421 * @return TRUE if the variable pseudo-cost probabilistic model is likely to be smaller than \p threshold 9434 /** check if the current pseudo cost relative error in a direction violates the given threshold. The Relative 9645 /** returns the average number of inferences found after branching on the variable in given direction; 9646 * if branching on the variable in the given direction was yet evaluated, the average number of inferences 9649 * @return the average number of inferences found after branching on the variable in given direction 9667 /** returns the average number of inferences found after branching on the variable in given direction in the current run; 9668 * if branching on the variable in the given direction was yet evaluated, the average number of inferences 9671 * @return the average number of inferences found after branching on the variable in given direction in the current run 9708 /** returns the variable's average inference score value only using inferences of the current run 9710 * @return the variable's average inference score value only using inferences of the current run 9727 /** initializes the upwards and downwards pseudocosts, conflict scores, conflict lengths, inference scores, cutoff scores 9730 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 9746 SCIP_Real downpscost, /**< value to which pseudocosts for downwards branching should be initialized */ 9747 SCIP_Real uppscost, /**< value to which pseudocosts for upwards branching should be initialized */ 9748 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */ 9749 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */ 9750 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */ 9751 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */ 9752 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */ 9753 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */ 9754 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */ 9755 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */ 9758 /** initializes the upwards and downwards conflict scores, conflict lengths, inference scores, cutoff scores of a 9761 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 9778 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */ 9779 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */ 9780 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */ 9781 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */ 9782 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */ 9783 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */ 9784 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */ 9785 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */ 9788 /** returns the average number of cutoffs found after branching on the variable in given direction; 9789 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs 9792 * @return the average number of cutoffs found after branching on the variable in given direction 9810 /** returns the average number of cutoffs found after branching on the variable in given direction in the current run; 9811 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs 9814 * @return the average number of cutoffs found after branching on the variable in given direction in the current run 9870 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given 9891 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given 9894 * @return the variable's average inference/cutoff score value, only using inferences and cutoffs of the current run 9914 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 9952 /** return TRUE if conflict analysis is applicable; In case the function return FALSE there is no need to initialize the 9955 * @return return TRUE if conflict analysis is applicable; In case the function return FALSE there is no need to initialize the 9971 /** initializes the conflict analysis by clearing the conflict candidate queue; this method must be called before you 9972 * enter the conflict variables by calling SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(), 9973 * SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar(); 9975 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 9989 /** adds lower bound of variable at the time of the given bound change index to the conflict analysis' candidate storage; 9991 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictLb() should be called for each lower bound 9993 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictLb() should be called 9994 * for each lower bound, whose current assignment led to the deduction of the given conflict bound. 9996 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10009 SCIP_BDCHGIDX* bdchgidx /**< bound change index representing time on path to current node, when the 10013 /** adds lower bound of variable at the time of the given bound change index to the conflict analysis' candidate storage 10014 * with the additional information of a relaxed lower bound; this relaxed lower bound is the one which would be enough 10017 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictRelaxedLb() should be called for each (relaxed) lower bound 10019 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictRelexedLb() should be called 10020 * for each (relaxed) lower bound, whose current assignment led to the deduction of the given conflict bound. 10022 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10035 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the 10040 /** adds upper bound of variable at the time of the given bound change index to the conflict analysis' candidate storage; 10042 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictUb() should be called for each upper bound that 10044 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictUb() should be called for 10045 * each upper bound, whose current assignment led to the deduction of the given conflict bound. 10047 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10060 SCIP_BDCHGIDX* bdchgidx /**< bound change index representing time on path to current node, when the 10064 /** adds upper bound of variable at the time of the given bound change index to the conflict analysis' candidate storage 10065 * with the additional information of a relaxed upper bound; this relaxed upper bound is the one which would be enough 10068 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictRelaxedUb() should be called for each (relaxed) upper 10069 * bound that led to the conflict (e.g. the infeasibility of globally or locally valid constraint). 10070 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictRelaxedUb() should be 10071 * called for each (relaxed) upper bound, whose current assignment led to the deduction of the given conflict 10074 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10087 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the 10092 /** adds lower or upper bound of variable at the time of the given bound change index to the conflict analysis' candidate 10094 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictBd() should be called for each bound 10096 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictBd() should be called 10099 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10113 SCIP_BDCHGIDX* bdchgidx /**< bound change index representing time on path to current node, when the 10117 /** adds lower or upper bound of variable at the time of the given bound change index to the conflict analysis' 10118 * candidate storage; with the additional information of a relaxed upper bound; this relaxed upper bound is the one 10121 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictRelaxedBd() should be called for each (relaxed) 10122 * bound that led to the conflict (e.g. the infeasibility of globally or locally valid constraint). 10123 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictRelaxedBd() should be 10124 * called for each (relaxed) bound, whose current assignment led to the deduction of the given conflict bound. 10126 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10140 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the 10147 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictBinvar() should be called for each fixed binary 10148 * variable that led to the conflict (e.g. the infeasibility of globally or locally valid constraint). 10149 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictBinvar() should be called 10150 * for each binary variable, whose current fixing led to the deduction of the given conflict bound. 10152 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10167 /** checks if the given variable is already part of the current conflict set or queued for resolving with the same or 10170 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10184 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the 10189 /** returns the conflict lower bound if the variable is present in the current conflict set; otherwise the global lower 10192 * @return returns the conflict lower bound if the variable is present in the current conflict set; otherwise the global lower 10207 /** returns the conflict upper bound if the variable is present in the current conflict set; otherwise minus global 10210 * @return returns the conflict upper bound if the variable is present in the current conflict set; otherwise minus global 10225 /** analyzes conflict bounds that were added after a call to SCIPinitConflictAnalysis() with calls to 10227 * SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar(); on success, calls the conflict 10228 * handlers to create a conflict constraint out of the resulting conflict set; the given valid depth must be a depth 10229 * level, at which the conflict set defined by calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(), 10230 * SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), and SCIPaddConflictBinvar() is 10231 * valid for the whole subtree; if the conflict was found by a violated constraint, use SCIPanalyzeConflictCons() 10234 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10247 SCIP_Bool* success /**< pointer to store whether a conflict constraint was created, or NULL */ 10250 /** analyzes conflict bounds that were added with calls to SCIPaddConflictLb(), SCIPaddConflictUb(), 10251 * SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or 10252 * SCIPaddConflictBinvar(); on success, calls the conflict handlers to create a conflict constraint out of the 10253 * resulting conflict set; the given constraint must be the constraint that detected the conflict, i.e. the constraint 10254 * that is infeasible in the local bounds of the initial conflict set (defined by calls to SCIPaddConflictLb(), 10255 * SCIPaddConflictUb(), SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), 10258 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10271 SCIP_Bool* success /**< pointer to store whether a conflict constraint was created, or NULL */ 10288 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution may 10289 * be declared feasible even if it violates this particular constraint. This constellation should only be 10290 * used, if no LP or pseudo solution can violate the constraint -- e.g. if a local constraint is redundant due 10293 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10307 * @note the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons() 10334 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup? 10336 SCIP_Bool stickingatnode /**< should the constraint always be kept at the node where it was added, even 10341 /** parses constraint information (in cip format) out of a string; if the parsing process was successful a constraint is 10344 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10357 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution may 10358 * be declared feasible even if it violates this particular constraint. This constellation should only be 10359 * used, if no LP or pseudo solution can violate the constraint -- e.g. if a local constraint is redundant due 10385 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup? 10387 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even 10395 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10416 /** decreases usage counter of constraint, if the usage pointer reaches zero the constraint gets freed 10418 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10445 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10462 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10481 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10500 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10519 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10538 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10557 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10578 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10598 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10617 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10636 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10655 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10672 /** gets and captures transformed constraint of a given constraint; if the constraint is not yet transformed, 10675 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10696 * if a constraint in the array is not yet transformed, a new transformed constraint for this constraint is created; 10699 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10723 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10748 * it is possible to call this method with conss == transconss, but remember that constraints that are not 10751 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10781 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10804 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10826 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10844 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10861 /** disables constraint's separation, propagation, and enforcing capabilities, s.t. the constraint is not propagated, 10863 * in contrast to SCIPdelConsLocal() and SCIPdelConsNode(), the disabling is not associated to a node in the tree and 10864 * does not consume memory; therefore, the constraint is neither automatically enabled on leaving the node nor 10866 * note that the constraints enforcing capabilities are necessary for the solution's feasibility, if the constraint 10867 * is a model constraint; that means, you must be sure that the constraint cannot be violated in the current subtree, 10868 * and you have to enable it again manually by calling SCIPenableCons(), if this subtree is left (e.g. by using 10871 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10891 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10908 /** disables constraint's separation capabilities s.t. the constraint is not propagated anymore until the separation 10909 * is enabled again with a call to SCIPenableConsSeparation(); in contrast to SCIPdelConsLocal() and SCIPdelConsNode(), 10910 * the disabling is not associated to a node in the tree and does not consume memory; therefore, the constraint 10911 * is neither automatically enabled on leaving the node nor automatically disabled again on entering the node again 10913 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10932 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10951 /** disables constraint's propagation capabilities s.t. the constraint is not propagated anymore until the propagation 10952 * is enabled again with a call to SCIPenableConsPropagation(); in contrast to SCIPdelConsLocal() and SCIPdelConsNode(), 10953 * the disabling is not associated to a node in the tree and does not consume memory; therefore, the constraint 10954 * is neither automatically enabled on leaving the node nor automatically disabled again on entering the node again 10956 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10978 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 10990 * @note if a constraint is marked to be propagated, the age of the constraint will be ignored for propagation 11000 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11018 /** adds given values to lock status of the constraint and updates the rounding locks of the involved variables 11020 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11044 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11063 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */ 11070 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11076 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not 11083 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */ 11084 SCIP_Bool objinfeasible, /**< is the solution infeasible anyway due to violating lower objective bound? */ 11090 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11096 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not 11103 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */ 11109 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11115 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not 11126 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11143 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11161 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11181 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11188 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not 11196 int inferinfo, /**< the user information passed to the corresponding SCIPinferVarLbCons() or SCIPinferVarUbCons() call */ 11198 SCIP_BDCHGIDX* bdchgidx, /**< the index of the bound change, representing the point of time where the change took place */ 11205 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11219 int nnewfixedvars, /**< number of variables fixed since the last call to the presolving method */ 11220 int nnewaggrvars, /**< number of variables aggregated since the last call to the presolving method */ 11221 int nnewchgvartypes, /**< number of variable type changes since the last call to the presolving method */ 11222 int nnewchgbds, /**< number of variable bounds tightened since the last call to the presolving method */ 11223 int nnewholes, /**< number of domain holes added since the last call to the presolving method */ 11224 int nnewdelconss, /**< number of deleted constraints since the last call to the presolving method */ 11225 int nnewaddconss, /**< number of added constraints since the last call to the presolving method */ 11226 int nnewupgdconss, /**< number of upgraded constraints since the last call to the presolving method */ 11227 int nnewchgcoefs, /**< number of changed coefficients since the last call to the presolving method */ 11228 int nnewchgsides, /**< number of changed left or right hand sides since the last call to the presolving method */ 11230 int* naggrvars, /**< pointer to count total number of variables aggregated of all presolvers */ 11231 int* nchgvartypes, /**< pointer to count total number of variable type changes of all presolvers */ 11232 int* nchgbds, /**< pointer to count total number of variable bounds tightened of all presolvers */ 11234 int* ndelconss, /**< pointer to count total number of deleted constraints of all presolvers */ 11236 int* nupgdconss, /**< pointer to count total number of upgraded constraints of all presolvers */ 11237 int* nchgcoefs, /**< pointer to count total number of changed coefficients of all presolvers */ 11238 int* nchgsides, /**< pointer to count total number of changed left/right hand sides of all presolvers */ 11244 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11250 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not 11261 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11268 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not 11279 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11297 * @note The file stream will not be flushed directly, this can be achieved by calling SCIPinfoMessage() printing a 11309 * If the number of variables is greater than the available slots in the variable array, nothing happens except that 11310 * the success point is set to FALSE. With the method SCIPgetConsNVars() it is possible to get the number of variables 11313 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11332 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is 11340 int varssize, /**< available slots in vars array which is needed to check if the array is large enough */ 11346 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11363 * @note The success pointer indicates if the contraint handler was able to return the number of variables 11365 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is 11373 SCIP_Bool* success /**< pointer to store whether the constraint successfully returned the number of variables */ 11416 /** makes sure that the LP of the current node is loaded and may be accessed through the LP information methods 11418 * @warning Contructing the LP might change the amount of variables known in the transformed problem and therefore also 11419 * the variables array of SCIP (returned by SCIPgetVars() and SCIPgetVarsData()), so it might be necessary to 11422 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11438 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11465 /** returns whether the current lp is a relaxation of the current problem and its optimal objective value is a local lower bound 11467 * @return whether the current lp is a relaxation of the current problem and its optimal objective value is a local lower bound. 11481 * @return the objective value of current LP (which is the sum of column and loose objective value). 11486 * @note This method returns the objective value of the current LP solution, which might be primal or dual infeasible 11487 * if a limit was hit during solving. It must not be used as a dual bound if the LP solution status returned by 11525 /** gets the global pseudo objective value; that is all variables set to their best (w.r.t. the objective 11528 * @return the global pseudo objective value; that is all variables set to their best (w.r.t. the objective 11546 /** gets the pseudo objective value for the current search node; that is all variables set to their best (w.r.t. the 11549 * @return the pseudo objective value for the current search node; that is all variables set to their best (w.r.t. the 11567 /** returns whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound 11569 * @return whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound. 11581 /** gets the objective value of the root node LP or SCIP_INVALID if the root node LP was not (yet) solved 11583 * @return the objective value of the root node LP or SCIP_INVALID if the root node LP was not (yet) solved. 11598 /** gets part of the objective value of the root node LP that results from COLUMN variables only; 11601 * @return the part of the objective value of the root node LP that results from COLUMN variables only; 11617 /** gets part of the objective value of the root node LP that results from LOOSE variables only; 11620 * @return the part of the objective value of the root node LP that results from LOOSE variables only; 11638 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11683 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11726 /** returns TRUE iff all columns, i.e. every variable with non-empty column w.r.t. all ever created rows, are present 11727 * in the LP, and FALSE, if there are additional already existing columns, that may be added to the LP in pricing 11729 * @return TRUE iff all columns, i.e. every variable with non-empty column w.r.t. all ever created rows, are present 11730 * in the LP, and FALSE, if there are additional already existing columns, that may be added to the LP in pricing. 11742 /** returns whether the current LP solution is basic, i.e. is defined by a valid simplex basis 11756 /** gets all indices of basic columns and rows: index i >= 0 corresponds to column i, index i < 0 to row -i-1 11758 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11774 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11794 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11816 /** gets a row from the product of inverse basis matrix B^-1 and coefficient matrix A (i.e. from B^-1 * A) 11818 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11837 /** gets a column from the product of inverse basis matrix B^-1 and coefficient matrix A (i.e. from B^-1 * A), 11840 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11858 /** calculates a weighted sum of all LP rows; for negative weights, the left and right hand side of the corresponding 11861 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11873 SCIP_REALARRAY* sumcoef, /**< array to store sum coefficients indexed by variables' probindex */ 11878 /** calculates a MIR cut out of the weighted sum of LP rows; The weights of modifiable rows are set to 0.0, because these 11881 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11893 SCIP_Real boundswitch, /**< fraction of domain up to which lower bound is used in transformation */ 11895 SCIP_Bool allowlocal, /**< should local information allowed to be used, resulting in a local cut? */ 11896 SCIP_Bool fixintegralrhs, /**< should complementation tried to be adjusted such that rhs gets fractional? */ 11897 int* boundsfortrans, /**< bounds that should be used for transformed variables: vlb_idx/vub_idx, 11900 SCIP_BOUNDTYPE* boundtypesfortrans, /**< type of bounds that should be used for transformed variables; 11903 SCIP_Real maxweightrange, /**< maximal valid range max(|weights|)/min(|weights|) of row weights */ 11907 SCIP_Real maxweight, /**< largest magnitude of weights; set to -1.0 if sparsity information is 11912 int rowlensum, /**< total number of non-zeros in used rows (row associated with nonzero weight coefficient); -1 if unknown */ 11913 int* sidetypes, /**< specify row side type (-1 = lhs, 0 = unkown, 1 = rhs) or NULL for automatic choices */ 11915 SCIP_Real* mksetcoefs, /**< array to store mixed knapsack set coefficients: size nvars; or NULL */ 11916 SCIP_Bool* mksetcoefsvalid, /**< pointer to store whether mixed knapsack set coefficients are valid; or NULL */ 11920 SCIP_Bool* success, /**< pointer to store whether the returned coefficients are a valid MIR cut */ 11921 SCIP_Bool* cutislocal, /**< pointer to store whether the returned cut is only valid locally */ 11925 /** 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 11928 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11939 SCIP_Real boundswitch, /**< fraction of domain up to which lower bound is used in transformation */ 11941 SCIP_Bool allowlocal, /**< should local information allowed to be used, resulting in a local cut? */ 11943 SCIP_Real maxweightrange, /**< maximal valid range max(|weights|)/min(|weights|) of row weights */ 11951 SCIP_Real* mircoef, /**< array to store strong CG coefficients: must be of size SCIPgetNVars() */ 11954 SCIP_Bool* success, /**< pointer to store whether the returned coefficients are a valid strong CG cut */ 11955 SCIP_Bool* cutislocal, /**< pointer to store whether the returned cut is only valid locally */ 11961 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11977 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 11989 SCIP_Bool genericnames, /**< should generic names like x_i and row_j be used in order to avoid 11998 * @warning You have to make sure, that the full internal state of the LPI does not change or is recovered completely 11999 * after the end of the method that uses the LPI. In particular, if you manipulate the LP or its solution 12000 * (e.g. by calling one of the SCIPlpiAdd...() or one of the SCIPlpiSolve...() methods), you have to check in 12001 * advance with SCIPlpiWasSolved() whether the LP is currently solved. If this is the case, you have to make 12002 * sure, the internal solution status is recovered completely at the end of your method. This can be achieved 12003 * by getting the LPI state before applying any LPI manipulations with SCIPlpiGetState() and restoring it 12004 * afterwards with SCIPlpiSetState() and SCIPlpiFreeState(). Additionally you have to resolve the LP with the 12007 * @warning Make also sure, that all parameter values that you have changed are set back to their original values. 12009 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12031 /** Displays quality information about the current LP solution. An LP solution need to be available. Information printed 12034 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12062 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12148 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12167 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */ 12173 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12192 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */ 12198 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12216 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */ 12222 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12229 * @deprecated Please use SCIPcreateRowCons() or SCIPcreateRowSepa() when calling from a constraint handler or separator in order 12230 * to facilitate correct statistics. If the call is from neither a constraint handler or separator, use SCIPcreateRowUnspec(). 12243 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */ 12249 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12265 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */ 12271 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12287 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */ 12293 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12308 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */ 12314 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12321 * @deprecated Please use SCIPcreateEmptyRowCons() or SCIPcreateEmptyRowSepa() when calling from a constraint handler or separator in order 12322 * to facilitate correct statistics. If the call is from neither a constraint handler or separator, use SCIPcreateEmptyRowUnspec(). 12332 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */ 12338 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12353 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12369 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12385 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12399 /** informs row, that all subsequent additions of variables to the row should be cached and not directly applied; 12401 * while the caching of row extensions is activated, information methods of the row give invalid results; 12402 * caching should be used, if a row is build with SCIPaddVarToRow() calls variable by variable to increase 12405 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12418 /** flushes all cached row extensions after a call of SCIPcacheRowExtensions() and merges coefficients with 12421 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12436 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12443 * @note In case calling this method in the enforcement process of an lp solution, it might be that some variables, 12444 * that were not yet in the LP (e.g. dynamic columns) will change their lp solution value returned by SCIP. 12445 * For example, a variable, which has a negative objective value, that has no column in the lp yet, is in the lp solution 12446 * on its upper bound (variables with status SCIP_VARSTATUS_LOOSE are in an lp solution on it's best bound), but 12447 * creating the column, changes the solution value (variable than has status SCIP_VARSTATUS_COLUMN, and the 12448 * initialization sets the lp solution value) to 0.0. (This leads to the conclusion that, if a constraint was 12460 * this method caches the row extensions and flushes them afterwards to gain better performance 12462 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12479 * this method caches the row extensions and flushes them afterwards to gain better performance 12481 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12497 /** tries to find a value, such that all row coefficients, if scaled with this value become integral 12499 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12510 SCIP_Real mindelta, /**< minimal relative allowed difference of scaled coefficient s*c and integral i */ 12511 SCIP_Real maxdelta, /**< maximal relative allowed difference of scaled coefficient s*c and integral i */ 12514 SCIP_Bool usecontvars, /**< should the coefficients of the continuous variables also be made integral? */ 12515 SCIP_Real* intscalar, /**< pointer to store scalar that would make the coefficients integral, or NULL */ 12521 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12532 SCIP_Real mindelta, /**< minimal relative allowed difference of scaled coefficient s*c and integral i */ 12533 SCIP_Real maxdelta, /**< maximal relative allowed difference of scaled coefficient s*c and integral i */ 12536 SCIP_Bool usecontvars, /**< should the coefficients of the continuous variables also be made integral? */ 12607 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12634 * @return the feasibility of a row in the last LP solution: negative value means infeasibility 12647 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12672 /** returns the feasibility of a row for the current pseudo solution: negative value means infeasibility 12674 * @return the feasibility of a row for the current pseudo solution: negative value means infeasibility 12687 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12755 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12783 * If the NLP relaxation is enabled, then SCIP will construct the NLP relaxation when the solving process is about to begin. 12803 * This method should be called by a constraint handler if it has constraints that have a representation as nonlinear rows. 12805 * The function should be called before the branch-and-bound process is initialized, e.g., when presolve is exiting. 12877 /** computes for each variables the number of NLP rows in which the variable appears in a nonlinear var 12886 int* nlcount /**< an array of length at least SCIPnlpGetNVars() to store nonlinearity counts of variables */ 12971 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12981 SCIP_Real* initialguess /**< values of initial guess (corresponding to variables from SCIPgetNLPVarsData), or NULL to use no start point */ 12986 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 12996 SCIP_SOL* sol /**< solution which values should be taken as initial guess, or NULL for LP solution */ 13001 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13037 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13073 /** gets fractional variables of last NLP solution along with solution values and fractionalities 13075 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13086 SCIP_Real** fracvarssol, /**< pointer to store the array of NLP fractional variables solution values, or NULL */ 13087 SCIP_Real** fracvarsfrac, /**< pointer to store the array of NLP fractional variables fractionalities, or NULL */ 13089 int* npriofracvars /**< pointer to store the number of NLP fractional variables with maximal branching priority, or NULL */ 13094 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13110 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13126 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13142 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13158 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13174 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13190 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13206 * @warning You have to make sure, that the full internal state of the NLPI does not change or is recovered completely 13207 * after the end of the method that uses the NLPI. In particular, if you manipulate the NLP or its solution 13208 * (e.g. by calling one of the SCIPnlpiAdd...() or the SCIPnlpiSolve() method), you have to check in advance 13209 * whether the NLP is currently solved. If this is the case, you have to make sure, the internal solution 13210 * status is recovered completely at the end of your method. Additionally you have to resolve the NLP with 13213 * @warning Make also sure, that all parameter values that you have changed are set back to their original values. 13215 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13239 /** initiates NLP diving making methods SCIPchgVarObjDiveNLP(), SCIPchgVarBoundsDiveNLP(), SCIPchgVarsBoundsDiveNLP(), and SCIPsolveDiveNLP() available 13241 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13255 * Resets changes made by SCIPchgVarObjDiveNLP(), SCIPchgVarBoundsDiveNLP(), and SCIPchgVarsBoundsDiveNLP(). 13257 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13271 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13287 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13304 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13322 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13346 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13366 SCIP_QUADELEM* quadelems, /**< elements (i.e., monomials) in quadratic term, or NULL if nquadelems == 0 */ 13374 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13393 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13410 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13426 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13443 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13460 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13477 * @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 13512 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13534 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13554 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13573 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13591 * Variable indices of the quadratic element need to be relative to quadratic variables array of row. 13593 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13610 * Variable indices of the quadratic elements need to be relative to quadratic variables array of row. 13612 * @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 13650 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13667 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13685 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13702 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13718 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13732 /** gives the feasibility of a nonlinear row in the last NLP solution: negative value means infeasibility 13734 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13750 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13765 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13779 /** gives the feasibility of a nonlinear row for the current pseudo solution: negative value means infeasibility 13781 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13797 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13812 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13828 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13842 /** gives the activity of a nonlinear row for the given primal solution or NLP solution or pseudo solution 13844 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13861 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13878 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13896 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13918 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13944 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 13973 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14002 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14048 SCIP_Bool isint, /**< whether corresponding variable is a discrete variable, and thus linearization could be moved */ 14051 SCIP_Bool* success /**< buffer to set to FALSE if linearization has failed due to large numbers */ 14064 SCIP_Bool* success /**< buffer to set to FALSE if secant has failed due to large numbers or unboundedness */ 14077 SCIP_Bool* success /**< buffer to set to FALSE if linearization has failed due to large numbers */ 14091 SCIP_Bool overestimate, /**< whether to compute an overestimator instead of an underestimator */ 14095 SCIP_Bool* success /**< buffer to set to FALSE if linearization has failed due to large numbers */ 14110 /** returns efficacy of the cut with respect to the given primal solution or the current LP solution: 14113 * @return the efficacy of the cut with respect to the given primal solution or the current LP solution: 14126 /** returns whether the cut's efficacy with respect to the given primal solution or the current LP solution is greater 14129 * @return TRUE if the cut's efficacy with respect to the given primal solution or the current LP solution is greater 14144 * @return TRUE if the given cut's efficacy is larger than the minimal cut efficacy, otherwise FALSE 14152 /** calculates the efficacy norm of the given vector, which depends on the "separating/efficacynorm" parameter 14154 * @return the efficacy norm of the given vector, which depends on the "separating/efficacynorm" parameter 14173 * @return whether the cut is modifiable, not a bound change, or a bound change that changes bounds by at least epsilon 14183 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14195 SCIP_Bool* infeasible /**< pointer to store whether cut has been detected to be infeasible for local bounds */ 14200 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14214 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14270 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14292 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14316 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14332 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14348 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14365 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14380 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14396 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14409 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14422 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14434 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14446 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14456 /** separates the given primal solution or the current LP solution by calling the separators and constraint handlers' 14458 * the generated cuts are stored in the separation storage and can be accessed with the methods SCIPgetCuts() and 14460 * after evaluating the cuts, you have to call SCIPclearCuts() in order to remove the cuts from the 14462 * it is possible to call SCIPseparateSol() multiple times with different solutions and evaluate the found cuts 14465 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14475 SCIP_Bool pretendroot, /**< should the cut separators be called as if we are at the root node? */ 14476 SCIP_Bool onlydelayed, /**< should only separators be called that were delayed in the previous round? */ 14511 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14522 /** removes cuts that are inefficacious w.r.t. the current LP solution from separation storage without adding the cuts to the LP 14524 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14535 /** returns current factor on cut infeasibility to limit feasibility tolerance for relaxation solver 14561 /** initiates LP diving, making methods SCIPchgVarObjDive(), SCIPchgVarLbDive(), and SCIPchgVarUbDive() available 14563 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14571 * @note diving is allowed even if the current LP is not flushed, not solved, or not solved to optimality; be aware 14572 * that solving the (first) diving LP may take longer than expect and that the latter two cases could stem from 14573 * numerical troubles during the last LP solve; because of this, most users will want to call this method only if 14581 /** quits LP diving and resets bounds and objective values of columns to the current node's values 14583 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14598 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14614 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14631 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14648 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14665 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14679 /** changes row lhs in current dive, change will be undone after diving ends, for permanent changes use SCIPchgRowLhs() 14681 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14696 /** changes row rhs in current dive, change will be undone after diving ends, for permanent changes use SCIPchgRowRhs() 14698 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14759 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14767 * @note be aware that the LP solve may take longer than expected if SCIPgetLPSolstat(scip) != SCIP_LPSOLSTAT_OPTIMAL, 14779 /** returns the number of the node in the current branch and bound run, where the last LP was solved in diving 14782 * @return the number of the node in the current branch and bound run, where the last LP was solved in diving 14841 /** returns whether we are in probing mode; probing mode is activated via SCIPstartProbing() and stopped 14862 /** initiates probing, making methods SCIPnewProbingNode(), SCIPbacktrackProbing(), SCIPchgVarLbProbing(), 14863 * SCIPchgVarUbProbing(), SCIPfixVarProbing(), SCIPpropagateProbing(), and SCIPsolveProbingLP() available 14865 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14872 * @note The collection of variable statistics is turned off during probing. If these statistics should be collected 14880 /** creates a new probing sub node, whose changes can be undone by backtracking to a higher node in the probing path 14884 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14898 * @return the probing depth, i.e. the number of probing sub nodes existing in the probing path 14910 * the changes of the probing node of the given probing depth are the last ones that remain active; 14913 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14923 int probingdepth /**< probing depth of the node in the probing path that should be reactivated */ 14928 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14940 /** injects a change of variable's lower bound into current probing node; the same can also be achieved with a call to 14941 * SCIPchgVarLb(), but in this case, the bound change would be treated like a deduction instead of a branching decision 14943 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14957 /** injects a change of variable's upper bound into current probing node; the same can also be achieved with a call to 14958 * SCIPchgVarUb(), but in this case, the bound change would be treated like a deduction instead of a branching decision 14960 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 14989 /** injects a change of variable's bounds into current probing node to fix the variable to the specified value; 14990 * the same can also be achieved with a call to SCIPfixVar(), but in this case, the bound changes would be treated 14993 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15009 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15025 /** applies domain propagation on the probing sub problem, that was changed after SCIPstartProbing() was called; 15026 * the propagated domains of the variables can be accessed with the usual bound accessing calls SCIPvarGetLbLocal() 15027 * and SCIPvarGetUbLocal(); the propagation is only valid locally, i.e. the local bounds as well as the changed 15028 * bounds due to SCIPchgVarLbProbing(), SCIPchgVarUbProbing(), and SCIPfixVarProbing() are used for propagation 15030 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15040 int maxproprounds, /**< maximal number of propagation rounds (-1: no limit, 0: parameter settings) */ 15042 SCIP_Longint* ndomredsfound /**< pointer to store the number of domain reductions found, or NULL */ 15045 /** applies domain propagation on the probing sub problem, that was changed after SCIPstartProbing() was called; 15046 * only propagations of the binary variables fixed at the current probing node that are triggered by the implication 15048 * the propagated domains of the variables can be accessed with the usual bound accessing calls SCIPvarGetLbLocal() 15049 * and SCIPvarGetUbLocal(); the propagation is only valid locally, i.e. the local bounds as well as the changed 15050 * bounds due to SCIPchgVarLbProbing(), SCIPchgVarUbProbing(), and SCIPfixVarProbing() are used for propagation 15052 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15068 * The LP has to be constructed before (you can use SCIPisLPConstructed() or SCIPconstructLP()). 15070 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15081 SCIP_Bool* cutoff /**< pointer to store whether the probing LP was infeasible or the objective 15085 /** solves the LP at the current probing node (cannot be applied at preprocessing stage) and applies pricing 15088 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed . See \ref 15102 SCIP_Bool* cutoff /**< pointer to store whether the probing LP was infeasible or the objective 15109 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15124 * this method can only be applied during probing; the user should resolve the probing LP afterwards 15127 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15144 SCIP_DIVETYPE divetype, /**< represents different methods for a dive set to explore the next children */ 15152 /** update diveset LP statistics, should be called after every LP solved by this diving heuristic */ 15172 /** enforces a probing/diving solution by suggesting bound changes that maximize the score w.r.t. the current diving settings 15174 * the process is guided by the enforcement priorities of the constraint handlers and the scoring mechanism provided by 15176 * Constraint handlers may suggest diving bound changes in decreasing order of their enforcement priority, based on the 15177 * solution values in the solution @p sol and the current local bounds of the variables. A diving bound change 15178 * is a triple (variable,branching direction,value) and is used inside SCIPperformGenericDivingAlgorithm(). 15180 * After a successful call, SCIP holds two arrays of suggested dive bound changes, one for the preferred child 15187 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15200 SCIP_Bool* success, /**< pointer to store whether constraint handler successfully found a variable */ 15201 SCIP_Bool* infeasible /**< pointer to store whether the current node was detected to be infeasible */ 15204 /** adds a diving bound change to the diving bound change storage of SCIP together with the information if this is a 15207 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15262 /** gets branching candidates for LP solution branching (fractional variables) along with solution values, 15263 * fractionalities, and number of branching candidates; The number of branching candidates does NOT 15264 * account for fractional implicit integer variables which should not be used for branching decisions. 15266 * Fractional implicit integer variables are stored at the positions *nlpcands to *nlpcands + *nfracimplvars - 1 15268 * branching rules should always select the branching candidate among the first npriolpcands of the candidate 15271 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15283 SCIP_Real** lpcandssol, /**< pointer to store the array of LP candidate solution values, or NULL */ 15284 SCIP_Real** lpcandsfrac, /**< pointer to store the array of LP candidate fractionalities, or NULL */ 15286 int* npriolpcands, /**< pointer to store the number of candidates with maximal priority, or NULL */ 15287 int* nfracimplvars /**< pointer to store the number of fractional implicit integer variables, or NULL */ 15290 /** gets number of branching candidates for LP solution branching (number of fractional variables) 15292 * @return the number of branching candidates for LP solution branching (number of fractional variables). 15318 /** gets external branching candidates along with solution values, scores, and number of branching candidates; 15320 * branching rules should always select the branching candidate among the first nprioexterncands of the candidate 15323 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15331 * @note Candidate variables with maximal priority are ordered: binaries first, then integers, implicit integers and 15337 SCIP_VAR*** externcands, /**< pointer to store the array of extern branching candidates, or NULL */ 15338 SCIP_Real** externcandssol, /**< pointer to store the array of extern candidate solution values, or NULL */ 15339 SCIP_Real** externcandsscore, /**< pointer to store the array of extern candidate scores, or NULL */ 15340 int* nexterncands, /**< pointer to store the number of extern branching candidates, or NULL */ 15341 int* nprioexterncands, /**< pointer to store the number of candidates with maximal priority, or NULL */ 15342 int* nprioexternbins, /**< pointer to store the number of binary candidates with maximal priority, or NULL */ 15343 int* nprioexternints, /**< pointer to store the number of integer candidates with maximal priority, or NULL */ 15344 int* nprioexternimpls /**< pointer to store the number of implicit integer candidates with maximal priority, 15404 /** gets number of implicit integer external branching candidates with maximal branch priority 15406 * @return the number of implicit integer external branching candidates with maximal branch priority. 15420 * @return the number of continuous external branching candidates with maximal branch priority. 15432 /** insert variable, its score and its solution value into the external branching candidate storage 15433 * the relative difference of the current lower and upper bounds of a continuous variable must be at least epsilon 15435 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15463 /** checks whether the given variable is contained in the candidate storage for external branching 15465 * @return whether the given variable is contained in the candidate storage for external branching. 15478 /** gets branching candidates for pseudo solution branching (non-fixed variables) along with the number of candidates 15480 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15492 SCIP_VAR*** pseudocands, /**< pointer to store the array of pseudo branching candidates, or NULL */ 15493 int* npseudocands, /**< pointer to store the number of pseudo branching candidates, or NULL */ 15494 int* npriopseudocands /**< pointer to store the number of candidates with maximal priority, or NULL */ 15499 * @return the number branching candidates for pseudo solution branching (non-fixed variables). 15512 /** gets number of branching candidates with maximal branch priority for pseudo solution branching 15514 * @return the number of branching candidates with maximal branch priority for pseudo solution branching. 15527 /** gets number of binary branching candidates with maximal branch priority for pseudo solution branching 15529 * @return the number of binary branching candidates with maximal branch priority for pseudo solution branching. 15541 /** gets number of integer branching candidates with maximal branch priority for pseudo solution branching 15543 * @return the number of integer branching candidates with maximal branch priority for pseudo solution branching. 15555 /** gets number of implicit integer branching candidates with maximal branch priority for pseudo solution branching 15557 * @return the number of implicit integer branching candidates with maximal branch priority for pseudo solution branching. 15586 /** calculates the branching score out of the gain predictions for a branching with arbitrary many children 15588 * @return the branching score out of the gain predictions for a branching with arbitrary many children. 15621 /** calculates the node selection priority for moving the given variable's LP value to the given target value; 15624 * @return the node selection priority for moving the given variable's LP value to the given target value. 15635 SCIP_BRANCHDIR branchdir, /**< type of branching that was performed: upwards, downwards, or fixed; 15641 /** calculates an estimate for the objective of the best feasible solution contained in the subtree after applying the given 15644 * @return the estimate for the objective of the best feasible solution contained in the subtree after applying the given 15661 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15674 SCIP_Real estimate /**< estimate for (transformed) objective value of best feasible solution in subtree */ 15686 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15698 SCIP_NODE** downchild, /**< pointer to return the left child with variable rounded down, or NULL */ 15700 SCIP_NODE** upchild /**< pointer to return the right child with variable rounded up, or NULL */ 15703 /** branches a variable x using a given domain hole; two child nodes (x <= left, x >= right) are created 15705 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15724 * for continuous variables with relative domain width larger epsilon, x' must not be one of the bounds; 15731 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15744 SCIP_NODE** downchild, /**< pointer to return the left child with variable rounded down, or NULL */ 15746 SCIP_NODE** upchild /**< pointer to return the right child with variable rounded up, or NULL */ 15751 * Branches on variable x such that up to n/2 children are created on each side of the usual branching value. 15753 * The parameters minwidth and widthfactor determine the domain width of the branching variable in the child nodes. 15754 * If n is odd, one child with domain width 'width' and having the branching value in the middle is created. 15755 * Otherwise, two children with domain width 'width' and being left and right of the branching value are created. 15756 * Next further nodes to the left and right are created, where width is multiplied by widthfactor with increasing distance 15758 * The initial width is calculated such that n/2 nodes are created to the left and to the right of the branching value. 15759 * If this value is below minwidth, the initial width is set to minwidth, which may result in creating less than n nodes. 15761 * Giving a large value for widthfactor results in creating children with small domain when close to the branching value 15762 * and large domain when closer to the current variable bounds. That is, setting widthfactor to a very large value and n to 3 15763 * results in a ternary branching where the branching variable is mostly fixed in the middle child. 15764 * Setting widthfactor to 1.0 results in children where the branching variable always has the same domain width 15767 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15782 SCIP_Real widthfactor, /**< multiplier for children domain width with increasing distance from val, must be >= 1.0 */ 15786 /** calls branching rules to branch on an LP solution; if no fractional variables exist, the result is SCIP_DIDNOTRUN; 15787 * if the branch priority of an unfixed variable is larger than the maximal branch priority of the fractional 15788 * variables, pseudo solution branching is applied on the unfixed variables with maximal branch priority 15790 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15804 /** calls branching rules to branch on a external candidates; if no such candidates exist, the result is SCIP_DIDNOTRUN 15806 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15820 /** calls branching rules to branch on a pseudo solution; if no unfixed variables exist, the result is SCIP_DIDNOTRUN 15822 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15850 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15873 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15888 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15903 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15918 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15931 /** creates a primal solution, initialized to the current LP or pseudo solution, depending on whether the LP was solved 15934 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15949 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15970 * a solution in original space allows to set original variables to values that would be invalid in the 15973 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 15994 /** creates a copy of a primal solution; note that a copy of a linked solution is also linked and needs to be unlinked 15997 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16020 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16044 /** creates a copy of a primal solution, thereby replacing infinite fixings of variables by finite values; 16046 * success indicates whether the objective value of the solution was changed by removing infinite values 16048 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16074 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16099 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16113 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16127 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16141 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16156 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16170 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16195 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16217 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16244 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16272 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16301 * @pre In case the solution pointer @p sol is @b NULL, that means it is asked for the LP or pseudo solution, this method 16302 * can only be called if @p scip is in the solving stage \ref SCIP_STAGE_SOLVING. In any other case, this method 16326 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16352 /** returns objective value of primal CIP solution w.r.t. original problem, or current LP/pseudo objective value 16354 * @return objective value of primal CIP solution w.r.t. original problem, or current LP/pseudo objective value 16376 /** returns transformed objective value of primal CIP solution, or transformed current LP/pseudo objective value 16378 * @return transformed objective value of primal CIP solution, or transformed current LP/pseudo objective value 16402 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16575 /** adjusts solution values of implicit integer variables in handed solution. Solution objective value is not 16578 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16588 SCIP_Bool uselprows /**< should LP row information be considered for none-objective variables */ 16593 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16596 * @pre In case the solution pointer @p sol is NULL (askinking for the current LP/pseudo solution), this method can be 16606 * @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 16629 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16653 * @note This only works if no presolving has been performed, which can be checked by calling method \ref 16656 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16670 /** outputs non-zero variables of solution representing a ray in original problem space to file stream 16672 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16695 /** gets number of feasible primal solutions stored in the solution storage in case the problem is transformed; 16696 * in case the problem stage is SCIP_STAGE_PROBLEM, the number of solution in the original solution candidate 16699 * @return number of feasible primal solutions stored in the solution storage in case the problem is transformed; or 16700 * number of solution in the original solution candidate storage if the problem stage is SCIP_STAGE_PROBLEM 16719 /** gets array of feasible primal solutions stored in the solution storage in case the problem is transformed; in case 16720 * if the problem stage is in SCIP_STAGE_PROBLEM, it returns the number array of solution candidate stored 16741 /** gets best feasible primal solution found so far if the problem is transformed; in case the problem is in 16742 * SCIP_STAGE_PROBLEM it returns the best solution candidate, or NULL if no solution has been found or the candidate 16766 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16791 /** outputs best feasible primal solution found so far in transformed variables to file stream 16793 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16820 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16835 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16860 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16881 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16905 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16929 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16945 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16965 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */ 16971 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 16991 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */ 16997 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17010 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */ 17016 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17037 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */ 17041 /** checks solution for feasibility in original problem without adding it to the solution store; 17044 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17069 * @return return whether a primal ray is stored that proves unboundedness of the LP relaxation 17108 * If you want to catch an event for an original variable, you have to get the corresponding transformed variable 17115 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17136 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */ 17142 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17163 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */ 17169 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17191 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */ 17195 /** drops an objective value or domain change event (stops to track event) on the given transformed variable 17197 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17219 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */ 17225 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17247 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */ 17251 /** drops a row coefficient, constant, or side change event (stops to track event) on the given row 17253 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17275 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */ 17321 /** gets the effective root depth, i.e., the depth of the deepest node which is part of all paths from the root node 17351 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17378 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17405 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17430 /** gets the best child of the focus node w.r.t. the node selection priority assigned by the branching rule 17432 * @return the best child of the focus node w.r.t. the node selection priority assigned by the branching rule 17442 /** gets the best sibling of the focus node w.r.t. the node selection priority assigned by the branching rule 17444 * @return the best sibling of the focus node w.r.t. the node selection priority assigned by the branching rule 17490 /** gets the best node from the tree (child, sibling, or leaf) w.r.t. the node selection strategy 17492 * @return the best node from the tree (child, sibling, or leaf) w.r.t. the node selection strategy 17532 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17544 /** marks the given node to be propagated again the next time a node of its subtree is processed 17546 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17584 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17599 * @note In order to have an effect, this method needs to be called after a node is focused but before the LP is 17623 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17640 /** return the ids of all leave nodes store in the reoptimization tree induced by the given node 17642 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17659 /** returns the number of nodes in the reoptimization tree induced by @p node; if @p node == NULL, the method 17668 /** returns the number of leave nodes of the subtree induced by @p node; if @p node == NULL, the method 17685 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17704 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17720 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17746 int* nafterdualvars /**< number of variables directly after the first based on dual information */ 17751 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17766 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17780 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17795 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17817 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17830 /** splits the root into several nodes and moves the child nodes of the root to one of the created nodes 17832 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 17855 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 18012 /** gets total number of iterations used so far in primal and dual simplex and barrier algorithm 18014 * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm 18027 /** gets total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node 18029 * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node 18041 /** gets total number of iterations used in primal and dual simplex and barrier algorithm for the first LP at the root 18044 * @return the total number of iterations used in primal and dual simplex and barrier algorithm for the first root LP 18142 * @return the total number of LPs solved so far that were resolved from an advanced start basis 18154 /** gets total number of simplex iterations used so far in primal and dual simplex calls where an advanced start basis 18157 * @return the total number of simplex iterations used so far in primal and dual simplex calls where an advanced start 18170 /** gets total number of primal LPs solved so far that were resolved from an advanced start basis 18172 * @return the total number of primal LPs solved so far that were resolved from an advanced start basis 18184 /** gets total number of simplex iterations used so far in primal simplex calls where an advanced start basis 18187 * @return the total number of simplex iterations used so far in primal simplex calls where an advanced start 18200 /** gets total number of dual LPs solved so far that were resolved from an advanced start basis 18202 * @return the total number of dual LPs solved so far that were resolved from an advanced start basis 18214 /** gets total number of simplex iterations used so far in dual simplex calls where an advanced start basis 18217 * @return the total number of simplex iterations used so far in dual simplex calls where an advanced start 18274 * @return the total number of simplex iterations used so far for initial LP in node relaxations 18314 /** gets total number of times, strong branching was called (each call represents solving two LPs) 18316 * @return the total number of times, strong branching was called (each call represents solving two LPs) 18342 /** gets total number of times, strong branching was called at the root node (each call represents solving two LPs) 18344 * @return the total number of times, strong branching was called at the root node (each call represents solving two LPs) 18358 * @return the total number of simplex iterations used so far in strong branching at the root node 18478 /** get total number of constraints found in conflict analysis (conflict and reconvergence constraints) 18480 * @return the total number of constraints found in conflict analysis (conflict and reconvergence constraints) 18538 /** gets depth of current node, or -1 if no current node exists; in probing, the current node is the last probing node, 18541 * @return the depth of current node, or -1 if no current node exists; in probing, the current node is the last probing node, 18560 /** gets depth of the focus node, or -1 if no focus node exists; the focus node is the currently processed node in the 18563 * @return the depth of the focus node, or -1 if no focus node exists; the focus node is the currently processed node in the 18602 /** gets maximal depth of all processed nodes in current branch and bound run (excluding probing nodes) 18604 * @return the maximal depth of all processed nodes in current branch and bound run (excluding probing nodes) 18642 /** gets total number of backtracks, i.e. number of times, the new node was selected from the leaves queue 18644 * @return the total number of backtracks, i.e. number of times, the new node was selected from the leaves queue 18806 /** gets lower (dual) bound in transformed problem obtained by the first LP solve at the root node 18808 * @return the lower (dual) bound in transformed problem obtained by first LP solve at the root node 18824 /** gets global primal bound (objective value of best solution or user objective limit) for the original problem 18826 * @return the global primal bound (objective value of best solution or user objective limit) for the original problem 18844 /** gets global upper (primal) bound in transformed problem (objective value of best solution or user objective limit) 18846 * @return the global upper (primal) bound in transformed problem (objective value of best solution or user objective limit) 18864 /** gets global cutoff bound in transformed problem: a sub problem with lower bound larger than the cutoff 18865 * cannot contain a better feasible solution; usually, this bound is equal to the upper bound, but if the 18866 * objective value is always integral, the cutoff bound is (nearly) one less than the upper bound; 18867 * additionally, due to objective function domain propagation, the cutoff bound can be further reduced 18889 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 18892 * @note using this method in the solving stage can lead to an erroneous SCIP solving status; in particular, 18893 * if a solution not respecting the cutoff bound was found before installing a cutoff bound which 18911 /** returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound 18914 * @return TRUE if the current primal bound is justified with a feasible primal solution, otherwise FALSE 18932 /** gets current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign, 18935 * @return the current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign, 18948 /** gets current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds 18951 * @return current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds 19004 /** gets number of feasible primal solutions found so far, that improved the primal bound at the time they were found 19006 * @return the number of feasible primal solutions found so far, that improved the primal bound at the time they were found 19056 * @return the average number of pseudo cost updates for the given direction over all variables 19068 /** gets the average number of pseudo cost updates for the given direction over all variables, 19071 * @return the average number of pseudo cost updates for the given direction over all variables, 19084 /** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5 19086 * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5 19097 /** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5, 19100 * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5, 19118 /** gets the average conflict score value over all variables, only using the pseudo cost information of the current run 19120 * @return the average conflict score value over all variables, only using the pseudo cost information of the current run 19144 /** gets the average conflictlength score value over all variables, only using the pseudo cost information of the 19147 * @return the average conflictlength score value over all variables, only using the pseudo cost information of the 19159 /** returns the average number of inferences found after branching in given direction over all variables 19161 * @return the average number of inferences found after branching in given direction over all variables 19173 /** returns the average number of inferences found after branching in given direction over all variables, 19176 * @return the average number of inferences found after branching in given direction over all variables, 19202 /** gets the average inference score value over all variables, only using the inference information information of the 19205 * @return the average inference score value over all variables, only using the inference information information of the 19217 /** returns the average number of cutoffs found after branching in given direction over all variables 19219 * @return the average number of cutoffs found after branching in given direction over all variables 19231 /** returns the average number of cutoffs found after branching in given direction over all variables, 19234 * @return the average number of cutoffs found after branching in given direction over all variables, 19260 /** gets the average cutoff score value over all variables, only using the pseudo cost information of the current run 19262 * @return the average cutoff score value over all variables, only using the pseudo cost information of the current run 19275 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19302 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19327 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19330 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and 19352 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19374 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19396 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19406 SCIP_VERBLEVEL verblevel, /**< minimal verbosity level to actually display the information line */ 19410 /** gets total number of implications between variables that are stored in the implication graph 19412 * @return the total number of implications between variables that are stored in the implication graph 19428 /** stores conflict graph of binary variables' implications into a file, which can be used as input for the DOT tool 19430 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19475 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19486 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19497 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19508 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19519 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19530 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19541 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19553 * Method reads the value of the parameter timing/statistictiming. In order to disable statistic timing, 19559 * @see: For completely disabling all timing of SCIP, consider setting the parameter timing/enabled to FALSE 19584 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19610 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19646 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19658 * @return the current total SCIP time in seconds, ie. the total time since the SCIP instance has been created 19831 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19842 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19854 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19865 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 19886 /** returns the minimum value that is regarded as huge and should be handled separately (e.g., in activity 19941 /** checks, if value is huge and should be handled separately (e.g., in activity computation) */ 20096 /** checks, if relative difference of val1 and val2 is not greater than feasibility tolerance */ 20199 /** checks, if relative difference of val1 and val2 is not greater than dual feasibility tolerance */ 20207 /** checks, if relative difference of val1 and val2 is greater than dual feasibility tolerance */ 20215 /** checks, if relative difference of val1 and val2 is not lower than -dual feasibility tolerance */ 20286 /** checks, if the given new lower bound is tighter (w.r.t. bound strengthening epsilon) than the old one */ 20295 /** checks, if the given new upper bound is tighter (w.r.t. bound strengthening epsilon) than the old one */ 20383 /** converts the given real number representing an integer to an int; in optimized mode the function gets inlined for 20392 /** converts the given real number representing an integer to a long integer; in optimized mode the function gets inlined for 20402 * This is useful, if the value, e.g., the activity of a linear constraint or the pseudo objective value, gets a high 20403 * absolute value during the optimization process which is later reduced significantly. In this case, the last digits 20405 * We do not consider the cancellations which can occur during increasing the absolute value because they just cannot 20407 * In order to get more reliable values, the idea is to always store the last reliable value, where increasing the 20408 * absolute of the value is viewed as preserving reliability. Then, after each update, the new absolute value can be 20409 * compared against the last reliable one with this method, checking whether it was decreased by a factor of at least 20421 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and 20438 #define SCIPisScalingIntegral(scip, val, scalar) SCIPsetIsScalingIntegral((scip)->set, val, scalar) 20484 #define SCIPisLbBetter(scip, newlb, oldlb, oldub) SCIPsetIsLbBetter(scip->set, newlb, oldlb, oldub) 20485 #define SCIPisUbBetter(scip, newub, oldlb, oldub) SCIPsetIsUbBetter(scip->set, newub, oldlb, oldub) 20498 #define SCIPconvertRealToInt(scip, real) ((int)((real) < 0 ? ((real) - 0.5) : ((real) + 0.5))) 20499 #define SCIPconvertRealToLongint(scip, real) ((SCIP_Longint)((real) < 0 ? ((real) - 0.5) : ((real) + 0.5))) 20501 #define SCIPisUpdateUnreliable(scip, newval, oldval) SCIPsetIsUpdateUnreliable((scip)->set, newval, oldval) 20530 #define SCIPallocClearMemoryArray(scip,ptr,num) ( (BMSallocClearMemoryArray((ptr), (num)) == NULL) \ 20534 #define SCIPreallocMemoryArray(scip,ptr,newnum) ( (BMSreallocMemoryArray((ptr), (newnum)) == NULL) \ 20536 #define SCIPreallocMemorySize(scip,ptr,newsize) ( (BMSreallocMemorySize((ptr), (newsize)) == NULL) \ 20538 #define SCIPduplicateMemory(scip, ptr, source) ( (BMSduplicateMemory((ptr), (source)) == NULL) \ 20540 #define SCIPduplicateMemoryArray(scip, ptr, source, num) ( (BMSduplicateMemoryArray((ptr), (source), (num)) == NULL) \ 20554 #define SCIPallocBlockMemory(scip,ptr) ( (BMSallocBlockMemory(SCIPblkmem(scip), (ptr)) == NULL) \ 20556 #define SCIPallocBlockMemoryArray(scip,ptr,num) ( (BMSallocBlockMemoryArray(SCIPblkmem(scip), (ptr), (num)) == NULL) \ 20558 #define SCIPallocBlockMemorySize(scip,ptr,size) ( (BMSallocBlockMemorySize(SCIPblkmem(scip), (ptr), (size)) == NULL) \ 20560 #define SCIPallocClearBlockMemoryArray(scip,ptr,num) ( (BMSallocClearBlockMemoryArray(SCIPblkmem(scip), (ptr), (num)) == NULL) \ 20562 #define SCIPreallocBlockMemoryArray(scip,ptr,oldnum,newnum) ( (BMSreallocBlockMemoryArray(SCIPblkmem(scip), (ptr), (oldnum), (newnum)) == NULL) \ 20564 #define SCIPreallocBlockMemorySize(scip,ptr,oldsize,newsize) ( (BMSreallocBlockMemorySize(SCIPblkmem(scip), (ptr), (oldsize), (newsize)) == NULL) \ 20566 #define SCIPduplicateBlockMemory(scip, ptr, source) ( (BMSduplicateBlockMemory(SCIPblkmem(scip), (ptr), (source)) == NULL) \ 20568 #define SCIPduplicateBlockMemoryArray(scip, ptr, source, num) ( (BMSduplicateBlockMemoryArray(SCIPblkmem(scip), (ptr), (source), (num)) == NULL) \ 20570 #define SCIPensureBlockMemoryArray(scip,ptr,arraysizeptr,minsize) ( (SCIPensureBlockMemoryArray_call((scip), (void**)(ptr), sizeof(**(ptr)), (arraysizeptr), (minsize))) ) 20573 #define SCIPfreeBlockMemoryArray(scip,ptr,num) BMSfreeBlockMemoryArray(SCIPblkmem(scip), (ptr), (num)) 20574 #define SCIPfreeBlockMemoryArrayNull(scip,ptr,num) BMSfreeBlockMemoryArrayNull(SCIPblkmem(scip), (ptr), (num)) 20575 #define SCIPfreeBlockMemorySize(scip,ptr,size) BMSfreeBlockMemorySize(SCIPblkmem(scip), (ptr), (size)) 20576 #define SCIPfreeBlockMemorySizeNull(scip,ptr,size) BMSfreeBlockMemorySizeNull(SCIPblkmem(scip), (ptr), (size)) 20585 #define SCIPallocBufferArray(scip,ptr,num) ( (BMSallocBufferMemoryArray(SCIPbuffer(scip), (ptr), (num)) == NULL) \ 20587 #define SCIPallocClearBufferArray(scip,ptr,num) ( (BMSallocClearBufferMemoryArray(SCIPbuffer(scip), (ptr), (num)) == NULL) \ 20589 #define SCIPreallocBufferArray(scip,ptr,num) ( (BMSreallocBufferMemoryArray(SCIPbuffer(scip), (ptr), (num)) == NULL) \ 20591 #define SCIPduplicateBuffer(scip,ptr,source) ( (BMSduplicateBufferMemory(SCIPbuffer(scip), (ptr), (source), (size_t)sizeof(**(ptr))) \ 20593 #define SCIPduplicateBufferArray(scip,ptr,source,num) ( (BMSduplicateBufferMemoryArray(SCIPbuffer(scip), (ptr), (source), (num)) == NULL) \ 20598 #define SCIPfreeBufferArrayNull(scip,ptr) BMSfreeBufferMemoryArrayNull(SCIPbuffer(scip), (ptr)) 20601 #define SCIPallocCleanBuffer(scip,ptr) ( (BMSallocBufferMemory(SCIPcleanbuffer(scip), (ptr)) == NULL) \ 20603 #define SCIPallocCleanBufferArray(scip,ptr,num) ( (BMSallocBufferMemoryArray(SCIPcleanbuffer(scip), (ptr), (num)) == NULL) \ 20606 #define SCIPfreeCleanBufferNull(scip,ptr) BMSfreeBufferMemoryNull(SCIPcleanbuffer(scip), (ptr)) 20607 #define SCIPfreeCleanBufferArray(scip,ptr) BMSfreeBufferMemoryArray(SCIPcleanbuffer(scip), (ptr)) 20608 #define SCIPfreeCleanBufferArrayNull(scip,ptr) BMSfreeBufferMemoryArrayNull(SCIPcleanbuffer(scip), (ptr)) 20671 /** extends a dynamically allocated block memory array to be able to store at least the given number of elements; 20674 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20706 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20717 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20728 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20759 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20772 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20805 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20816 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20827 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20840 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20862 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20875 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20908 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20919 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20930 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20943 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20965 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 20998 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 21009 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 21020 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 21033 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 21052 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref 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 SCIPdeleteReoptnode(SCIP *scip, SCIP_REOPTNODE **reoptnode) 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) void SCIPenableDebugSol(SCIP *scip) SCIP_RETCODE SCIPstartClock(SCIP *scip, SCIP_CLOCK *clck) 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 SCIPapplyCutsProbing(SCIP *scip, SCIP_Bool *cutoff) SCIP_RETCODE SCIPsetLongintParam(SCIP *scip, const char *name, SCIP_Longint value) SCIP_COMPR ** SCIPgetComprs(SCIP *scip) 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 SCIPincludePresolBasic(SCIP *scip, SCIP_PRESOL **presolptr, const char *name, const char *desc, int priority, int maxrounds, SCIP_PRESOLTIMING timing, SCIP_DECL_PRESOLEXEC((*presolexec)), SCIP_PRESOLDATA *presoldata) 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 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_Real SCIPgetVarMultaggrLbLocal(SCIP *scip, SCIP_VAR *var) 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_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 SCIPenableReoptimization(SCIP *scip, SCIP_Bool enable) 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_Real SCIPgetVarObjProbing(SCIP *scip, SCIP_VAR *var) 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) SCIP_RETCODE SCIPsetComprPriority(SCIP *scip, SCIP_COMPR *compr, int priority) 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) void SCIPupdateDivesetLPStats(SCIP *scip, SCIP_DIVESET *diveset, SCIP_Longint niterstoadd) 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 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_RETCODE SCIPremoveVarFromGlobalStructures(SCIP *scip, SCIP_VAR *var) SCIP_Real SCIPgetVarMultaggrLbGlobal(SCIP *scip, SCIP_VAR *var) 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 SCIPinferVarFixProp(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened) 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_Real SCIPgetVarMultaggrUbLocal(SCIP *scip, SCIP_VAR *var) SCIP_RETCODE SCIPgetBinvarRepresentatives(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **repvars, SCIP_Bool *negated) void SCIPgetReoptnodePath(SCIP *scip, SCIP_REOPTNODE *reoptnode, SCIP_VAR **vars, SCIP_Real *vals, SCIP_BOUNDTYPE *boundtypes, int mem, int *nvars, int *nafterdualvars) SCIP_RETCODE SCIPresetParams(SCIP *scip) SCIP_RETCODE SCIPaddPricedVar(SCIP *scip, SCIP_VAR *var, SCIP_Real score) SCIP_Bool SCIPpscostThresholdProbabilityTest(SCIP *scip, SCIP_VAR *var, SCIP_Real frac, SCIP_Real threshold, SCIP_BRANCHDIR dir, SCIP_CONFIDENCELEVEL clevel) 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 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_RETCODE SCIPgetVarStrongbranchWithPropagation(SCIP *scip, SCIP_VAR *var, SCIP_Real solval, SCIP_Real lpobjval, int itlim, int maxproprounds, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Longint *ndomredsdown, SCIP_Longint *ndomredsup, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror, SCIP_Real *newlbs, SCIP_Real *newubs) SCIP_RETCODE SCIPpresolCons(SCIP *scip, SCIP_CONS *cons, int nrounds, SCIP_PRESOLTIMING presoltiming, 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_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_Real SCIPcalculatePscostConfidenceBound(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun, SCIP_CONFIDENCELEVEL clevel) 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 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, SCIP_Real maxweight, int *weightinds, int nweightinds, int rowlensum, 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) 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_RETCODE SCIPresetReoptnodeDualcons(SCIP *scip, SCIP_NODE *node) 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 SCIPwriteParam(SCIP *scip, SCIP_PARAM *param, const char *filename, SCIP_Bool comments, SCIP_Bool onlychanged) 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 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_Bool SCIPallowDualReds(SCIP *scip) BMS_BUFMEM * SCIPbuffer(SCIP *scip) 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))) SCIP_RETCODE SCIPgetReoptOldObjCoef(SCIP *scip, SCIP_VAR *var, int run, SCIP_Real *objcoef) 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) void SCIPaddBilinMcCormick(SCIP *scip, SCIP_Real bilincoef, SCIP_Real lbx, SCIP_Real ubx, SCIP_Real refpointx, SCIP_Real lby, SCIP_Real uby, SCIP_Real refpointy, SCIP_Bool overestimate, SCIP_Real *lincoefx, SCIP_Real *lincoefy, SCIP_Real *linconstant, SCIP_Bool *success) int SCIPgetNDelayedPoolCuts(SCIP *scip) int SCIPgetNCutsFoundRound(SCIP *scip) void SCIPaddSquareLinearization(SCIP *scip, SCIP_Real sqrcoef, SCIP_Real refpoint, SCIP_Bool isint, SCIP_Real *lincoef, SCIP_Real *linconstant, SCIP_Bool *success) 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_RETCODE SCIPaddReoptDualBndchg(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound, SCIP_Real oldbound) SCIP_Real SCIPgetAvgPseudocostCurrentRun(SCIP *scip, SCIP_Real solvaldelta) SCIP_RETCODE SCIPsetBranchruleExecPs(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHEXECPS((*branchexecps))) SCIP_Bool SCIPisDualfeasGE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPfreeBoolarray(SCIP *scip, SCIP_BOOLARRAY **boolarray) SCIP_RETCODE SCIPinitVarValueBranchStats(SCIP *scip, SCIP_VAR *var, SCIP_Real value, SCIP_Real downvsids, SCIP_Real upvsids, SCIP_Real downconflen, SCIP_Real upconflen, SCIP_Real downinfer, SCIP_Real upinfer, SCIP_Real downcutoff, SCIP_Real upcutoff) 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) void SCIPdisableDebugSol(SCIP *scip) SCIP_Bool SCIPdoNotMultaggrVar(SCIP *scip, SCIP_VAR *var) type definitions for presolvers SCIP_Bool SCIPisNLPConstructed(SCIP *scip) 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, int *inds, int ninds, SCIP_Real scale, SCIP_Real *mircoef, SCIP_Real *mirrhs, SCIP_Real *cutactivity, SCIP_Bool *success, SCIP_Bool *cutislocal, int *cutrank) 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_RETCODE SCIPcreateDiveset(SCIP *scip, SCIP_DIVESET **diveset, SCIP_HEUR *heur, const char *name, SCIP_Real minreldepth, SCIP_Real maxreldepth, SCIP_Real maxlpiterquot, SCIP_Real maxdiveubquot, SCIP_Real maxdiveavgquot, SCIP_Real maxdiveubquotnosol, SCIP_Real maxdiveavgquotnosol, SCIP_Real lpresolvedomchgquot, int lpsolvefreq, int maxlpiterofs, SCIP_Bool backtrack, SCIP_Bool onlylpbranchcands, SCIP_Bool specificsos1score, SCIP_DECL_DIVESETGETSCORE((*divesetgetscore))) 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_RETCODE SCIPcheckStringParam(SCIP *scip, SCIP_PARAM *param, const char *value) SCIP_Real SCIPgetRowMaxCoef(SCIP *scip, SCIP_ROW *row) 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 SCIPcheckReoptRestart(SCIP *scip, SCIP_NODE *node, SCIP_Bool *restart) SCIP_RETCODE SCIPsetReoptCompression(SCIP *scip, SCIP_REOPTNODE **representation, int nrepresentatives, SCIP_Bool *success) 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))) 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) BMS_BUFMEM * SCIPcleanbuffer(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 SCIPrecomputeSolObj(SCIP *scip, SCIP_SOL *sol) 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_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 SCIPinitRepresentation(SCIP *scip, SCIP_REOPTNODE **representatives, int nrepresentatives) 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_RETCODE SCIPincludePresol(SCIP *scip, const char *name, const char *desc, int priority, int maxrounds, SCIP_PRESOLTIMING timing, 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_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 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 SCIPupdateDivesetStats(SCIP *scip, SCIP_DIVESET *diveset, int nprobingnodes, int nbacktracks, SCIP_Longint nsolsfound, SCIP_Longint nbestsolsfound, SCIP_Bool leavewassol) 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) SCIP_RETCODE SCIPgetDiveBoundChanges(SCIP *scip, SCIP_DIVESET *diveset, SCIP_SOL *sol, SCIP_Bool *success, SCIP_Bool *infeasible) 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) void SCIPgetDiveBoundChangeData(SCIP *scip, SCIP_VAR ***variables, SCIP_BRANCHDIR **directions, SCIP_Real **values, int *ndivebdchgs, SCIP_Bool preferred) 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 SCIPgetLPBInvARow(SCIP *scip, int r, SCIP_Real *binvrow, SCIP_Real *coefs, int *inds, int *ninds) 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) int SCIPgetNReoptRuns(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 SCIPcleanupCliques(SCIP *scip, SCIP_Bool *infeasible) 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) int SCIPgetNReoptLeaves(SCIP *scip, SCIP_NODE *node) 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) SCIP_RETCODE SCIPsetConshdlrGetDiveBdChgs(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSGETDIVEBDCHGS((*consgetdivebdchgs))) 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 SCIPgetLPBInvCol(SCIP *scip, int c, SCIP_Real *coefs, int *inds, int *ninds) 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))) int SCIPgetNCompr(SCIP *scip) SCIP_RETCODE SCIPchgNlRowRhs(SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real rhs) SCIP_RETCODE SCIPaddClique(SCIP *scip, SCIP_VAR **vars, SCIP_Bool *values, int nvars, SCIP_Bool isequation, SCIP_Bool *infeasible, int *nbdchgs) 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) int SCIPgetDepthLimit(SCIP *scip) 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) SCIP_RETCODE SCIPaddReoptnodeBndchg(SCIP *scip, SCIP_REOPTNODE *reoptnode, SCIP_VAR *var, SCIP_Real val, SCIP_BOUNDTYPE boundtype) 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) void SCIPsetFocusnodeLP(SCIP *scip, SCIP_Bool solvelp) 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_Bool SCIPsignificantVarPscostDifference(SCIP *scip, SCIP_VAR *varx, SCIP_Real fracx, SCIP_VAR *vary, SCIP_Real fracy, SCIP_BRANCHDIR dir, SCIP_CONFIDENCELEVEL clevel, SCIP_Bool onesided) 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_RETCODE SCIPmergeVariableStatistics(SCIP *sourcescip, SCIP *targetscip, SCIP_VAR **sourcevars, SCIP_VAR **targetvars, int nvars) SCIP_Bool SCIPisRelGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPendDiveNLP(SCIP *scip) SCIP_RETCODE SCIPincludeCompr(SCIP *scip, const char *name, const char *desc, int priority, int minnnodes, SCIP_DECL_COMPRCOPY((*comprcopy)), SCIP_DECL_COMPRFREE((*comprfree)), SCIP_DECL_COMPRINIT((*comprinit)), SCIP_DECL_COMPREXIT((*comprexit)), SCIP_DECL_COMPRINITSOL((*comprinitsol)), SCIP_DECL_COMPREXITSOL((*comprexitsol)), SCIP_DECL_COMPREXEC((*comprexec)), SCIP_COMPRDATA *comprdata) SCIP_RETCODE SCIPwriteCliqueGraph(SCIP *scip, const char *fname, SCIP_Bool writenodeweights) SCIP_RETCODE SCIPaddConsLocks(SCIP *scip, SCIP_CONS *cons, int nlockspos, int nlocksneg) SCIP_RETCODE SCIPpropagateProbingImplications(SCIP *scip, SCIP_Bool *cutoff) SCIP_RETCODE SCIPresetRepresentation(SCIP *scip, SCIP_REOPTNODE **representatives, int nrepresentatives) 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_RETCODE SCIPsetConshdlrPresol(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPRESOL((*conspresol)), int maxprerounds, SCIP_PRESOLTIMING presoltiming) 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 SCIPsetConshdlrProp(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPROP((*consprop)), int propfreq, SCIP_Bool delayprop, SCIP_PROPTIMING proptiming) 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) SCIP_RETCODE SCIPsetComprFree(SCIP *scip, SCIP_COMPR *compr, SCIP_DECL_COMPRFREE((*comprfree))) 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_SOL * SCIPgetReoptLastOptSol(SCIP *scip) 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) int SCIPgetNReoptnodes(SCIP *scip, SCIP_NODE *node) 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_RETCODE SCIPchgVarObjProbing(SCIP *scip, SCIP_VAR *var, SCIP_Real newobj) SCIP_RETCODE SCIPaddRowProbing(SCIP *scip, SCIP_ROW *row) 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) void SCIPgetVarCoefChg(SCIP *scip, int varidx, SCIP_Bool *negated, SCIP_Bool *entering, SCIP_Bool *leaving) 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 SCIPgetLPBInvACol(SCIP *scip, int c, SCIP_Real *coefs, int *inds, int *ninds) 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_RETCODE SCIPsetComprCopy(SCIP *scip, SCIP_COMPR *compr, SCIP_DECL_COMPRCOPY((*comprcopy))) 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))) SCIP_COMPR * SCIPfindCompr(SCIP *scip, const char *name) public methods for variable pricers void SCIPaddSquareSecant(SCIP *scip, SCIP_Real sqrcoef, SCIP_Real lb, SCIP_Real ub, SCIP_Real refpoint, SCIP_Real *lincoef, SCIP_Real *linconstant, SCIP_Bool *success) SCIP_RETCODE SCIPsetComprExitsol(SCIP *scip, SCIP_COMPR *compr, SCIP_DECL_COMPREXITSOL((*comprexitsol))) 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_RETCODE SCIPsetPropPresol(SCIP *scip, SCIP_PROP *prop, SCIP_DECL_PROPPRESOL((*proppresol)), int presolpriority, int presolmaxrounds, SCIP_PRESOLTIMING presoltiming) SCIP_Real SCIPgetVarMultaggrUbGlobal(SCIP *scip, SCIP_VAR *var) 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 SCIPgetDivesetScore(SCIP *scip, SCIP_DIVESET *diveset, SCIP_DIVETYPE divetype, SCIP_VAR *divecand, SCIP_Real divecandsol, SCIP_Real divecandfrac, SCIP_Real *candscore, SCIP_Bool *roundup) 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_Bool SCIPallowObjProp(SCIP *scip) 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_RETCODE SCIPapplyReopt(SCIP *scip, SCIP_REOPTNODE *reoptnode, unsigned int id, SCIP_Real estimate, SCIP_NODE **childnodes, int *ncreatedchilds, int *naddedconss, int childnodessize, SCIP_Bool *success) 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_RETCODE SCIPaddReoptnodeCons(SCIP *scip, SCIP_REOPTNODE *reoptnode, SCIP_VAR **vars, SCIP_Real *vals, int nvars, REOPT_CONSTYPE constype) SCIP_BRANCHRULE ** SCIPgetBranchrules(SCIP *scip) SCIP_RETCODE SCIPaddQuadVarsToNlRow(SCIP *scip, SCIP_NLROW *nlrow, int nvars, SCIP_VAR **vars) SCIP_Real SCIPgetObjlimit(SCIP *scip) void SCIPaddBilinLinearization(SCIP *scip, SCIP_Real bilincoef, SCIP_Real refpointx, SCIP_Real refpointy, SCIP_Real *lincoefx, SCIP_Real *lincoefy, SCIP_Real *linconstant, SCIP_Bool *success) 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 SCIPgetReoptChildIDs(SCIP *scip, SCIP_NODE *node, unsigned int *ids, int mem, int *nids) 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 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 SCIPgetReoptSimilarity(SCIP *scip, int run1, int run2) SCIP_Real SCIPcomputeVarUbLocal(SCIP *scip, SCIP_VAR *var) void SCIPverbMessage(SCIP *scip, SCIP_VERBLEVEL msgverblevel, FILE *file, const char *formatstr,...) SCIP_RETCODE SCIPsetComprExit(SCIP *scip, SCIP_COMPR *compr, SCIP_DECL_COMPREXIT((*comprexit))) 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_RETCODE SCIPinferVarFixCons(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_CONS *infercons, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened) SCIP_Bool SCIPisGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_Longint SCIPgetNRootStrongbranchs(SCIP *scip) SCIP_CLIQUE ** SCIPgetCliques(SCIP *scip) SCIP_RETCODE SCIPcreateSolCopyOrig(SCIP *scip, SCIP_SOL **sol, SCIP_SOL *sourcesol) 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 SCIPprintReoptStatistics(SCIP *scip, FILE *file) 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) type definitions for tree compression SCIP_Bool SCIPisSumEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2) SCIP_RETCODE SCIPchgNlRowLhs(SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real lhs) int SCIPgetEffectiveRootDepth(SCIP *scip) 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) public methods for tree compressions 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_RETCODE SCIPgetLPBInvRow(SCIP *scip, int r, SCIP_Real *coefs, int *inds, int *ninds) 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 needscons, SCIP_PROPTIMING proptiming, SCIP_PRESOLTIMING presoltiming, 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_DECL_CONSGETDIVEBDCHGS((*consgetdivebdchgs)), SCIP_CONSHDLRDATA *conshdlrdata) 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_Bool SCIPisVarPscostRelerrorReliable(SCIP *scip, SCIP_VAR *var, SCIP_Real threshold, SCIP_CONFIDENCELEVEL clevel) SCIP_RETCODE SCIPcheckBoolParam(SCIP *scip, SCIP_PARAM *param, SCIP_Bool value) 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) SCIP_RETCODE SCIPsetComprInit(SCIP *scip, SCIP_COMPR *compr, SCIP_DECL_COMPRINIT((*comprinit))) int SCIPgetNImplVars(SCIP *scip) void SCIPresetReoptSolMarks(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 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) void SCIPclearDiveBoundChanges(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) SCIP_RETCODE SCIPfreeRepresentation(SCIP *scip, SCIP_REOPTNODE **representatives, int nrepresentatives) 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) SCIP_Bool SCIPisReoptEnabled(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_Longint SCIPgetNPrimalLPs(SCIP *scip) SCIP_RETCODE SCIPgetReopSolsRun(SCIP *scip, int run, SCIP_SOL **sols, int allocmem, int *nsols) 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 SCIPcheckCharParam(SCIP *scip, SCIP_PARAM *param, const char value) SCIP_RETCODE SCIPsetObjlimit(SCIP *scip, SCIP_Real objlimit) SCIP_RETCODE SCIPgetReoptLeaveIDs(SCIP *scip, SCIP_NODE *node, unsigned int *ids, int mem, int *nids) 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) Definition: objbranchrule.h:33 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 SCIPincludeProp(SCIP *scip, const char *name, const char *desc, int priority, int freq, SCIP_Bool delay, SCIP_PROPTIMING timingmask, int presolpriority, int presolmaxrounds, SCIP_PRESOLTIMING presoltiming, 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 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 SCIPsetComprInitsol(SCIP *scip, SCIP_COMPR *compr, SCIP_DECL_COMPRINITSOL((*comprinitsol))) 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_RELAX ** SCIPgetRelaxs(SCIP *scip) SCIP_RETCODE SCIPsetConshdlrExit(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSEXIT((*consexit))) SCIP_RETCODE SCIPstartDiveNLP(SCIP *scip) SCIP_RETCODE SCIPincludeComprBasic(SCIP *scip, SCIP_COMPR **compr, const char *name, const char *desc, int priority, int minnnodes, SCIP_DECL_COMPREXEC((*comprexec)), SCIP_COMPRDATA *comprdata) 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_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 SCIPcheckLongintParam(SCIP *scip, SCIP_PARAM *param, SCIP_Longint value) 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_Real SCIPgetVarPseudocostVariance(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun) 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_REOPTNODE * SCIPgetReoptnode(SCIP *scip, unsigned int id) 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_RETCODE SCIPaddDiveBoundChange(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Real value, SCIP_Bool preferred) SCIP_Bool SCIPinDive(SCIP *scip) SCIP_RETCODE SCIPsetIntarrayVal(SCIP *scip, SCIP_INTARRAY *intarray, int idx, int val) SCIP_RETCODE SCIPsplitReoptRoot(SCIP *scip, int *ncreatedchilds, int *naddedconss) 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_Bool SCIPreoptimizeNode(SCIP *scip, SCIP_NODE *node) SCIP_RETCODE SCIPwriteLP(SCIP *scip, const char *filename) SCIP_RETCODE SCIPsetRelaxSolValsSol(SCIP *scip, SCIP_SOL *sol) |