All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
scip.h
Go to the documentation of this file.
27 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
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
382 /** installs the given message handler, such that all messages are passed to this handler. A messages handler can be
385 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
392 * @note The currently installed messages handler gets freed if this SCIP instance is its last user (w.r.t. capture/release).
397 SCIP_MESSAGEHDLR* messagehdlr /**< message handler to install, or NULL to suppress all output */
431 /** prints a dialog message that requests user interaction or is a direct response to a user interactive command */
483 /** copies plugins from sourcescip to targetscip; in case that a constraint handler which does not need constraints
484 * cannot be copied, valid will return FALSE. All plugins can declare that, if their copy process failed, the
488 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
492 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
510 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution
544 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
546 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
564 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution
578 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
586 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
588 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
606 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution
620 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
625 /** returns copy of the source variable; if there already is a copy of the source variable in the variable hash map,
626 * it is just returned as target variable; elsewise a new variable will be created and added to the target SCIP; this
629 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
631 * @note if a new variable was created, this variable will be added to the target-SCIP, but it is not captured
633 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
667 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
669 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
675 /** copies all active variables from source-SCIP and adds these variable to the target-SCIP; the mapping between these
676 * variables are stored in the variable hashmap, target-SCIP has to be in problem creation stage, fixed and aggregated
681 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
684 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
711 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
713 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
718 /** copies all original variables from source-SCIP and adds these variable to the target-SCIP; the mapping between these
719 * variables are stored in the variable hashmap, target-SCIP has to be in problem creation stage, fixed and aggregated
724 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
727 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
754 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
756 SCIP_HASHMAP* consmap /**< a hashmap to store the mapping of source constraints to the corresponding
760 /** merges the histories of variables from a source SCIP into a target SCIP. The two data structures should point to
763 * @note the notion of source and target is inverted here; \p sourcescip usually denotes a copied SCIP instance, whereas
776 /** returns copy of the source constraint; if there already is a copy of the source constraint in the constraint hash
777 * map, it is just returned as target constraint; elsewise a new constraint will be created; this created constraint is
778 * added to the constraint hash map and returned as target constraint; the variable map is used to map the variables of
781 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution may
782 * be declared feasible even if it violates this particular constraint. This constellation should only be
783 * used, if no LP or pseudo solution can violate the constraint -- e.g. if a local constraint is redundant due
786 * @note The constraint is not added to the target SCIP. You can check whether a constraint is added by calling
787 * SCIPconsIsAdded(). (If you mix SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add
790 * @note The constraint is always captured, either during the creation of the copy or after finding the copy of the
793 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
796 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
833 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding
835 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
837 const char* name, /**< name of constraint, or NULL if the name of the source constraint should be used */
846 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup? */
847 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
854 * variables between the source and the target SCIP a hash map can be given; if the variable hash
855 * map is NULL or necessary variable mapping is missing, the required variables are created in the
856 * target-SCIP and added to the hash map, if not NULL; all variables which are created are added to
860 * @note the constraints are added to the target-SCIP but are not (user) captured in the target SCIP. (If you mix
861 * SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add explicitly and what is already
864 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
867 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
894 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding
896 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
904 /** copies all original constraints from the source-SCIP and adds these to the target-SCIP; for mapping the
905 * variables between the source and the target SCIP a hash map can be given; if the variable hash
906 * map is NULL or necessary variable mapping is missing, the required variables are created in the
907 * target-SCIP and added to the hash map, if not NULL; all variables which are created are added to
911 * @note the constraints are added to the target-SCIP but are not (user) captured in the target SCIP. (If you mix
912 * SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add explicitly and what is already
915 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
918 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
945 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding
947 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
958 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
979 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
987 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
990 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1025 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1033 * This function should be called for a targetscip in transformed stage. It can save time in presolving of the
1036 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1039 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1073 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1083 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1086 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1151 * @note all variables and constraints which are created in the target-SCIP are not (user) captured
1153 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1157 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1187 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1191 SCIP_Bool enablepricing, /**< should pricing be enabled in copied SCIP instance? If TRUE, pricer
1199 /** copies source SCIP original problem to target SCIP; the copying process is done in the following order:
1206 * @note all variables and constraints which are created in the target-SCIP are not (user) captured
1208 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1212 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1242 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1244 const char* suffix, /**< suffix which will be added to the names of the target SCIP, might be empty */
1245 SCIP_Bool enablepricing, /**< should pricing be enabled in copied SCIP instance? If TRUE, pricer
1262 /** creates a SCIP_Bool parameter, sets it to its default value, and adds it to the parameter set
1264 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1281 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1298 /** creates a SCIP_Longint parameter, sets it to its default value, and adds it to the parameter set
1300 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1317 /** creates a SCIP_Real parameter, sets it to its default value, and adds it to the parameter set
1319 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1338 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1349 const char* allowedvalues, /**< array with possible parameter values, or NULL if not restricted */
1354 /** creates a string(char*) parameter, sets it to its default value, and adds it to the parameter set
1356 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1364 char** valueptr, /**< pointer to store the current parameter value, or NULL; if not NULL then *valueptr should be NULL */
1393 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1405 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1417 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1429 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1441 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1453 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1465 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1468 * @note: Be careful with this method! Some general settings, e.g., the time or node limit, should not be fixed because
1479 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1490 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1502 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1514 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1524 /** checks the value of an existing SCIP_Bool parameter; issues a warning message if value was invalid
1526 * @return \ref SCIP_OKAY is returned if value is valid. Otherwise \ref SCIP_PARAMETERWRONGVAL is returned.
1537 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1549 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1561 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1573 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1583 /** checks parameter value according to the given feasible domain; issues a warning message if value was invalid
1585 * @return \ref SCIP_OKAY is returned if value is valid. Otherwise \ref SCIP_PARAMETERWRONGVAL is returned.
1596 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1608 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1620 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1632 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1642 /** checks parameter value according to the given feasible domain; issues a warning message if value was invalid
1644 * @return \ref SCIP_OKAY is returned if value is valid. Otherwise \ref SCIP_PARAMETERWRONGVAL is returned.
1655 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1667 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1677 /** checks parameter value according to the given feasible domain; issues a warning message if value was invalid
1679 * @return \ref SCIP_OKAY is returned if value is valid. Otherwise \ref SCIP_PARAMETERWRONGVAL is returned.
1690 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1701 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1717 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1732 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1743 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1761 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1771 /** sets parameters to deactivate separators and heuristics that use auxiliary SCIP instances; should be called for
1774 * @note only deactivates plugins which could cause recursion, some plugins which use sub-SCIPs stay activated
1776 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1792 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1809 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1826 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1866 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1873 * @note method has all reader callbacks as arguments and is thus changed every time a new callback is added
1883 SCIP_DECL_READERCOPY ((*readercopy)), /**< copy method of reader or NULL if you don't want to copy your plugin into sub-SCIPs */
1890 /** creates a reader and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
1894 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1901 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeReader() instead
1915 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1926 SCIP_DECL_READERCOPY ((*readercopy)) /**< copy method of reader or NULL if you don't want to copy your plugin into sub-SCIPs */
1931 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1947 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1963 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1997 * To use the variable pricer for solving a problem, it first has to be activated with a call to SCIPactivatePricer().
2000 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2007 * @note method has all pricer callbacks as arguments and is thus changed every time a new callback is added
2022 SCIP_DECL_PRICERCOPY ((*pricercopy)), /**< copy method of variable pricer or NULL if you don't want to copy your plugin into sub-SCIPs */
2026 SCIP_DECL_PRICERINITSOL((*pricerinitsol)),/**< solving process initialization method of variable pricer */
2027 SCIP_DECL_PRICEREXITSOL((*pricerexitsol)),/**< solving process deinitialization method of variable pricer */
2028 SCIP_DECL_PRICERREDCOST((*pricerredcost)),/**< reduced cost pricing method of variable pricer for feasible LPs */
2029 SCIP_DECL_PRICERFARKAS((*pricerfarkas)), /**< Farkas pricing method of variable pricer for infeasible LPs */
2033 /** creates a variable pricer and includes it in SCIP with all non-fundamental callbacks set to NULL;
2034 * if needed, these can be added afterwards via setter functions SCIPsetPricerCopy(), SCIPsetPricerFree(),
2038 * To use the variable pricer for solving a problem, it first has to be activated with a call to SCIPactivatePricer().
2041 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2048 * @note if you want to set all callbacks with a single method call, consider using SCIPincludePricer() instead
2062 SCIP_DECL_PRICERREDCOST((*pricerredcost)),/**< reduced cost pricing method of variable pricer for feasible LPs */
2063 SCIP_DECL_PRICERFARKAS((*pricerfarkas)), /**< Farkas pricing method of variable pricer for infeasible LPs */
2069 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2080 SCIP_DECL_PRICERCOPY ((*pricercopy)) /**< copy method of pricer or NULL if you don't want to copy your plugin into sub-SCIPs */
2085 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2101 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2117 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2133 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2144 SCIP_DECL_PRICERINITSOL ((*pricerinitsol))/**< solving process initialization method of pricer */
2149 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2160 SCIP_DECL_PRICEREXITSOL((*pricerexitsol)) /**< solving process deinitialization method of pricer */
2170 /** returns the array of currently available variable pricers; active pricers are in the first slots of the array */
2182 /** returns the number of currently active variable pricers, that are used in the LP solving loop */
2197 * This method should be called during the problem creation stage for all pricers that are necessary to solve
2201 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2215 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2230 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2237 * @note method has all constraint handler callbacks as arguments and is thus changed every time a new
2249 int chckpriority, /**< priority of the constraint handler for checking feasibility (and propagation) */
2250 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */
2251 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */
2252 int eagerfreq, /**< frequency for using all instead of only the useful constraints in separation,
2254 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */
2255 SCIP_Bool delaysepa, /**< should separation method be delayed, if other separators found cuts? */
2256 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */
2257 SCIP_Bool needscons, /**< should the constraint handler be skipped, if no constraints are available? */
2258 SCIP_PROPTIMING proptiming, /**< positions in the node solving loop where propagation method of constraint handlers should be executed */
2259 SCIP_PRESOLTIMING presoltiming, /**< timing mask of the constraint handler's presolving method */
2260 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2264 SCIP_DECL_CONSINITPRE ((*consinitpre)), /**< presolving initialization method of constraint handler */
2265 SCIP_DECL_CONSEXITPRE ((*consexitpre)), /**< presolving deinitialization method of constraint handler */
2266 SCIP_DECL_CONSINITSOL ((*consinitsol)), /**< solving process initialization method of constraint handler */
2267 SCIP_DECL_CONSEXITSOL ((*consexitsol)), /**< solving process deinitialization method of constraint handler */
2269 SCIP_DECL_CONSTRANS ((*constrans)), /**< transform constraint data into data belonging to the transformed problem */
2270 SCIP_DECL_CONSINITLP ((*consinitlp)), /**< initialize LP with relaxations of "initial" constraints */
2272 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */
2290 SCIP_DECL_CONSGETDIVEBDCHGS((*consgetdivebdchgs)), /**< constraint handler diving solution enforcement method */
2294 /** creates a constraint handler and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
2295 * Optional callbacks can be set via specific setter functions, see SCIPsetConshdlrInit(), SCIPsetConshdlrExit(),
2296 * SCIPsetConshdlrCopy(), SCIPsetConshdlrFree(), SCIPsetConshdlrInitsol(), SCIPsetConshdlrExitsol(),
2297 * SCIPsetConshdlrInitpre(), SCIPsetConshdlrExitpre(), SCIPsetConshdlrPresol(), SCIPsetConshdlrDelete(),
2298 * SCIPsetConshdlrDelvars(), SCIPsetConshdlrInitlp(), SCIPsetConshdlrActive(), SCIPsetConshdlrDeactive(),
2299 * SCIPsetConshdlrEnable(), SCIPsetConshdlrDisable(), SCIPsetConshdlrResprop(), SCIPsetConshdlrTrans(),
2300 * SCIPsetConshdlrPrint(), SCIPsetConshdlrParse(), SCIPsetConshdlrGetVars(), SCIPsetConshdlrGetNVars(), and
2303 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2310 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeConshdlr() instead
2319 int chckpriority, /**< priority of the constraint handler for checking feasibility (and propagation) */
2320 int eagerfreq, /**< frequency for using all instead of only the useful constraints in separation,
2322 SCIP_Bool needscons, /**< should the constraint handler be skipped, if no constraints are available? */
2332 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2344 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */
2345 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */
2347 SCIP_Bool delaysepa /**< should separation method be delayed, if other separators found cuts? */
2352 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2364 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */
2365 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */
2366 SCIP_PROPTIMING proptiming /**< positions in the node solving loop where propagation should be executed */
2371 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2382 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2388 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2404 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2420 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2436 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2447 SCIP_DECL_CONSINITSOL((*consinitsol)) /**< solving process initialization method of constraint handler */
2452 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2463 SCIP_DECL_CONSEXITSOL ((*consexitsol))/**< solving process deinitialization method of constraint handler */
2468 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2479 SCIP_DECL_CONSINITPRE((*consinitpre)) /**< preprocessing initialization method of constraint handler */
2484 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2495 SCIP_DECL_CONSEXITPRE((*consexitpre)) /**< preprocessing deinitialization method of constraint handler */
2500 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2512 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */
2513 SCIP_PRESOLTIMING presoltiming /**< timing mask of the constraint handler's presolving method */
2518 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2532 /** sets method of constraint handler to transform constraint data into data belonging to the transformed problem
2534 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2545 SCIP_DECL_CONSTRANS ((*constrans)) /**< transform constraint data into data belonging to the transformed problem */
2548 /** sets method of constraint handler to initialize LP with relaxations of "initial" constraints
2550 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2561 SCIP_DECL_CONSINITLP ((*consinitlp)) /**< initialize LP with relaxations of "initial" constraints */
2566 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2582 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2598 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2614 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2630 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2646 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2662 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2678 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2694 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2710 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2726 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2737 SCIP_DECL_CONSGETDIVEBDCHGS((*consgetdivebdchgs)) /**< constraint handler diving solution enforcement method */
2761 * @note method has all conflict handler callbacks as arguments and is thus changed every time a new
2772 SCIP_DECL_CONFLICTCOPY((*conflictcopy)), /**< copy method of conflict handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2776 SCIP_DECL_CONFLICTINITSOL((*conflictinitsol)),/**< solving process initialization method of conflict handler */
2777 SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol)),/**< solving process deinitialization method of conflict handler */
2778 SCIP_DECL_CONFLICTEXEC((*conflictexec)), /**< conflict processing method of conflict handler */
2782 /** creates a conflict handler and includes it in SCIP with its most fundamental callbacks. All non-fundamental
2784 * Optional callbacks can be set via specific setter functions SCIPsetConflicthdlrCopy(), SCIPsetConflicthdlrFree(),
2788 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeConflicthdlr() instead
2797 SCIP_DECL_CONFLICTEXEC((*conflictexec)), /**< conflict processing method of conflict handler */
2838 SCIP_DECL_CONFLICTINITSOL((*conflictinitsol))/**< solving process initialization method of conflict handler */
2846 SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol))/**< solving process deinitialization method of conflict handler */
2889 int maxrounds, /**< maximal number of presolving rounds the presolver participates in (-1: no limit) */
2891 SCIP_DECL_PRESOLCOPY ((*presolcopy)), /**< copy method of presolver or NULL if you don't want to copy your plugin into sub-SCIPs */
2892 SCIP_DECL_PRESOLFREE ((*presolfree)), /**< destructor of presolver to free user data (called when SCIP is exiting) */
2893 SCIP_DECL_PRESOLINIT ((*presolinit)), /**< initialization method of presolver (called after problem was transformed) */
2894 SCIP_DECL_PRESOLEXIT ((*presolexit)), /**< deinitialization method of presolver (called before transformed problem is freed) */
2895 SCIP_DECL_PRESOLINITPRE((*presolinitpre)),/**< presolving initialization method of presolver (called when presolving is about to begin) */
2896 SCIP_DECL_PRESOLEXITPRE((*presolexitpre)),/**< presolving deinitialization method of presolver (called after presolving has been finished) */
2901 /** Creates a presolver and includes it in SCIP with its fundamental callback. All non-fundamental (or optional)
2902 * callbacks as, e.g., init and exit callbacks, will be set to NULL. Optional callbacks can be set via specific setter
2903 * functions. These are SCIPsetPresolCopy(), SCIPsetPresolFree(), SCIPsetPresolInit(), SCIPsetPresolExit(),
2906 * @note if you want to set all callbacks with a single method call, consider using SCIPincludePresol() instead
2915 int maxrounds, /**< maximal number of presolving rounds the presolver participates in (-1: no limit) */
2926 SCIP_DECL_PRESOLCOPY ((*presolcopy)) /**< copy method of presolver or NULL if you don't want to copy your plugin into sub-SCIPs */
2958 SCIP_DECL_PRESOLINITPRE ((*presolinitpre))/**< solving process initialization method of presolver */
2965 SCIP_DECL_PRESOLEXITPRE ((*presolexitpre))/**< solving process deinitialization method of presolver */
2997 * @note method has all relaxation handler callbacks as arguments and is thus changed every time a new
3007 int priority, /**< priority of the relaxation handler (negative: after LP, non-negative: before LP) */
3009 SCIP_DECL_RELAXCOPY ((*relaxcopy)), /**< copy method of relaxation handler or NULL if you don't want to copy your plugin into sub-SCIPs */
3013 SCIP_DECL_RELAXINITSOL((*relaxinitsol)), /**< solving process initialization method of relaxation handler */
3014 SCIP_DECL_RELAXEXITSOL((*relaxexitsol)), /**< solving process deinitialization method of relaxation handler */
3021 * Optional callbacks can be set via specific setter functions, see SCIPsetRelaxInit(), SCIPsetRelaxExit(),
3024 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeRelax() instead
3032 int priority, /**< priority of the relaxation handler (negative: after LP, non-negative: before LP) */
3043 SCIP_DECL_RELAXCOPY ((*relaxcopy)) /**< copy method of relaxation handler or NULL if you don't want to copy your plugin into sub-SCIPs */
3075 SCIP_DECL_RELAXINITSOL((*relaxinitsol)) /**< solving process initialization method of relaxation handler */
3083 SCIP_DECL_RELAXEXITSOL((*relaxexitsol)) /**< solving process deinitialization method of relaxation handler */
3127 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound compared
3131 SCIP_DECL_SEPACOPY ((*sepacopy)), /**< copy method of separator or NULL if you don't want to copy your plugin into sub-SCIPs */
3135 SCIP_DECL_SEPAINITSOL ((*sepainitsol)), /**< solving process initialization method of separator */
3136 SCIP_DECL_SEPAEXITSOL ((*sepaexitsol)), /**< solving process deinitialization method of separator */
3138 SCIP_DECL_SEPAEXECSOL ((*sepaexecsol)), /**< arbitrary primal solution separation method of separator */
3142 /** creates a separator and includes it in SCIP with its most fundamental callbacks. All non-fundamental
3144 * Optional callbacks can be set via specific setter functions, see SCIPsetSepaInit(), SCIPsetSepaFree(),
3147 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeSepa() instead
3157 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound compared
3162 SCIP_DECL_SEPAEXECSOL ((*sepaexecsol)), /**< arbitrary primal solution separation method of separator */
3171 SCIP_DECL_SEPACOPY ((*sepacopy)) /**< copy method of separator or NULL if you don't want to copy your plugin into sub-SCIPs */
3203 SCIP_DECL_SEPAINITSOL ((*sepainitsol)) /**< solving process initialization method of separator */
3211 SCIP_DECL_SEPAEXITSOL ((*sepaexitsol)) /**< solving process deinitialization method of separator */
3244 * callback is added in future releases; consider using SCIPincludePropBasic() and setter functions
3252 int priority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3255 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagator should be executed */
3256 int presolpriority, /**< presolving priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3257 int presolmaxrounds, /**< maximal number of presolving rounds the propagator participates in (-1: no limit) */
3259 SCIP_DECL_PROPCOPY ((*propcopy)), /**< copy method of propagator or NULL if you don't want to copy your plugin into sub-SCIPs */
3264 SCIP_DECL_PROPEXITPRE ((*propexitpre)), /**< presolving deinitialization method of propagator */
3265 SCIP_DECL_PROPINITSOL ((*propinitsol)), /**< solving process initialization method of propagator */
3266 SCIP_DECL_PROPEXITSOL ((*propexitsol)), /**< solving process deinitialization method of propagator */
3273 /** creates a propagator and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
3274 * Optional callbacks can be set via specific setter functions, see SCIPsetPropInit(), SCIPsetPropExit(),
3278 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeProp() instead
3286 int priority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3289 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagators should be executed */
3299 SCIP_DECL_PROPCOPY ((*propcopy)) /**< copy method of propagator or NULL if you don't want to copy your plugin into sub-SCIPs */
3331 SCIP_DECL_PROPINITSOL((*propinitsol)) /**< solving process initialization method of propagator */
3339 SCIP_DECL_PROPEXITSOL ((*propexitsol)) /**< solving process deinitialization method of propagator */
3347 SCIP_DECL_PROPINITPRE((*propinitpre)) /**< preprocessing initialization method of propagator */
3355 SCIP_DECL_PROPEXITPRE((*propexitpre)) /**< preprocessing deinitialization method of propagator */
3364 int presolpriority, /**< presolving priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3365 int presolmaxrounds, /**< maximal number of presolving rounds the propagator participates in (-1: no limit) */
3416 * callback is added in future releases; consider using SCIPincludeHeurBasic() and setter functions
3419 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
3436 unsigned int timingmask, /**< positions in the node solving loop where heuristic should be executed;
3439 SCIP_DECL_HEURCOPY ((*heurcopy)), /**< copy method of primal heuristic or NULL if you don't want to copy your plugin into sub-SCIPs */
3443 SCIP_DECL_HEURINITSOL ((*heurinitsol)), /**< solving process initialization method of primal heuristic */
3444 SCIP_DECL_HEUREXITSOL ((*heurexitsol)), /**< solving process deinitialization method of primal heuristic */
3452 * Optional callbacks can be set via specific setter functions, see SCIPsetHeurCopy(), SCIPsetHeurFree(),
3455 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeHeur() instead
3468 unsigned int timingmask, /**< positions in the node solving loop where heuristic should be executed;
3480 SCIP_DECL_HEURCOPY ((*heurcopy)) /**< copy method of primal heuristic or NULL if you don't want to copy your plugin into sub-SCIPs */
3512 SCIP_DECL_HEURINITSOL ((*heurinitsol)) /**< solving process initialization method of primal heuristic */
3520 SCIP_DECL_HEUREXITSOL ((*heurexitsol)) /**< solving process deinitialization method of primal heuristic */
3553 * callback is added in future releases; consider using SCIPincludeComprBasic() and setter functions
3563 SCIP_DECL_COMPRCOPY ((*comprcopy)), /**< copy method of tree compression or NULL if you don't want to copy your plugin into sub-SCIPs */
3567 SCIP_DECL_COMPRINITSOL ((*comprinitsol)), /**< solving process initialization method of tree compression */
3568 SCIP_DECL_COMPREXITSOL ((*comprexitsol)), /**< solving process deinitialization method of tree compression */
3576 * Optional callbacks can be set via specific setter functions, see SCIPsetComprCopy(), SCIPsetComprFree(),
3579 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeCompr() instead
3598 SCIP_DECL_COMPRCOPY ((*comprcopy)) /**< copy method of tree compression or NULL if you don't want to copy your plugin into sub-SCIPs */
3630 SCIP_DECL_COMPRINITSOL ((*comprinitsol)) /**< solving process initialization method of tree compression */
3638 SCIP_DECL_COMPREXITSOL ((*comprexitsol)) /**< solving process deinitialization method of tree compression */
3667 /** create a diving set associated with a primal heuristic. The primal heuristic needs to be included
3668 * before this method can be called. The diveset is installed in the array of divesets of the heuristic
3671 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
3681 SCIP_DIVESET** diveset, /**< pointer to created diving heuristic settings, or NULL if not needed */
3683 const char* name, /**< name for the diveset, or NULL if the name of the heuristic should be used */
3686 SCIP_Real maxlpiterquot, /**< maximal fraction of diving LP iterations compared to node LP iterations */
3687 SCIP_Real maxdiveubquot, /**< maximal quotient (curlowerbound - lowerbound)/(cutoffbound - lowerbound)
3689 SCIP_Real maxdiveavgquot, /**< maximal quotient (curlowerbound - lowerbound)/(avglowerbound - lowerbound)
3691 SCIP_Real maxdiveubquotnosol, /**< maximal UBQUOT when no solution was found yet (0.0: no limit) */
3692 SCIP_Real maxdiveavgquotnosol,/**< maximal AVGQUOT when no solution was found yet (0.0: no limit) */
3693 SCIP_Real lpresolvedomchgquot,/**< percentage of immediate domain changes during probing to trigger LP resolve */
3694 int lpsolvefreq, /**< LP solve frequency for (0: only if enough domain reductions are found by propagation)*/
3697 SCIP_Bool onlylpbranchcands, /**< should only LP branching candidates be considered instead of the slower but
3699 SCIP_Bool specificsos1score, /**< should SOS1 variables be scored by the diving heuristics specific score function;
3701 SCIP_DECL_DIVESETGETSCORE((*divesetgetscore)) /**< method for candidate score and rounding direction */
3707 * @note method has all event handler callbacks as arguments and is thus changed every time a new
3708 * callback is added in future releases; consider using SCIPincludeEventhdlrBasic() and setter functions
3716 SCIP_DECL_EVENTCOPY ((*eventcopy)), /**< copy method of event handler or NULL if you don't want to copy your plugin into sub-SCIPs */
3720 SCIP_DECL_EVENTINITSOL((*eventinitsol)), /**< solving process initialization method of event handler */
3721 SCIP_DECL_EVENTEXITSOL((*eventexitsol)), /**< solving process deinitialization method of event handler */
3727 /** creates an event handler and includes it in SCIP with all its non-fundamental callbacks set
3729 * SCIPsetEventhdlrCopy(), SCIPsetEventhdlrFree(), SCIPsetEventhdlrInit(), SCIPsetEventhdlrExit(),
3732 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeEventhdlr() instead
3781 SCIP_DECL_EVENTINITSOL((*eventinitsol)) /**< solving process initialization callback of event handler */
3789 SCIP_DECL_EVENTEXITSOL((*eventexitsol)) /**< solving process deinitialization callback of event handler */
3821 * @note method has all node selector callbacks as arguments and is thus changed every time a new
3822 * callback is added in future releases; consider using SCIPincludeNodeselBasic() and setter functions
3832 SCIP_DECL_NODESELCOPY ((*nodeselcopy)), /**< copy method of node selector or NULL if you don't want to copy your plugin into sub-SCIPs */
3836 SCIP_DECL_NODESELINITSOL((*nodeselinitsol)),/**< solving process initialization method of node selector */
3837 SCIP_DECL_NODESELEXITSOL((*nodeselexitsol)),/**< solving process deinitialization method of node selector */
3843 /** Creates a node selector and includes it in SCIP with its most fundamental callbacks. All non-fundamental
3845 * Optional callbacks can be set via specific setter functions, see SCIPsetNodeselCopy(), SCIPsetNodeselFree(),
3846 * SCIPsetNodeselInit(), SCIPsetNodeselExit(), SCIPsetNodeselInitsol(), and SCIPsetNodeselExitsol()
3848 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeNodesel() instead
3868 SCIP_DECL_NODESELCOPY ((*nodeselcopy)) /**< copy method of node selector or NULL if you don't want to copy your plugin into sub-SCIPs */
3900 SCIP_DECL_NODESELINITSOL ((*nodeselinitsol))/**< solving process initialization method of node selector */
3908 SCIP_DECL_NODESELEXITSOL ((*nodeselexitsol))/**< solving process deinitialization method of node selector */
3954 * @note method has all branching rule callbacks as arguments and is thus changed every time a new
3955 * callback is added in future releases; consider using SCIPincludeBranchruleBasic() and setter functions
3964 int maxdepth, /**< maximal depth level, up to which this branching rule should be used (or -1) */
3965 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound
3968 SCIP_DECL_BRANCHCOPY ((*branchcopy)), /**< copy method of branching rule or NULL if you don't want to copy your plugin into sub-SCIPs */
3972 SCIP_DECL_BRANCHINITSOL((*branchinitsol)),/**< solving process initialization method of branching rule */
3973 SCIP_DECL_BRANCHEXITSOL((*branchexitsol)),/**< solving process deinitialization method of branching rule */
3974 SCIP_DECL_BRANCHEXECLP((*branchexeclp)), /**< branching execution method for fractional LP solutions */
3975 SCIP_DECL_BRANCHEXECEXT((*branchexecext)),/**< branching execution method for external candidates */
3976 SCIP_DECL_BRANCHEXECPS((*branchexecps)), /**< branching execution method for not completely fixed pseudo solutions */
3980 /** creates a branching rule and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
3981 * Optional callbacks can be set via specific setter functions, see SCIPsetBranchruleInit(), SCIPsetBranchruleExit(),
3982 * SCIPsetBranchruleCopy(), SCIPsetBranchruleFree(), SCIPsetBranchruleInitsol(), SCIPsetBranchruleExitsol(),
3985 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeBranchrule() instead
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
4006 SCIP_DECL_BRANCHCOPY ((*branchcopy)) /**< copy method of branching rule or NULL if you don't want to copy your plugin into sub-SCIPs */
4038 SCIP_DECL_BRANCHINITSOL((*branchinitsol)) /**< solving process initialization method of branching rule */
4046 SCIP_DECL_BRANCHEXITSOL((*branchexitsol)) /**< solving process deinitialization method of branching rule */
4054 SCIP_DECL_BRANCHEXECLP((*branchexeclp)) /**< branching execution method for fractional LP solutions */
4062 SCIP_DECL_BRANCHEXECEXT((*branchexecext)) /**< branching execution method for external candidates */
4070 SCIP_DECL_BRANCHEXECPS((*branchexecps)) /**< branching execution method for not completely fixed pseudo solutions */
4100 /** sets maximal depth level, up to which this branching rule should be used (-1 for no limit) */
4108 /** sets maximal relative distance from current node's dual bound to primal bound for applying branching rule */
4124 SCIP_DECL_DISPCOPY ((*dispcopy)), /**< copy method of display column or NULL if you don't want to copy your plugin into sub-SCIPs */
4128 SCIP_DECL_DISPINITSOL ((*dispinitsol)), /**< solving process initialization method of display column */
4129 SCIP_DECL_DISPEXITSOL ((*dispexitsol)), /**< solving process deinitialization method of display column */
4135 SCIP_Bool stripline /**< should the column be separated with a line from its right neighbor? */
4157 /** automatically selects display columns for being shown w.r.t. the display width parameter */
4250 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4257 SCIP_DECL_DIALOGCOPY ((*dialogcopy)), /**< copy method of dialog or NULL if you don't want to copy your plugin into sub-SCIPs */
4279 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4290 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4299 /** makes given dialog the root dialog of SCIP's interactive user shell; captures dialog and releases former root dialog
4301 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4321 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4333 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4342 /** adds a single line of input to the command history which can be accessed with the cursor keys
4344 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4355 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4362 * @post After calling this method \SCIP reaches one of the following stages depending on if and when the
4365 * - \ref SCIP_STAGE_TRANSFORMED if the interactive shell was closed after the problem was transformed
4391 /** creates empty problem and initializes all solving data structures (the objective sense is set to MINIMIZE)
4392 * If the problem type requires the use of variable pricers, these pricers should be added to the problem with calls
4393 * to SCIPactivatePricer(). These pricers are automatically deactivated, when the problem is freed.
4395 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4416 SCIP_DECL_PROBTRANS ((*probtrans)), /**< creates user data of transformed problem by transforming original user data */
4418 SCIP_DECL_PROBINITSOL ((*probinitsol)), /**< solving process initialization method of transformed data */
4419 SCIP_DECL_PROBEXITSOL ((*probexitsol)), /**< solving process deinitialization method of transformed data */
4420 SCIP_DECL_PROBCOPY ((*probcopy)), /**< copies user data if you want to copy it to a subscip, or NULL */
4424 /** creates empty problem and initializes all solving data structures (the objective sense is set to MINIMIZE)
4425 * all callback methods will be set to NULL and can be set afterwards, if needed, via SCIPsetProbDelorig(),
4428 * If the problem type requires the use of variable pricers, these pricers should be added to the problem with calls
4429 * to SCIPactivatePricer(). These pricers are automatically deactivated, when the problem is freed.
4431 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4455 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4466 /** sets callback to create user data of transformed problem by transforming original user data
4468 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4477 SCIP_DECL_PROBTRANS ((*probtrans)) /**< creates user data of transformed problem by transforming original user data */
4482 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4496 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4505 SCIP_DECL_PROBINITSOL ((*probinitsol)) /**< solving process initialization method of transformed data */
4510 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4519 SCIP_DECL_PROBEXITSOL ((*probexitsol)) /**< solving process deinitialization method of transformed data */
4524 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4533 SCIP_DECL_PROBCOPY ((*probcopy)) /**< copies user data if you want to copy it to a subscip, or NULL */
4538 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4566 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4594 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4608 * @note If you want the write all constraints (including the once which are redundant for example), you need to set
4622 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4645 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4656 SCIP_Bool permuteconss, /**< should the list of constraints in each constraint handler be permuted? */
4688 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4736 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4784 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4798 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4810 /** adds offset of objective function to original problem and to all existing solution in original space
4812 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4904 /** sets limit on objective function, such that only solutions better than this limit are accepted
4906 * @note SCIP will only look for solutions with a strictly better objective value, thus, e.g., prune
4908 * However, SCIP will also collect solutions with objective value worse than the objective limit and
4910 * @note If SCIP can prove that there exists no solution with a strictly better objective value, the solving status
4912 * The only exception is that by chance, SCIP found a solution with the same objective value and thus
4915 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4956 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4989 /** returns the Euclidean norm of the objective function vector (available only for transformed problem)
5011 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5031 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5045 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5062 SCIP_Bool* deleted /**< pointer to store whether variable was successfully marked to be deleted */
5065 /** gets variables of the problem along with the numbers of different variable types; data may become invalid after
5068 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5083 * @note Variables in the vars array are ordered: binaries first, then integers, implicit integers and continuous last.
5092 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */
5112 * @warning If your are using the methods which add or change bound of variables (e.g., SCIPchgVarType(), SCIPfixVar(),
5113 * SCIPaggregateVars(), and SCIPmultiaggregateVar()), it can happen that the internal variable array (which is
5114 * accessed via this method) gets resized and/or resorted. This can invalid the data pointer which is returned
5117 * @note Variables in the array are ordered: binaries first, then integers, implicit integers and continuous last.
5231 * @note In case of the original problem the number of variables is counted. In case of the transformed problem the
5294 /** gets variables of the original problem along with the numbers of different variable types; data may become invalid
5297 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5321 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */
5490 /** gets variables of the original or transformed problem along with the numbers of different variable types;
5492 * data may become invalid after calls to SCIPchgVarType(), SCIPfixVar(), SCIPaggregateVars(), and
5495 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5512 SCIP_SOL* sol, /**< primal solution that selects the problem space, NULL for current solution */
5517 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */
5545 /** returns TRUE iff all potential variables exist in the problem, and FALSE, if there may be additional variables,
5568 /** adds constraint to the problem; if constraint is only valid locally, it is added to the local subproblem of the
5570 * if a local constraint is added at the root node, it is automatically upgraded into a global constraint
5572 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5591 /** globally removes constraint from all subproblems; removes constraint from the constraint set change data of the
5594 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5710 * @warning If your are using the method SCIPaddCons(), it can happen that the internal constraint array (which is
5711 * accessed via this method) gets resized. This can invalid the pointer which is returned by this method.
5764 /** computes the number of check constraint in the current node (loop over all constraint handler and cumulates the
5795 /** adds constraint to the given node (and all of its subnodes), even if it is a global constraint;
5796 * It is sometimes desirable to add the constraint to a more local node (i.e., a node of larger depth) even if
5797 * the constraint is also valid higher in the tree, for example, if one wants to produce a constraint which is
5799 * In this case, one should pass the more global node where the constraint is valid as "validnode".
5800 * Note that the same constraint cannot be added twice to the branching tree with different "validnode" parameters.
5801 * If the constraint is valid at the same node as it is inserted (the usual case), one should pass NULL as "validnode".
5802 * If the "validnode" is the root node, it is automatically upgraded into a global constraint, but still only added to
5803 * the given node. If a local constraint is added to the root node, it is added to the global problem instead.
5805 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5822 /** adds constraint locally to the current 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
5827 * If the constraint is valid at the same node as it is inserted (the usual case), one should pass NULL as "validnode".
5828 * If the "validnode" is the root node, it is automatically upgraded into a global constraint, but still only added to
5829 * the given node. If a local constraint is added to the root node, it is added to the global problem instead.
5831 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5840 * @note The same constraint cannot be added twice to the branching tree with different "validnode" parameters. This is
5841 * the case due internal data structures and performance issues. In such a case you should try to realize your
5842 * issue using the method SCIPdisableCons() and SCIPenableCons() and control these via the event system of SCIP.
5851 /** disables constraint's separation, enforcing, and propagation capabilities at the given node (and all subnodes);
5852 * if the method is called at the root node, the constraint is globally deleted from the problem;
5853 * the constraint deletion is being remembered at the given node, s.t. after leaving the node's subtree, the constraint
5854 * is automatically enabled again, and after entering the node's subtree, it is automatically disabled;
5855 * this may improve performance because redundant checks on this constraint are avoided, but it consumes memory;
5858 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5874 /** disables constraint's separation, enforcing, and propagation capabilities at the current node (and all subnodes);
5875 * if the method is called during problem modification or at the root node, the constraint is globally deleted from
5877 * the constraint deletion is being remembered at the current node, s.t. after leaving the current subtree, the
5878 * constraint is automatically enabled again, and after reentering the current node's subtree, it is automatically
5880 * this may improve performance because redundant checks on this constraint are avoided, but it consumes memory;
5883 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5901 * @return estimate of best primal solution w.r.t. original problem contained in current subtree
5911 /** gets estimate of best primal solution w.r.t. transformed problem contained in current subtree
5913 * @return estimate of best primal solution w.r.t. transformed problem contained in current subtree
5973 /** if given value is tighter (larger for minimization, smaller for maximization) than the current node's dual bound (in
5976 * @note the given new bound has to be a dual bound, i.e., it has to be valid for the original problem.
5978 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5993 /** if given value is larger than the current node's lower bound (in transformed problem), sets the current node's
5996 * @note the given new bound has to be a lower bound, i.e., it has to be valid for the transformed problem.
5998 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6012 /** if given value is tighter (larger for minimization, smaller for maximization) than the node's dual bound,
6015 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6028 /** if given value is larger than the node's lower bound (in transformed problem), sets the node's lower bound
6031 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6046 * @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
6090 * @post When calling this method in the \ref SCIP_STAGE_PROBLEM stage, the \SCIP stage is changed to \ref
6102 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6113 * - \ref SCIP_STAGE_PRESOLVED if the presolving process was finished and did not solve the problem
6125 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6136 * @post After calling this method \SCIP reaches one of the following stages depending on if and when the solution
6150 /** frees branch and bound tree and all solution process data; statistics, presolving data and transformed problem is
6153 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6165 * @post If this method is called in \SCIP stage \ref SCIP_STAGE_INIT or \ref SCIP_STAGE_PROBLEM, the stage of
6176 /** frees all solution process data including presolving and transformed problem, only original problem is kept
6178 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6201 /** informs \SCIP that the solving process should be interrupted as soon as possible (e.g., after the current node has
6204 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6227 /** informs SCIP that the solving process should be restarted as soon as possible (e.g., after the current node has
6230 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6248 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6284 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6300 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6324 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6371 /** creates and captures problem variable; if variable is of integral type, fractional bounds are automatically rounded;
6372 * an integer variable with bounds zero and one is automatically converted into a binary variable;
6374 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will
6375 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the
6376 * original objective function value of variables created during the solving process has to be multiplied by
6379 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6391 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar()
6405 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data, or NULL */
6406 SCIP_DECL_VARDELTRANS ((*vardeltrans)), /**< frees user data of transformed variable, or NULL */
6411 /** creates and captures problem variable with optional callbacks and variable data set to NULL, which can be set
6413 * SCIPvarSetDeltransData(), SCIPvarSetCopy(), and SCIPvarSetData(); sets variable flags initial=TRUE
6414 * and removable = FALSE, which can be adjusted by using SCIPvarSetInitial() and SCIPvarSetRemovable(), resp.;
6416 * an integer variable with bounds zero and one is automatically converted into a binary variable;
6418 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will
6419 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the
6420 * original objective function value of variables created during the solving process has to be multiplied by
6423 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6435 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar()
6450 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6475 /** print the given list of variables to output stream separated by the given delimiter character;
6477 * i. e. the variables x1, x2, ..., xn with given delimiter ',' are written as: <x1>, <x2>, ..., <xn>;
6481 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6515 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6549 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6580 /** parses variable information (in cip format) out of a string; if the parsing process was successful a variable is
6581 * created and captured; if variable is of integral type, fractional bounds are automatically rounded; an integer
6584 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6605 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data */
6612 /** parses the given string for a variable name and stores the variable in the corresponding pointer if such a variable
6615 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6635 /** parse the given string as variable list (here ',' is the delimiter)) (<x1>, <x2>, ..., <xn>) (see
6638 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6650 * @note the pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist
6652 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens
6653 * except that the required size is stored in the corresponding integer; the reason for this approach is that we
6654 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP
6670 /** parse the given string as linear sum of variables and coefficients (c1 <x1> + c2 <x2> + ... + cn <xn>)
6673 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6685 * @note the pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist
6687 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens
6688 * except that the required size is stored in the corresponding integer; the reason for this approach is that we
6689 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP
6710 * monomialcoefs, monomialnvars, *nmonomials) short after SCIPparseVarsPolynomial to free all the
6711 * allocated memory again. Do not keep the arrays created by SCIPparseVarsPolynomial around, since
6714 * Parsing is stopped at the end of string (indicated by the \\0-character) or when no more monomials
6717 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6744 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6768 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6790 /** decreases usage counter of variable, if the usage pointer reaches zero the variable gets freed
6792 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6819 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6833 /** gets and captures transformed variable of a given variable; if the variable is not yet transformed,
6836 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6857 * if a variable of the array is not yet transformed, a new transformed variable for this variable is created;
6860 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6884 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6909 * it is possible to call this method with vars == transvars, but remember that variables that are not
6912 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6936 /** gets negated variable x' = lb + ub - x of variable x; negated variable is created, if not yet existing
6938 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6962 /** gets negated variables x' = lb + ub - x of variables x; negated variables are created, if not yet existing
6964 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
6989 /** gets a binary variable that is equal to the given binary variable, and that is either active, fixed, or
6992 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7012 SCIP_Bool* negated /**< pointer to store whether the negation of an active variable was returned */
7015 /** gets binary variables that are equal to the given binary variables, and which are either active, fixed, or
7018 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7039 SCIP_Bool* negated /**< array to store whether the negation of an active variable was returned */
7042 /** flattens aggregation graph of multi-aggregated variable in order to avoid exponential recursion later on
7044 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7062 /** Transforms a given linear sum of variables, that is a_1*x_1 + ... + a_n*x_n + c into a corresponding linear sum of
7065 * If the number of needed active variables is greater than the available slots in the variable array, nothing happens
7066 * except that the required size is stored in the corresponding variable (requiredsize). Otherwise, the active variable
7069 * The reason for this approach is that we cannot reallocate memory, since we do not know how the memory has been
7072 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7087 * @note The resulting linear sum is stored into the given variable array, scalar array, and constant. That means the
7090 * @note That method can be used to convert a single variables into variable space of active variables. Therefore call
7107 SCIP_Real* constant, /**< pointer to constant c in linear sum a_1*x_1 + ... + a_n*x_n + c which
7112 SCIP_Bool mergemultiples /**< should multiple occurrences of a var be replaced by a single coeff? */
7116 * multi-aggregated variable, scalar and constant; if the variable resolves to a fixed variable,
7117 * "scalar" will be 0.0 and the value of the sum will be stored in "constant"; a multi-aggregation
7119 * is treated like an aggregation; if the multi-aggregation constant is infinite, "scalar" will be 0.0
7121 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7144 /** return for given variables all their active counterparts; all active variables will be pairwise different
7145 * @note It does not hold that the first output variable is the active variable for the first input variable.
7147 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7232 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7249 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7262 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation;
7267 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7282 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation;
7285 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7301 * in the given primal solution; the relaxation solution can be filled by the relaxation hanlders
7304 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7332 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7346 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7387 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7394 * @note if propagation is enabled, strong branching is not done directly on the LP, but probing nodes are created
7400 SCIP_Bool enablepropagation /**< should propagation be done before solving the strong branching LP? */
7405 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7419 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7433 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
7437 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
7439 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
7449 * Before calling this method, the strong branching mode must have been activated by calling SCIPstartStrongbranch();
7450 * after strong branching was done for all candidate variables, the strong branching mode must be ended by
7451 * SCIPendStrongbranch(). Since this method applies domain propagation before strongbranching, propagation has to be be
7454 * Before solving the strong branching LP, domain propagation can be performed. The number of propagation rounds
7457 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7464 * @warning When using this method, LP banching candidates and solution values must be copied beforehand, because
7478 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
7482 SCIP_Longint* ndomredsdown, /**< pointer to store the number of domain reductions down, or NULL */
7484 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
7486 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
7496 /** gets strong branching information on column variable x with integral LP solution value (val); that is, the down branch
7499 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7506 * @note If the integral LP solution value is the lower or upper bound of the variable, the corresponding branch will be
7516 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
7520 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
7522 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
7532 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7547 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL;
7551 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */
7563 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7578 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL;
7582 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */
7592 /** gets strong branching information on COLUMN variable of the last SCIPgetVarStrongbranch() call;
7593 * returns values of SCIP_INVALID, if strong branching was not yet called on the given variable;
7594 * keep in mind, that the returned old values may have nothing to do with the current LP solution
7596 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7609 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
7613 SCIP_Real* solval, /**< stores LP solution value of variable at last strong branching call, or NULL */
7617 /** gets node number of the last node in current branch and bound run, where strong branching was used on the
7620 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7641 /** if strong branching was already applied on the variable at the current node, returns the number of LPs solved after
7645 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7668 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7691 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7715 /** locks rounding of variable with respect to the lock status of the constraint and its negation;
7716 * this method should be called whenever the lock status of a variable in a constraint changes, for example if
7717 * the coefficient of the variable changed its sign or if the left or right hand sides of the constraint were
7720 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7743 /** unlocks 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
7773 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7790 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7805 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) lower bound value;
7808 * @return adjusted lower bound for the given variable; the bound of the variable is not changed
7831 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) upper bound value;
7834 * @return adjusted upper bound for the given variable; the bound of the variable is not changed
7857 /** depending on SCIP's stage, changes lower bound of variable in the problem, in preprocessing, or in current node;
7858 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such
7861 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7864 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7873 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7882 /** depending on SCIP's stage, changes upper bound of variable in the problem, in preprocessing, or in current node;
7883 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such
7886 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7889 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7898 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7907 /** changes lower bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any
7908 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching
7911 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7924 /** changes upper bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any
7925 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching
7928 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7941 /** changes global lower bound of variable; if possible, adjust bound to integral value; also tightens the local bound,
7944 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7947 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7956 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7965 /** changes global upper bound of variable; if possible, adjust bound to integral value; also tightens the local bound,
7968 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
7971 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
7980 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
7989 /** changes lazy lower bound of the variable, this is only possible if the variable is not in the LP yet
7991 * lazy bounds are bounds, that are enforced by constraints and the objective function; hence, these bounds do not need
7994 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8004 * @note lazy bounds are useful for branch-and-price since the corresponding variable bounds are not part of the LP
8013 /** changes lazy upper bound of the variable, this is only possible if the variable is not in the LP yet
8015 * lazy bounds are bounds, that are enforced by constraints and the objective function; hence, these bounds do not need
8018 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8028 * @note lazy bounds are useful for branch-and-price since the corresponding variable bounds are not part of the LP
8037 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
8038 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
8039 * doesn't store any inference information in the bound change, such that in conflict analysis, this change
8042 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
8045 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8053 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
8065 /** changes upper 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 /** fixes variable in preprocessing or in the current node, if the new bound is tighter (w.r.t. bound strengthening
8094 * epsilon) than the current bound; if possible, adjusts bound to integral value; the given inference constraint is
8095 * stored, such that the conflict analysis is able to find out the reason for the deduction of the bound change
8097 * @note In presolving stage when not in probing mode the variable will be fixed directly, otherwise this method
8098 * changes first the lowerbound by calling SCIPinferVarLbCons and second the upperbound by calling
8101 * @note If SCIP is in presolving stage, it can happen that the internal variable array (which get be accessed via
8104 * @note During presolving, an integer variable which bound changes to {0,1} is upgraded to a binary variable.
8118 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
8119 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
8120 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
8123 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
8126 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8134 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
8148 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
8149 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
8150 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
8153 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
8156 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8164 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
8178 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
8179 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason for the
8182 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8198 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
8201 /** fixes variable in preprocessing or in the current node, if the new bound is tighter (w.r.t. bound strengthening
8202 * epsilon) than the current bound; if possible, adjusts bound to integral value; the given inference constraint is
8203 * stored, such that the conflict analysis is able to find out the reason for the deduction of the bound change
8205 * @note In presolving stage when not in probing mode the variable will be fixed directly, otherwise this method
8206 * changes first the lowerbound by calling SCIPinferVarLbProp and second the upperbound by calling
8209 * @note If SCIP is in presolving stage, it can happen that the internal variable array (which get be accessed via
8212 * @note During presolving, an integer variable which bound changes to {0,1} is upgraded to a binary variable.
8226 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
8227 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
8228 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
8231 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
8234 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8242 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
8256 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
8257 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
8258 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
8261 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
8264 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8272 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
8286 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
8287 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason for the
8290 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8307 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
8310 /** changes global lower bound of variable in preprocessing or in the current node, if the new bound is tighter
8311 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value;
8314 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
8317 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8326 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
8338 /** changes global upper 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 /** for a multi-aggregated variable, returns the global lower bound computed by adding the global bounds from all aggregation variables
8368 * 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
8369 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbGlobal.
8371 * @return the global lower bound computed by adding the global bounds from all aggregation variables
8379 /** for a multi-aggregated variable, returns the global upper bound computed by adding the global bounds from all aggregation variables
8381 * 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
8382 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbGlobal.
8384 * @return the global upper bound computed by adding the global bounds from all aggregation variables
8392 /** for a multi-aggregated variable, returns the local lower bound computed by adding the local bounds from all aggregation variables
8394 * 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
8395 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbLocal.
8397 * @return the local lower bound computed by adding the global bounds from all aggregation variables
8405 /** for a multi-aggregated variable, returns the local upper bound computed by adding the local bounds from all aggregation variables
8407 * 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
8408 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbLocal.
8410 * @return the local upper bound computed by adding the global bounds from all aggregation variables
8420 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
8424 #define SCIPcomputeVarLbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPvarGetMultaggrLbGlobal(var, (scip)->set) : SCIPvarGetLbGlobal(var))
8425 #define SCIPcomputeVarUbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPvarGetMultaggrUbGlobal(var, (scip)->set) : SCIPvarGetUbGlobal(var))
8426 #define SCIPcomputeVarLbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPvarGetMultaggrLbLocal(var, (scip)->set) : SCIPvarGetLbLocal(var))
8427 #define SCIPcomputeVarUbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPvarGetMultaggrUbLocal(var, (scip)->set) : SCIPvarGetUbLocal(var))
8431 /** returns solution value and index of variable lower bound that is closest to the variable's value in the given primal
8432 * solution or current LP solution if no primal solution is given; returns an index of -1 if no variable lower bound is
8435 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8449 /** returns solution value and index of variable upper bound that is closest to the variable's value in the given primal solution;
8450 * or current LP solution if no primal solution is given; returns an index of -1 if no variable upper bound is available
8452 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8466 /** informs variable x about a globally valid variable lower bound x >= b*z + d with integer variable z;
8472 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8492 /** informs variable x about a globally valid variable upper bound x <= b*z + d with integer variable z;
8498 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8517 /** informs binary variable x about a globally valid implication: x == 0 or x == 1 ==> y <= b or y >= b;
8520 * if the variable is already fixed to the given value, the implication is performed immediately;
8523 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8536 SCIP_Bool varfixing, /**< FALSE if y should be added in implications for x == 0, TRUE for x == 1 */
8545 /** adds a clique information to SCIP, stating that at most one of the given binary variables can be set to 1;
8548 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8561 SCIP_Bool* values, /**< values of the variables in the clique; NULL to use TRUE for all vars */
8569 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
8571 * the first variable is always assigned to clique 0, and a variable can only be assigned to clique i if at least one of
8575 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8588 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
8591 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
8595 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
8597 * the first variable is always assigned to clique 0 and a variable can only be assigned to clique i if at least one of
8599 * for each clique with n_c variables at least n_c-1 variables can be set to TRUE in a feasible solution;
8601 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8614 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
8617 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
8620 /** force SCIP to clean up all cliques; cliques do not get automatically cleaned up after presolving. Use
8685 * if regardimplics is TRUE, both the cliques and the implications of the implication graph are regarded
8687 * @return TRUE, if there is a clique that contains both variable/clique pairs; FALSE, otherwise
8715 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8731 * If @p writenodeweights is true, only nodes corresponding to variables that have a fractional value and only edges
8741 /** Removes (irrelevant) variable from all its global structures, i.e. cliques, implications and variable bounds.
8763 /** sets the branch factor of the variable; this value can be used in the branching methods to scale the score
8764 * values of the variables; higher factor leads to a higher probability that this variable is chosen for branching
8766 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8788 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8810 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8830 /** sets the branch priority of the variable; variables with higher branch priority are always preferred to variables
8833 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8855 /** changes the branch priority of the variable to the given value, if it is larger than the current priority
8857 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8874 int branchpriority /**< new branch priority of the variable, if it is larger than current priority */
8879 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8899 /** sets the branch direction of the variable (-1: prefer downwards branch, 0: automatic selection, +1: prefer upwards
8902 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8919 SCIP_BRANCHDIR branchdirection /**< preferred branch direction of the variable (downwards, upwards, auto) */
8924 * @warning This type change might change the variable array returned from SCIPgetVars() and SCIPgetVarsData();
8926 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8934 * @note If SCIP is already beyond the SCIP_STAGE_PROBLEM and a original variable is passed, the variable type of the
8935 * corresponding transformed variable is changed; the type of the original variable does not change
8937 * @note If the type changes from a continuous variable to a non-continuous variable the bounds of the variable get
8949 /** in problem creation and solving stage, both bounds of the variable are set to the given value;
8950 * in presolving stage, the variable is converted into a fixed variable, and bounds are changed respectively;
8951 * conversion into a fixed variable changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
8954 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
8968 SCIP_Bool* fixed /**< pointer to store whether the fixing was performed (variable was unfixed) */
8971 /** From a given equality a*x + b*y == c, aggregates one of the variables and removes it from the set of
8972 * active problem variables. This changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
8973 * and also renders the arrays returned from the SCIPvarGetImpl...() methods for the two variables invalid.
8974 * In the first step, the equality is transformed into an equality with active problem variables
8975 * a'*x' + b'*y' == c'. If x' == y', this leads to the detection of redundancy if a' == -b' and c' == 0,
8976 * of infeasibility, if a' == -b' and c' != 0, or to a variable fixing x' == c'/(a'+b') (and possible
8978 * In the second step, the variable to be aggregated is chosen among x' and y', prefering a less strict variable
8979 * type as aggregation variable (i.e. continuous variables are preferred over implicit integers, implicit integers
8980 * over integers, and integers over binaries). If none of the variables is continuous, it is tried to find an integer
8981 * aggregation (i.e. integral coefficients a'' and b'', such that a''*x' + b''*y' == c''). This can lead to
8982 * the detection of infeasibility (e.g. if c'' is fractional), or to a rejection of the aggregation (denoted by
8983 * aggregated == FALSE), if the resulting integer coefficients are too large and thus numerically instable.
8988 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
8990 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9008 /** converts variable into multi-aggregated variable; this changes the variable array returned from
9011 * @warning The integrality condition is not checked anymore on the multi-aggregated variable. You must not
9012 * multi-aggregate an integer variable without being sure, that integrality on the aggregation variables
9017 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
9019 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9069 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9081 * @note There exists no "unmark" method since it has to be ensured that if a plugin requires that a variable is not
9120 /** updates the pseudo costs of the given variable and the global pseudo costs after a change of "solvaldelta" in the
9121 * variable's solution value and resulting change of "objdelta" in the in the LP's objective value;
9124 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9224 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction
9226 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction
9244 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction,
9247 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction,
9266 /** get pseudo cost variance of the variable, either for entire solve or only for current branch and bound run
9287 /** calculates a confidence bound for this variable under the assumption of normally distributed pseudo costs
9289 * The confidence bound \f$ \theta \geq 0\f$ denotes the interval borders \f$ [X - \theta, \ X + \theta]\f$, which contains
9290 * the true pseudo costs of the variable, i.e., the expected value of the normal distribution, with a probability
9304 /** check if variable pseudo-costs have a significant difference in location. The significance depends on
9305 * the choice of \p clevel and on the kind of tested hypothesis. The one-sided hypothesis, which
9309 * This method is applied best if variable x has a better pseudo-cost score than y. The method hypothesizes that y were actually
9310 * better than x (despite the current information), meaning that y can be expected to yield branching
9311 * decisions as least as good as x in the long run. If the method returns TRUE, the current history information is
9312 * sufficient to safely rely on the alternative hypothesis that x yields indeed a better branching score (on average)
9317 * @note set \p onesided to FALSE if you are not sure which variable is better. The hypothesis tested then reads
9334 /** tests at a given confidence level whether the variable pseudo-costs only have a small probability to
9335 * exceed a \p threshold. This is useful to determine if past observations provide enough evidence
9336 * to skip an expensive strong-branching step if there is already a candidate that has been proven to yield an improvement
9339 * @note use \p clevel to adjust the level of confidence. For SCIP_CONFIDENCELEVEL_MIN, the method returns TRUE if
9342 * @see SCIP_Confidencelevel for a list of available levels. The used probability limits refer to the one-sided levels
9345 * @return TRUE if the variable pseudo-cost probabilistic model is likely to be smaller than \p threshold
9358 /** check if the current pseudo cost relative error in a direction violates the given threshold. The Relative
9569 /** returns the average number of inferences found after branching on the variable in given direction;
9570 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
9573 * @return the average number of inferences found after branching on the variable in given direction
9591 /** returns the average number of inferences found after branching on the variable in given direction in the current run;
9592 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
9595 * @return the average number of inferences found after branching on the variable in given direction in the current run
9632 /** returns the variable's average inference score value only using inferences of the current run
9634 * @return the variable's average inference score value only using inferences of the current run
9651 /** initializes the upwards and downwards pseudocosts, conflict scores, conflict lengths, inference scores, cutoff scores
9654 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9670 SCIP_Real downpscost, /**< value to which pseudocosts for downwards branching should be initialized */
9671 SCIP_Real uppscost, /**< value to which pseudocosts for upwards branching should be initialized */
9672 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */
9673 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */
9674 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */
9675 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */
9676 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */
9677 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */
9678 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */
9679 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */
9682 /** initializes the upwards and downwards conflict scores, conflict lengths, inference scores, cutoff scores of a
9685 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9702 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */
9703 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */
9704 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */
9705 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */
9706 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */
9707 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */
9708 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */
9709 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */
9712 /** returns the average number of cutoffs found after branching on the variable in given direction;
9713 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
9716 * @return the average number of cutoffs found after branching on the variable in given direction
9734 /** returns the average number of cutoffs found after branching on the variable in given direction in the current run;
9735 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
9738 * @return the average number of cutoffs found after branching on the variable in given direction in the current run
9794 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
9815 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
9818 * @return the variable's average inference/cutoff score value, only using inferences and cutoffs of the current run
9838 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9876 /** return TRUE if conflict analysis is applicable; In case the function return FALSE there is no need to initialize the
9879 * @return return TRUE if conflict analysis is applicable; In case the function return FALSE there is no need to initialize the
9895 /** initializes the conflict analysis by clearing the conflict candidate queue; this method must be called before you
9896 * enter the conflict variables by calling SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(),
9897 * SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar();
9899 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9913 /** adds lower bound of variable at the time of the given bound change index to the conflict analysis' candidate storage;
9915 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictLb() should be called for each lower bound
9917 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictLb() should be called
9918 * for each lower bound, whose current assignment led to the deduction of the given conflict bound.
9920 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9933 SCIP_BDCHGIDX* bdchgidx /**< bound change index representing time on path to current node, when the
9937 /** adds lower bound of variable at the time of the given bound change index to the conflict analysis' candidate storage
9938 * with the additional information of a relaxed lower bound; this relaxed lower bound is the one which would be enough
9941 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictRelaxedLb() should be called for each (relaxed) lower bound
9943 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictRelexedLb() should be called
9944 * for each (relaxed) lower bound, whose current assignment led to the deduction of the given conflict bound.
9946 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9959 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the
9964 /** adds upper bound of variable at the time of the given bound change index to the conflict analysis' candidate storage;
9966 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictUb() should be called for each upper bound that
9968 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictUb() should be called for
9971 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
9984 SCIP_BDCHGIDX* bdchgidx /**< bound change index representing time on path to current node, when the
9988 /** adds upper bound of variable at the time of the given bound change index to the conflict analysis' candidate storage
9989 * with the additional information of a relaxed upper bound; this relaxed upper bound is the one which would be enough
9992 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictRelaxedUb() should be called for each (relaxed) upper
9993 * bound that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
9994 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictRelaxedUb() should be
9995 * called for each (relaxed) upper bound, whose current assignment led to the deduction of the given conflict
9998 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10011 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the
10016 /** adds lower or upper bound of variable at the time of the given bound change index to the conflict analysis' candidate
10018 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictBd() should be called for each bound
10020 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictBd() should be called
10023 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10037 SCIP_BDCHGIDX* bdchgidx /**< bound change index representing time on path to current node, when the
10041 /** adds lower or upper bound of variable at the time of the given bound change index to the conflict analysis'
10042 * candidate storage; with the additional information of a relaxed upper bound; this relaxed upper bound is the one
10045 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictRelaxedBd() should be called for each (relaxed)
10046 * bound that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
10047 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictRelaxedBd() should be
10048 * called for each (relaxed) bound, whose current assignment led to the deduction of the given conflict bound.
10050 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10064 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the
10071 * 1. Before calling the SCIPanalyzeConflict() method, SCIPaddConflictBinvar() should be called for each fixed binary
10072 * variable that led to the conflict (e.g. the infeasibility of globally or locally valid constraint).
10073 * 2. In the propagation conflict resolving method of a constraint handler, SCIPaddConflictBinvar() should be called
10074 * for each binary variable, whose current fixing led to the deduction of the given conflict bound.
10076 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10091 /** checks if the given variable is already part of the current conflict set or queued for resolving with the same or
10094 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10108 SCIP_BDCHGIDX* bdchgidx, /**< bound change index representing time on path to current node, when the
10113 /** returns the conflict lower bound if the variable is present in the current conflict set; otherwise the global lower
10116 * @return returns the conflict lower bound if the variable is present in the current conflict set; otherwise the global lower
10131 /** returns the conflict upper bound if the variable is present in the current conflict set; otherwise minus global
10134 * @return returns the conflict upper bound if the variable is present in the current conflict set; otherwise minus global
10149 /** analyzes conflict bounds that were added after a call to SCIPinitConflictAnalysis() with calls to
10151 * SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar(); on success, calls the conflict
10152 * handlers to create a conflict constraint out of the resulting conflict set; the given valid depth must be a depth
10153 * level, at which the conflict set defined by calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(),
10154 * SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), and SCIPaddConflictBinvar() is
10155 * valid for the whole subtree; if the conflict was found by a violated constraint, use SCIPanalyzeConflictCons()
10158 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10171 SCIP_Bool* success /**< pointer to store whether a conflict constraint was created, or NULL */
10174 /** analyzes conflict bounds that were added with calls to SCIPaddConflictLb(), SCIPaddConflictUb(),
10175 * SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or
10176 * SCIPaddConflictBinvar(); on success, calls the conflict handlers to create a conflict constraint out of the
10177 * resulting conflict set; the given constraint must be the constraint that detected the conflict, i.e. the constraint
10178 * that is infeasible in the local bounds of the initial conflict set (defined by calls to SCIPaddConflictLb(),
10179 * SCIPaddConflictUb(), SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(),
10182 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10195 SCIP_Bool* success /**< pointer to store whether a conflict constraint was created, or NULL */
10212 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution may
10213 * be declared feasible even if it violates this particular constraint. This constellation should only be
10214 * used, if no LP or pseudo solution can violate the constraint -- e.g. if a local constraint is redundant due
10217 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10231 * @note the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
10258 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup?
10260 SCIP_Bool stickingatnode /**< should the constraint always be kept at the node where it was added, even
10265 /** parses constraint information (in cip format) out of a string; if the parsing process was successful a constraint is
10268 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10281 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution may
10282 * be declared feasible even if it violates this particular constraint. This constellation should only be
10283 * used, if no LP or pseudo solution can violate the constraint -- e.g. if a local constraint is redundant due
10309 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup?
10311 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
10319 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10340 /** decreases usage counter of constraint, if the usage pointer reaches zero the constraint gets freed
10342 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10369 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10386 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10405 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10424 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10443 * @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
10502 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10522 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10541 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10560 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10579 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10596 /** gets and captures transformed constraint of a given constraint; if the constraint is not yet transformed,
10599 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10620 * if a constraint in the array is not yet transformed, a new transformed constraint for this constraint is created;
10623 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10647 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10672 * it is possible to call this method with conss == transconss, but remember that constraints that are not
10675 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10705 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10728 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10750 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10768 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10785 /** disables constraint's separation, propagation, and enforcing capabilities, s.t. the constraint is not propagated,
10787 * in contrast to SCIPdelConsLocal() and SCIPdelConsNode(), the disabling is not associated to a node in the tree and
10788 * does not consume memory; therefore, the constraint is neither automatically enabled on leaving the node nor
10790 * note that the constraints enforcing capabilities are necessary for the solution's feasibility, if the constraint
10791 * is a model constraint; that means, you must be sure that the constraint cannot be violated in the current subtree,
10792 * and you have to enable it again manually by calling SCIPenableCons(), if this subtree is left (e.g. by using
10795 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10815 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10832 /** disables constraint's separation capabilities s.t. the constraint is not propagated anymore until the separation
10833 * is enabled again with a call to SCIPenableConsSeparation(); in contrast to SCIPdelConsLocal() and SCIPdelConsNode(),
10834 * the disabling is not associated to a node in the tree and does not consume memory; therefore, the constraint
10835 * is neither automatically enabled on leaving the node nor automatically disabled again on entering the node again
10837 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10856 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10875 /** disables constraint's propagation capabilities s.t. the constraint is not propagated anymore until the propagation
10876 * is enabled again with a call to SCIPenableConsPropagation(); in contrast to SCIPdelConsLocal() and SCIPdelConsNode(),
10877 * the disabling is not associated to a node in the tree and does not consume memory; therefore, the constraint
10878 * is neither automatically enabled on leaving the node nor automatically disabled again on entering the node again
10880 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10902 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10914 * @note if a constraint is marked to be propagated, the age of the constraint will be ignored for propagation
10924 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10942 /** adds given values to lock status of the constraint and updates the rounding locks of the involved variables
10944 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10968 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
10994 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11000 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
11007 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */
11008 SCIP_Bool objinfeasible, /**< is the solution infeasible anyway due to violating lower objective bound? */
11014 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11020 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
11027 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */
11033 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11039 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
11050 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11067 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11085 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11105 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11112 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
11120 int inferinfo, /**< the user information passed to the corresponding SCIPinferVarLbCons() or SCIPinferVarUbCons() call */
11122 SCIP_BDCHGIDX* bdchgidx, /**< the index of the bound change, representing the point of time where the change took place */
11129 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11143 int nnewfixedvars, /**< number of variables fixed since the last call to the presolving method */
11144 int nnewaggrvars, /**< number of variables aggregated since the last call to the presolving method */
11145 int nnewchgvartypes, /**< number of variable type changes since the last call to the presolving method */
11146 int nnewchgbds, /**< number of variable bounds tightened since the last call to the presolving method */
11147 int nnewholes, /**< number of domain holes added since the last call to the presolving method */
11148 int nnewdelconss, /**< number of deleted constraints since the last call to the presolving method */
11149 int nnewaddconss, /**< number of added constraints since the last call to the presolving method */
11150 int nnewupgdconss, /**< number of upgraded constraints since the last call to the presolving method */
11151 int nnewchgcoefs, /**< number of changed coefficients since the last call to the presolving method */
11152 int nnewchgsides, /**< number of changed left or right hand sides since the last call to the presolving method */
11154 int* naggrvars, /**< pointer to count total number of variables aggregated of all presolvers */
11155 int* nchgvartypes, /**< pointer to count total number of variable type changes of all presolvers */
11156 int* nchgbds, /**< pointer to count total number of variable bounds tightened of all presolvers */
11158 int* ndelconss, /**< pointer to count total number of deleted constraints of all presolvers */
11160 int* nupgdconss, /**< pointer to count total number of upgraded constraints of all presolvers */
11161 int* nchgcoefs, /**< pointer to count total number of changed coefficients of all presolvers */
11162 int* nchgsides, /**< pointer to count total number of changed left/right hand sides of all presolvers */
11168 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11174 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
11185 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11192 * @note This is an advanced method and should be used with caution. It may only be called for constraints that were not
11203 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11221 * @note The file stream will not be flushed directly, this can be achieved by calling SCIPinfoMessage() printing a
11233 * If the number of variables is greater than the available slots in the variable array, nothing happens except that
11234 * the success point is set to FALSE. With the method SCIPgetConsNVars() it is possible to get the number of variables
11237 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11256 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is
11264 int varssize, /**< available slots in vars array which is needed to check if the array is large enough */
11270 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11287 * @note The success pointer indicates if the contraint handler was able to return the number of variables
11289 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is
11297 SCIP_Bool* success /**< pointer to store whether the constraint successfully returned the number of variables */
11340 /** makes sure that the LP of the current node is loaded and may be accessed through the LP information methods
11342 * @warning Contructing the LP might change the amount of variables known in the transformed problem and therefore also
11343 * the variables array of SCIP (returned by SCIPgetVars() and SCIPgetVarsData()), so it might be necessary to
11346 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11362 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11389 /** returns whether the current lp is a relaxation of the current problem and its optimal objective value is a local lower bound
11391 * @return whether the current lp is a relaxation of the current problem and its optimal objective value is a local lower bound.
11405 * @return the objective value of current LP (which is the sum of column and loose objective value).
11410 * @note This method returns the objective value of the current LP solution, which might be primal or dual infeasible
11411 * if a limit was hit during solving. It must not be used as a dual bound if the LP solution status returned by
11449 /** gets the global pseudo objective value; that is all variables set to their best (w.r.t. the objective
11452 * @return the global pseudo objective value; that is all variables set to their best (w.r.t. the objective
11470 /** gets the pseudo objective value for the current search node; that is all variables set to their best (w.r.t. the
11473 * @return the pseudo objective value for the current search node; that is all variables set to their best (w.r.t. the
11491 /** returns whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound
11493 * @return whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound.
11505 /** gets the objective value of the root node LP or SCIP_INVALID if the root node LP was not (yet) solved
11507 * @return the objective value of the root node LP or SCIP_INVALID if the root node LP was not (yet) solved.
11522 /** gets part of the objective value of the root node LP that results from COLUMN variables only;
11525 * @return the part of the objective value of the root node LP that results from COLUMN variables only;
11541 /** gets part of the objective value of the root node LP that results from LOOSE variables only;
11544 * @return the part of the objective value of the root node LP that results from LOOSE variables only;
11562 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11607 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11650 /** returns TRUE iff all columns, i.e. every variable with non-empty column w.r.t. all ever created rows, are present
11651 * in the LP, and FALSE, if there are additional already existing columns, that may be added to the LP in pricing
11653 * @return TRUE iff all columns, i.e. every variable with non-empty column w.r.t. all ever created rows, are present
11654 * in the LP, and FALSE, if there are additional already existing columns, that may be added to the LP in pricing.
11666 /** returns whether the current LP solution is basic, i.e. is defined by a valid simplex basis
11680 /** gets all indices of basic columns and rows: index i >= 0 corresponds to column i, index i < 0 to row -i-1
11682 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11698 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11718 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11740 /** gets a row from the product of inverse basis matrix B^-1 and coefficient matrix A (i.e. from B^-1 * A)
11742 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11761 /** gets a column from the product of inverse basis matrix B^-1 and coefficient matrix A (i.e. from B^-1 * A),
11764 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11782 /** calculates a weighted sum of all LP rows; for negative weights, the left and right hand side of the corresponding
11785 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11797 SCIP_REALARRAY* sumcoef, /**< array to store sum coefficients indexed by variables' probindex */
11802 /** calculates a MIR cut out of the weighted sum of LP rows; The weights of modifiable rows are set to 0.0, because these
11805 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11817 SCIP_Real boundswitch, /**< fraction of domain up to which lower bound is used in transformation */
11819 SCIP_Bool allowlocal, /**< should local information allowed to be used, resulting in a local cut? */
11820 SCIP_Bool fixintegralrhs, /**< should complementation tried to be adjusted such that rhs gets fractional? */
11821 int* boundsfortrans, /**< bounds that should be used for transformed variables: vlb_idx/vub_idx,
11824 SCIP_BOUNDTYPE* boundtypesfortrans, /**< type of bounds that should be used for transformed variables;
11827 SCIP_Real maxweightrange, /**< maximal valid range max(|weights|)/min(|weights|) of row weights */
11831 SCIP_Real maxweight, /**< largest magnitude of weights; set to -1.0 if sparsity information is
11836 int rowlensum, /**< total number of non-zeros in used rows (row associated with nonzero weight coefficient); -1 if unknown */
11837 int* sidetypes, /**< specify row side type (-1 = lhs, 0 = unkown, 1 = rhs) or NULL for automatic choices */
11839 SCIP_Real* mksetcoefs, /**< array to store mixed knapsack set coefficients: size nvars; or NULL */
11840 SCIP_Bool* mksetcoefsvalid, /**< pointer to store whether mixed knapsack set coefficients are valid; or NULL */
11844 SCIP_Bool* success, /**< pointer to store whether the returned coefficients are a valid MIR cut */
11845 SCIP_Bool* cutislocal, /**< pointer to store whether the returned cut is only valid locally */
11849 /** 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
11852 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11863 SCIP_Real boundswitch, /**< fraction of domain up to which lower bound is used in transformation */
11865 SCIP_Bool allowlocal, /**< should local information allowed to be used, resulting in a local cut? */
11867 SCIP_Real maxweightrange, /**< maximal valid range max(|weights|)/min(|weights|) of row weights */
11875 SCIP_Real* mircoef, /**< array to store strong CG coefficients: must be of size SCIPgetNVars() */
11878 SCIP_Bool* success, /**< pointer to store whether the returned coefficients are a valid strong CG cut */
11879 SCIP_Bool* cutislocal, /**< pointer to store whether the returned cut is only valid locally */
11885 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11901 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11913 SCIP_Bool genericnames, /**< should generic names like x_i and row_j be used in order to avoid
11922 * @warning You have to make sure, that the full internal state of the LPI does not change or is recovered completely
11923 * after the end of the method that uses the LPI. In particular, if you manipulate the LP or its solution
11924 * (e.g. by calling one of the SCIPlpiAdd...() or one of the SCIPlpiSolve...() methods), you have to check in
11925 * advance with SCIPlpiWasSolved() whether the LP is currently solved. If this is the case, you have to make
11926 * sure, the internal solution status is recovered completely at the end of your method. This can be achieved
11927 * by getting the LPI state before applying any LPI manipulations with SCIPlpiGetState() and restoring it
11928 * afterwards with SCIPlpiSetState() and SCIPlpiFreeState(). Additionally you have to resolve the LP with the
11931 * @warning Make also sure, that all parameter values that you have changed are set back to their original values.
11933 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11955 /** Displays quality information about the current LP solution. An LP solution need to be available. Information printed
11958 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
11986 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12072 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12091 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
12097 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12116 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
12122 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12140 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
12146 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12153 * @deprecated Please use SCIPcreateRowCons() or SCIPcreateRowSepa() when calling from a constraint handler or separator in order
12154 * to facilitate correct statistics. If the call is from neither a constraint handler or separator, use SCIPcreateRowUnspec().
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
12189 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
12195 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12211 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
12217 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12232 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
12238 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12245 * @deprecated Please use SCIPcreateEmptyRowCons() or SCIPcreateEmptyRowSepa() when calling from a constraint handler or separator in order
12246 * to facilitate correct statistics. If the call is from neither a constraint handler or separator, use SCIPcreateEmptyRowUnspec().
12256 SCIP_Bool modifiable, /**< is row modifiable during node processing (subject to column generation)? */
12262 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12277 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12293 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12309 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12323 /** informs row, that all subsequent additions of variables to the row should be cached and not directly applied;
12325 * while the caching of row extensions is activated, information methods of the row give invalid results;
12326 * caching should be used, if a row is build with SCIPaddVarToRow() calls variable by variable to increase
12329 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12342 /** flushes all cached row extensions after a call of SCIPcacheRowExtensions() and merges coefficients with
12345 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12360 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12367 * @note In case calling this method in the enforcement process of an lp solution, it might be that some variables,
12368 * that were not yet in the LP (e.g. dynamic columns) will change their lp solution value returned by SCIP.
12369 * For example, a variable, which has a negative objective value, that has no column in the lp yet, is in the lp solution
12370 * on its upper bound (variables with status SCIP_VARSTATUS_LOOSE are in an lp solution on it's best bound), but
12371 * creating the column, changes the solution value (variable than has status SCIP_VARSTATUS_COLUMN, and the
12372 * initialization sets the lp solution value) to 0.0. (This leads to the conclusion that, if a constraint was
12384 * this method caches the row extensions and flushes them afterwards to gain better performance
12386 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12403 * this method caches the row extensions and flushes them afterwards to gain better performance
12405 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12421 /** tries to find a value, such that all row coefficients, if scaled with this value become integral
12423 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12434 SCIP_Real mindelta, /**< minimal relative allowed difference of scaled coefficient s*c and integral i */
12435 SCIP_Real maxdelta, /**< maximal relative allowed difference of scaled coefficient s*c and integral i */
12438 SCIP_Bool usecontvars, /**< should the coefficients of the continuous variables also be made integral? */
12439 SCIP_Real* intscalar, /**< pointer to store scalar that would make the coefficients integral, or NULL */
12445 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12456 SCIP_Real mindelta, /**< minimal relative allowed difference of scaled coefficient s*c and integral i */
12457 SCIP_Real maxdelta, /**< maximal relative allowed difference of scaled coefficient s*c and integral i */
12460 SCIP_Bool usecontvars, /**< should the coefficients of the continuous variables also be made integral? */
12531 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12558 * @return the feasibility of a row in the last LP solution: negative value means infeasibility
12571 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12596 /** returns the feasibility of a row for the current pseudo solution: negative value means infeasibility
12598 * @return the feasibility of a row for the current pseudo solution: negative value means infeasibility
12611 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12679 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12707 * If the NLP relaxation is enabled, then SCIP will construct the NLP relaxation when the solving process is about to begin.
12727 * This method should be called by a constraint handler if it has constraints that have a representation as nonlinear rows.
12729 * The function should be called before the branch-and-bound process is initialized, e.g., when presolve is exiting.
12801 /** computes for each variables the number of NLP rows in which the variable appears in a nonlinear var
12810 int* nlcount /**< an array of length at least SCIPnlpGetNVars() to store nonlinearity counts of variables */
12895 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12905 SCIP_Real* initialguess /**< values of initial guess (corresponding to variables from SCIPgetNLPVarsData), or NULL to use no start point */
12910 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12920 SCIP_SOL* sol /**< solution which values should be taken as initial guess, or NULL for LP solution */
12925 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12961 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
12997 /** gets fractional variables of last NLP solution along with solution values and fractionalities
12999 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13010 SCIP_Real** fracvarssol, /**< pointer to store the array of NLP fractional variables solution values, or NULL */
13011 SCIP_Real** fracvarsfrac, /**< pointer to store the array of NLP fractional variables fractionalities, or NULL */
13013 int* npriofracvars /**< pointer to store the number of NLP fractional variables with maximal branching priority, or NULL */
13018 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13034 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13050 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13066 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13082 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13098 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13114 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13130 * @warning You have to make sure, that the full internal state of the NLPI does not change or is recovered completely
13131 * after the end of the method that uses the NLPI. In particular, if you manipulate the NLP or its solution
13132 * (e.g. by calling one of the SCIPnlpiAdd...() or the SCIPnlpiSolve() method), you have to check in advance
13133 * whether the NLP is currently solved. If this is the case, you have to make sure, the internal solution
13134 * status is recovered completely at the end of your method. Additionally you have to resolve the NLP with
13137 * @warning Make also sure, that all parameter values that you have changed are set back to their original values.
13139 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13163 /** initiates NLP diving making methods SCIPchgVarObjDiveNLP(), SCIPchgVarBoundsDiveNLP(), SCIPchgVarsBoundsDiveNLP(), and SCIPsolveDiveNLP() available
13165 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13179 * Resets changes made by SCIPchgVarObjDiveNLP(), SCIPchgVarBoundsDiveNLP(), and SCIPchgVarsBoundsDiveNLP().
13181 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13195 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13211 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13228 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13246 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13270 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13290 SCIP_QUADELEM* quadelems, /**< elements (i.e., monomials) in quadratic term, or NULL if nquadelems == 0 */
13298 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13317 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13334 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13350 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13367 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13384 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13401 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13418 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13436 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13458 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13478 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13497 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13515 * Variable indices of the quadratic element need to be relative to quadratic variables array of row.
13517 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13534 * Variable indices of the quadratic elements need to be relative to quadratic variables array of row.
13536 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13557 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13574 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13591 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13609 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13626 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13642 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13656 /** gives the feasibility of a nonlinear row in the last NLP solution: negative value means infeasibility
13658 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13674 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13689 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13703 /** gives the feasibility of a nonlinear row for the current pseudo solution: negative value means infeasibility
13705 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13721 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13736 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13752 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13766 /** gives the activity of a nonlinear row for the given primal solution or NLP solution or pseudo solution
13768 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13785 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13802 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13820 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13842 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13868 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13897 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13926 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
13963 /** returns efficacy of the cut with respect to the given primal solution or the current LP solution:
13966 * @return the efficacy of the cut with respect to the given primal solution or the current LP solution:
13979 /** returns whether the cut's efficacy with respect to the given primal solution or the current LP solution is greater
13982 * @return TRUE if the cut's efficacy with respect to the given primal solution or the current LP solution is greater
13997 * @return TRUE if the given cut's efficacy is larger than the minimal cut efficacy, otherwise FALSE
14005 /** calculates the efficacy norm of the given vector, which depends on the "separating/efficacynorm" parameter
14007 * @return the efficacy norm of the given vector, which depends on the "separating/efficacynorm" parameter
14026 * @return whether the cut is modifiable, not a bound change, or a bound change that changes bounds by at least epsilon
14036 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14048 SCIP_Bool* infeasible /**< pointer to store whether cut has been detected to be infeasible for local bounds */
14053 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14067 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14123 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14145 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14169 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14185 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14201 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14218 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14233 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14249 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14262 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14275 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14287 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14299 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14309 /** separates the given primal solution or the current LP solution by calling the separators and constraint handlers'
14311 * the generated cuts are stored in the separation storage and can be accessed with the methods SCIPgetCuts() and
14313 * after evaluating the cuts, you have to call SCIPclearCuts() in order to remove the cuts from the
14315 * it is possible to call SCIPseparateSol() multiple times with different solutions and evaluate the found cuts
14318 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14328 SCIP_Bool pretendroot, /**< should the cut separators be called as if we are at the root node? */
14329 SCIP_Bool onlydelayed, /**< should only separators be called that were delayed in the previous round? */
14364 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14375 /** removes cuts that are inefficacious w.r.t. the current LP solution from separation storage without adding the cuts to the LP
14377 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14388 /** returns current factor on cut infeasibility to limit feasibility tolerance for relaxation solver
14414 /** initiates LP diving, making methods SCIPchgVarObjDive(), SCIPchgVarLbDive(), and SCIPchgVarUbDive() available
14416 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14424 * @note diving is allowed even if the current LP is not flushed, not solved, or not solved to optimality; be aware
14425 * that solving the (first) diving LP may take longer than expect and that the latter two cases could stem from
14426 * numerical troubles during the last LP solve; because of this, most users will want to call this method only if
14434 /** quits LP diving and resets bounds and objective values of columns to the current node's values
14436 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14451 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14467 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14484 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14501 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14518 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14532 /** changes row lhs in current dive, change will be undone after diving ends, for permanent changes use SCIPchgRowLhs()
14534 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14549 /** changes row rhs in current dive, change will be undone after diving ends, for permanent changes use SCIPchgRowRhs()
14551 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14612 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14620 * @note be aware that the LP solve may take longer than expected if SCIPgetLPSolstat(scip) != SCIP_LPSOLSTAT_OPTIMAL,
14632 /** returns the number of the node in the current branch and bound run, where the last LP was solved in diving
14635 * @return the number of the node in the current branch and bound run, where the last LP was solved in diving
14694 /** returns whether we are in probing mode; probing mode is activated via SCIPstartProbing() and stopped
14715 /** initiates probing, making methods SCIPnewProbingNode(), SCIPbacktrackProbing(), SCIPchgVarLbProbing(),
14716 * SCIPchgVarUbProbing(), SCIPfixVarProbing(), SCIPpropagateProbing(), and SCIPsolveProbingLP() available
14718 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14725 * @note The collection of variable statistics is turned off during probing. If these statistics should be collected
14733 /** creates a new probing sub node, whose changes can be undone by backtracking to a higher node in the probing path
14737 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14751 * @return the probing depth, i.e. the number of probing sub nodes existing in the probing path
14763 * the changes of the probing node of the given probing depth are the last ones that remain active;
14766 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14776 int probingdepth /**< probing depth of the node in the probing path that should be reactivated */
14781 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14793 /** injects a change of variable's lower bound into current probing node; the same can also be achieved with a call to
14794 * SCIPchgVarLb(), but in this case, the bound change would be treated like a deduction instead of a branching decision
14796 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14810 /** injects a change of variable's upper bound into current probing node; the same can also be achieved with a call to
14811 * SCIPchgVarUb(), but in this case, the bound change would be treated like a deduction instead of a branching decision
14813 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14842 /** injects a change of variable's bounds into current probing node to fix the variable to the specified value;
14843 * the same can also be achieved with a call to SCIPfixVar(), but in this case, the bound changes would be treated
14846 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14862 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14878 /** applies domain propagation on the probing sub problem, that was changed after SCIPstartProbing() was called;
14879 * the propagated domains of the variables can be accessed with the usual bound accessing calls SCIPvarGetLbLocal()
14880 * and SCIPvarGetUbLocal(); the propagation is only valid locally, i.e. the local bounds as well as the changed
14881 * bounds due to SCIPchgVarLbProbing(), SCIPchgVarUbProbing(), and SCIPfixVarProbing() are used for propagation
14883 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14893 int maxproprounds, /**< maximal number of propagation rounds (-1: no limit, 0: parameter settings) */
14895 SCIP_Longint* ndomredsfound /**< pointer to store the number of domain reductions found, or NULL */
14898 /** applies domain propagation on the probing sub problem, that was changed after SCIPstartProbing() was called;
14899 * only propagations of the binary variables fixed at the current probing node that are triggered by the implication
14901 * the propagated domains of the variables can be accessed with the usual bound accessing calls SCIPvarGetLbLocal()
14902 * and SCIPvarGetUbLocal(); the propagation is only valid locally, i.e. the local bounds as well as the changed
14903 * bounds due to SCIPchgVarLbProbing(), SCIPchgVarUbProbing(), and SCIPfixVarProbing() are used for propagation
14905 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14921 * The LP has to be constructed before (you can use SCIPisLPConstructed() or SCIPconstructLP()).
14923 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14934 SCIP_Bool* cutoff /**< pointer to store whether the probing LP was infeasible or the objective
14938 /** solves the LP at the current probing node (cannot be applied at preprocessing stage) and applies pricing
14941 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed . See \ref
14955 SCIP_Bool* cutoff /**< pointer to store whether the probing LP was infeasible or the objective
14962 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14977 * this method can only be applied during probing; the user should resolve the probing LP afterwards
14980 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
14997 SCIP_DIVETYPE divetype, /**< represents different methods for a dive set to explore the next children */
15005 /** update diveset LP statistics, should be called after every LP solved by this diving heuristic */
15025 /** enforces a probing/diving solution by suggesting bound changes that maximize the score w.r.t. the current diving settings
15027 * the process is guided by the enforcement priorities of the constraint handlers and the scoring mechanism provided by
15029 * Constraint handlers may suggest diving bound changes in decreasing order of their enforcement priority, based on the
15030 * solution values in the solution @p sol and the current local bounds of the variables. A diving bound change
15031 * is a triple (variable,branching direction,value) and is used inside SCIPperformGenericDivingAlgorithm().
15033 * After a successful call, SCIP holds two arrays of suggested dive bound changes, one for the preferred child
15040 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15053 SCIP_Bool* success, /**< pointer to store whether constraint handler successfully found a variable */
15054 SCIP_Bool* infeasible /**< pointer to store whether the current node was detected to be infeasible */
15057 /** adds a diving bound change to the diving bound change storage of SCIP together with the information if this is a
15060 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15115 /** gets branching candidates for LP solution branching (fractional variables) along with solution values,
15116 * fractionalities, and number of branching candidates; The number of branching candidates does NOT
15117 * account for fractional implicit integer variables which should not be used for branching decisions.
15119 * Fractional implicit integer variables are stored at the positions *nlpcands to *nlpcands + *nfracimplvars - 1
15121 * branching rules should always select the branching candidate among the first npriolpcands of the candidate
15124 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15136 SCIP_Real** lpcandssol, /**< pointer to store the array of LP candidate solution values, or NULL */
15137 SCIP_Real** lpcandsfrac, /**< pointer to store the array of LP candidate fractionalities, or NULL */
15139 int* npriolpcands, /**< pointer to store the number of candidates with maximal priority, or NULL */
15140 int* nfracimplvars /**< pointer to store the number of fractional implicit integer variables, or NULL */
15143 /** gets number of branching candidates for LP solution branching (number of fractional variables)
15145 * @return the number of branching candidates for LP solution branching (number of fractional variables).
15171 /** gets external branching candidates along with solution values, scores, and number of branching candidates;
15173 * branching rules should always select the branching candidate among the first nprioexterncands of the candidate
15176 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15184 * @note Candidate variables with maximal priority are ordered: binaries first, then integers, implicit integers and
15190 SCIP_VAR*** externcands, /**< pointer to store the array of extern branching candidates, or NULL */
15191 SCIP_Real** externcandssol, /**< pointer to store the array of extern candidate solution values, or NULL */
15192 SCIP_Real** externcandsscore, /**< pointer to store the array of extern candidate scores, or NULL */
15193 int* nexterncands, /**< pointer to store the number of extern branching candidates, or NULL */
15194 int* nprioexterncands, /**< pointer to store the number of candidates with maximal priority, or NULL */
15195 int* nprioexternbins, /**< pointer to store the number of binary candidates with maximal priority, or NULL */
15196 int* nprioexternints, /**< pointer to store the number of integer candidates with maximal priority, or NULL */
15197 int* nprioexternimpls /**< pointer to store the number of implicit integer candidates with maximal priority,
15257 /** gets number of implicit integer external branching candidates with maximal branch priority
15259 * @return the number of implicit integer external branching candidates with maximal branch priority.
15273 * @return the number of continuous external branching candidates with maximal branch priority.
15285 /** insert variable, its score and its solution value into the external branching candidate storage
15286 * the relative difference of the current lower and upper bounds of a continuous variable must be at least epsilon
15288 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15316 /** checks whether the given variable is contained in the candidate storage for external branching
15318 * @return whether the given variable is contained in the candidate storage for external branching.
15331 /** gets branching candidates for pseudo solution branching (non-fixed variables) along with the number of candidates
15333 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15345 SCIP_VAR*** pseudocands, /**< pointer to store the array of pseudo branching candidates, or NULL */
15346 int* npseudocands, /**< pointer to store the number of pseudo branching candidates, or NULL */
15347 int* npriopseudocands /**< pointer to store the number of candidates with maximal priority, or NULL */
15352 * @return the number branching candidates for pseudo solution branching (non-fixed variables).
15365 /** gets number of branching candidates with maximal branch priority for pseudo solution branching
15367 * @return the number of branching candidates with maximal branch priority for pseudo solution branching.
15380 /** gets number of binary branching candidates with maximal branch priority for pseudo solution branching
15382 * @return the number of binary branching candidates with maximal branch priority for pseudo solution branching.
15394 /** gets number of integer branching candidates with maximal branch priority for pseudo solution branching
15396 * @return the number of integer branching candidates with maximal branch priority for pseudo solution branching.
15408 /** gets number of implicit integer branching candidates with maximal branch priority for pseudo solution branching
15410 * @return the number of implicit integer branching candidates with maximal branch priority for pseudo solution branching.
15439 /** calculates the branching score out of the gain predictions for a branching with arbitrary many children
15441 * @return the branching score out of the gain predictions for a branching with arbitrary many children.
15474 /** calculates the node selection priority for moving the given variable's LP value to the given target value;
15477 * @return the node selection priority for moving the given variable's LP value to the given target value.
15488 SCIP_BRANCHDIR branchdir, /**< type of branching that was performed: upwards, downwards, or fixed;
15494 /** calculates an estimate for the objective of the best feasible solution contained in the subtree after applying the given
15497 * @return the estimate for the objective of the best feasible solution contained in the subtree after applying the given
15514 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15527 SCIP_Real estimate /**< estimate for (transformed) objective value of best feasible solution in subtree */
15539 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15551 SCIP_NODE** downchild, /**< pointer to return the left child with variable rounded down, or NULL */
15553 SCIP_NODE** upchild /**< pointer to return the right child with variable rounded up, or NULL */
15556 /** branches a variable x using a given domain hole; two child nodes (x <= left, x >= right) are created
15558 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15577 * for continuous variables with relative domain width larger epsilon, x' must not be one of the bounds;
15584 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15597 SCIP_NODE** downchild, /**< pointer to return the left child with variable rounded down, or NULL */
15599 SCIP_NODE** upchild /**< pointer to return the right child with variable rounded up, or NULL */
15604 * Branches on variable x such that up to n/2 children are created on each side of the usual branching value.
15606 * The parameters minwidth and widthfactor determine the domain width of the branching variable in the child nodes.
15607 * If n is odd, one child with domain width 'width' and having the branching value in the middle is created.
15608 * Otherwise, two children with domain width 'width' and being left and right of the branching value are created.
15609 * Next further nodes to the left and right are created, where width is multiplied by widthfactor with increasing distance
15611 * The initial width is calculated such that n/2 nodes are created to the left and to the right of the branching value.
15612 * If this value is below minwidth, the initial width is set to minwidth, which may result in creating less than n nodes.
15614 * Giving a large value for widthfactor results in creating children with small domain when close to the branching value
15615 * and large domain when closer to the current variable bounds. That is, setting widthfactor to a very large value and n to 3
15616 * results in a ternary branching where the branching variable is mostly fixed in the middle child.
15617 * Setting widthfactor to 1.0 results in children where the branching variable always has the same domain width
15620 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15635 SCIP_Real widthfactor, /**< multiplier for children domain width with increasing distance from val, must be >= 1.0 */
15639 /** calls branching rules to branch on an LP solution; if no fractional variables exist, the result is SCIP_DIDNOTRUN;
15640 * if the branch priority of an unfixed variable is larger than the maximal branch priority of the fractional
15641 * variables, pseudo solution branching is applied on the unfixed variables with maximal branch priority
15643 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15657 /** calls branching rules to branch on a external candidates; if no such candidates exist, the result is SCIP_DIDNOTRUN
15659 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15673 /** calls branching rules to branch on a pseudo solution; if no unfixed variables exist, the result is SCIP_DIDNOTRUN
15675 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15703 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15726 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15741 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15756 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15771 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15784 /** creates a primal solution, initialized to the current LP or pseudo solution, depending on whether the LP was solved
15787 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15802 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15823 * a solution in original space allows to set original variables to values that would be invalid in the
15826 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15847 /** creates a copy of a primal solution; note that a copy of a linked solution is also linked and needs to be unlinked
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
15897 /** creates a copy of a primal solution, thereby replacing infinite fixings of variables by finite values;
15899 * success indicates whether the objective value of the solution was changed by removing infinite values
15901 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15927 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15952 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15966 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15980 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
15994 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16009 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16023 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16048 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16070 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16097 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16125 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16154 * @pre In case the solution pointer @p sol is @b NULL, that means it is asked for the LP or pseudo solution, this method
16155 * can only be called if @p scip is in the solving stage \ref SCIP_STAGE_SOLVING. In any other case, this method
16179 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16205 /** returns objective value of primal CIP solution w.r.t. original problem, or current LP/pseudo objective value
16207 * @return objective value of primal CIP solution w.r.t. original problem, or current LP/pseudo objective value
16229 /** returns transformed objective value of primal CIP solution, or transformed current LP/pseudo objective value
16231 * @return transformed objective value of primal CIP solution, or transformed current LP/pseudo objective value
16255 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16428 /** adjusts solution values of implicit integer variables in handed solution. Solution objective value is not
16431 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16441 SCIP_Bool uselprows /**< should LP row information be considered for none-objective variables */
16446 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16449 * @pre In case the solution pointer @p sol is NULL (askinking for the current LP/pseudo solution), this method can be
16459 * @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
16482 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16506 * @note This only works if no presolving has been performed, which can be checked by calling method \ref
16509 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16523 /** outputs non-zero variables of solution representing a ray in original problem space to file stream
16525 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16548 /** gets number of feasible primal solutions stored in the solution storage in case the problem is transformed;
16549 * in case the problem stage is SCIP_STAGE_PROBLEM, the number of solution in the original solution candidate
16552 * @return number of feasible primal solutions stored in the solution storage in case the problem is transformed; or
16553 * number of solution in the original solution candidate storage if the problem stage is SCIP_STAGE_PROBLEM
16572 /** gets array of feasible primal solutions stored in the solution storage in case the problem is transformed; in case
16573 * if the problem stage is in SCIP_STAGE_PROBLEM, it returns the number array of solution candidate stored
16594 /** gets best feasible primal solution found so far if the problem is transformed; in case the problem is in
16595 * SCIP_STAGE_PROBLEM it returns the best solution candidate, or NULL if no solution has been found or the candidate
16619 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16644 /** outputs best feasible primal solution found so far in transformed variables to file stream
16646 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16673 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16688 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16713 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16734 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16758 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16782 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16798 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16824 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16850 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16869 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16894 /** checks solution for feasibility in original problem without adding it to the solution store;
16897 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16922 * @return return whether a primal ray is stored that proves unboundedness of the LP relaxation
16961 * If you want to catch an event for an original variable, you have to get the corresponding transformed variable
16968 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
16989 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
16995 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17016 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
17022 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17044 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
17048 /** drops an objective value or domain change event (stops to track event) on the given transformed variable
17050 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17072 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
17078 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17100 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
17104 /** drops a row coefficient, constant, or side change event (stops to track event) on the given row
17106 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17128 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler when processing this event */
17174 /** gets the effective root depth, i.e., the depth of the deepest node which is part of all paths from the root node
17204 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17231 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17258 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17283 /** gets the best child of the focus node w.r.t. the node selection priority assigned by the branching rule
17285 * @return the best child of the focus node w.r.t. the node selection priority assigned by the branching rule
17295 /** gets the best sibling of the focus node w.r.t. the node selection priority assigned by the branching rule
17297 * @return the best sibling of the focus node w.r.t. the node selection priority assigned by the branching rule
17343 /** gets the best node from the tree (child, sibling, or leaf) w.r.t. the node selection strategy
17345 * @return the best node from the tree (child, sibling, or leaf) w.r.t. the node selection strategy
17385 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17397 /** marks the given node to be propagated again the next time a node of its subtree is processed
17399 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17437 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17452 * @note In order to have an effect, this method needs to be called after a node is focused but before the LP is
17476 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17493 /** return the ids of all leave nodes store in the reoptimization tree induced by the given node
17495 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17512 /** returns the number of nodes in the reoptimization tree induced by @p node. if @p node == NULL, the method
17521 /** returns the number of leave nodes of the subtree induced by @p node. if @p node == NULL, the method
17538 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17557 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17573 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17599 int* nafterdualvars /**< number of variables directly after the first based on dual information */
17604 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17619 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17633 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17648 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17670 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17683 /** splits the root into several nodes and moves the child nodes of the root to one of the created nodes
17685 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17708 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
17865 /** gets total number of iterations used so far in primal and dual simplex and barrier algorithm
17867 * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm
17880 /** gets total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node
17882 * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node
17894 /** gets total number of iterations used in primal and dual simplex and barrier algorithm for the first LP at the root
17897 * @return the total number of iterations used in primal and dual simplex and barrier algorithm for the first root LP
17995 * @return the total number of LPs solved so far that were resolved from an advanced start basis
18007 /** gets total number of simplex iterations used so far in primal and dual simplex calls where an advanced start basis
18010 * @return the total number of simplex iterations used so far in primal and dual simplex calls where an advanced start
18023 /** gets total number of primal LPs solved so far that were resolved from an advanced start basis
18025 * @return the total number of primal LPs solved so far that were resolved from an advanced start basis
18037 /** gets total number of simplex iterations used so far in primal simplex calls where an advanced start basis
18040 * @return the total number of simplex iterations used so far in primal simplex calls where an advanced start
18053 /** gets total number of dual LPs solved so far that were resolved from an advanced start basis
18055 * @return the total number of dual LPs solved so far that were resolved from an advanced start basis
18067 /** gets total number of simplex iterations used so far in dual simplex calls where an advanced start basis
18070 * @return the total number of simplex iterations used so far in dual simplex calls where an advanced start
18127 * @return the total number of simplex iterations used so far for initial LP in node relaxations
18167 /** gets total number of times, strong branching was called (each call represents solving two LPs)
18169 * @return the total number of times, strong branching was called (each call represents solving two LPs)
18195 /** gets total number of times, strong branching was called at the root node (each call represents solving two LPs)
18197 * @return the total number of times, strong branching was called at the root node (each call represents solving two LPs)
18211 * @return the total number of simplex iterations used so far in strong branching at the root node
18331 /** get total number of constraints found in conflict analysis (conflict and reconvergence constraints)
18333 * @return the total number of constraints found in conflict analysis (conflict and reconvergence constraints)
18391 /** gets depth of current node, or -1 if no current node exists; in probing, the current node is the last probing node,
18394 * @return the depth of current node, or -1 if no current node exists; in probing, the current node is the last probing node,
18413 /** gets depth of the focus node, or -1 if no focus node exists; the focus node is the currently processed node in the
18416 * @return the depth of the focus node, or -1 if no focus node exists; the focus node is the currently processed node in the
18435 /** gets maximal depth of all processed nodes in current branch and bound run (excluding probing nodes)
18437 * @return the maximal depth of all processed nodes in current branch and bound run (excluding probing nodes)
18475 /** gets total number of backtracks, i.e. number of times, the new node was selected from the leaves queue
18477 * @return the total number of backtracks, i.e. number of times, the new node was selected from the leaves queue
18639 /** gets lower (dual) bound in transformed problem obtained by the first LP solve at the root node
18641 * @return the lower (dual) bound in transformed problem obtained by first LP solve at the root node
18657 /** gets global primal bound (objective value of best solution or user objective limit) for the original problem
18659 * @return the global primal bound (objective value of best solution or user objective limit) for the original problem
18677 /** gets global upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
18679 * @return the global upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
18697 /** gets global cutoff bound in transformed problem: a sub problem with lower bound larger than the cutoff
18698 * cannot contain a better feasible solution; usually, this bound is equal to the upper bound, but if the
18699 * objective value is always integral, the cutoff bound is (nearly) one less than the upper bound;
18700 * additionally, due to objective function domain propagation, the cutoff bound can be further reduced
18722 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
18740 /** returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound
18743 * @return TRUE if the current primal bound is justified with a feasible primal solution, otherwise FALSE
18761 /** gets current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign,
18764 * @return the current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign,
18777 /** gets current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds
18780 * @return current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds
18833 /** gets number of feasible primal solutions found so far, that improved the primal bound at the time they were found
18835 * @return the number of feasible primal solutions found so far, that improved the primal bound at the time they were found
18885 * @return the average number of pseudo cost updates for the given direction over all variables
18897 /** gets the average number of pseudo cost updates for the given direction over all variables,
18900 * @return the average number of pseudo cost updates for the given direction over all variables,
18913 /** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5
18915 * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5
18926 /** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5,
18929 * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5,
18947 /** gets the average conflict score value over all variables, only using the pseudo cost information of the current run
18949 * @return the average conflict score value over all variables, only using the pseudo cost information of the current run
18973 /** gets the average conflictlength score value over all variables, only using the pseudo cost information of the
18976 * @return the average conflictlength score value over all variables, only using the pseudo cost information of the
18988 /** returns the average number of inferences found after branching in given direction over all variables
18990 * @return the average number of inferences found after branching in given direction over all variables
19002 /** returns the average number of inferences found after branching in given direction over all variables,
19005 * @return the average number of inferences found after branching in given direction over all variables,
19031 /** gets the average inference score value over all variables, only using the inference information information of the
19034 * @return the average inference score value over all variables, only using the inference information information of the
19046 /** returns the average number of cutoffs found after branching in given direction over all variables
19048 * @return the average number of cutoffs found after branching in given direction over all variables
19060 /** returns the average number of cutoffs found after branching in given direction over all variables,
19063 * @return the average number of cutoffs found after branching in given direction over all variables,
19089 /** gets the average cutoff score value over all variables, only using the pseudo cost information of the current run
19091 * @return the average cutoff score value over all variables, only using the pseudo cost information of the current run
19104 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19131 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19156 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19159 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
19181 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19203 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19225 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19235 SCIP_VERBLEVEL verblevel, /**< minimal verbosity level to actually display the information line */
19239 /** gets total number of implications between variables that are stored in the implication graph
19241 * @return the total number of implications between variables that are stored in the implication graph
19257 /** stores conflict graph of binary variables' implications into a file, which can be used as input for the DOT tool
19259 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19304 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19315 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19326 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19337 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19348 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19359 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19370 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19382 * Method reads the value of the parameter timing/statistictiming. In order to disable statistic timing,
19388 * @see: For completely disabling all timing of SCIP, consider setting the parameter timing/enabled to FALSE
19413 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19439 * @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
19487 * @return the current total SCIP time in seconds, ie. the total time since the SCIP instance has been created
19660 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19671 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19683 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19694 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
19715 /** returns the minimum value that is regarded as huge and should be handled separately (e.g., in activity
19770 /** checks, if value is huge and should be handled separately (e.g., in activity computation) */
19925 /** checks, if relative difference of val1 and val2 is not greater than feasibility tolerance */
20028 /** checks, if relative difference of val1 and val2 is not greater than dual feasibility tolerance */
20036 /** checks, if relative difference of val1 and val2 is greater than dual feasibility tolerance */
20044 /** checks, if relative difference of val1 and val2 is not lower than -dual feasibility tolerance */
20115 /** checks, if the given new lower bound is tighter (w.r.t. bound strengthening epsilon) than the old one */
20124 /** checks, if the given new upper bound is tighter (w.r.t. bound strengthening epsilon) than the old one */
20212 /** converts the given real number representing an integer to an int; in optimized mode the function gets inlined for
20221 /** converts the given real number representing an integer to a long integer; in optimized mode the function gets inlined for
20231 * This is useful, if the value, e.g., the activity of a linear constraint or the pseudo objective value, gets a high
20232 * absolute value during the optimization process which is later reduced significantly. In this case, the last digits
20234 * We do not consider the cancellations which can occur during increasing the absolute value because they just cannot
20236 * In order to get more reliable values, the idea is to always store the last reliable value, where increasing the
20237 * absolute of the value is viewed as preserving reliability. Then, after each update, the new absolute value can be
20238 * compared against the last reliable one with this method, checking whether it was decreased by a factor of at least
20250 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
20267 #define SCIPisScalingIntegral(scip, val, scalar) SCIPsetIsScalingIntegral((scip)->set, val, scalar)
20313 #define SCIPisLbBetter(scip, newlb, oldlb, oldub) SCIPsetIsLbBetter(scip->set, newlb, oldlb, oldub)
20314 #define SCIPisUbBetter(scip, newub, oldlb, oldub) SCIPsetIsUbBetter(scip->set, newub, oldlb, oldub)
20327 #define SCIPconvertRealToInt(scip, real) ((int)((real) < 0 ? ((real) - 0.5) : ((real) + 0.5)))
20328 #define SCIPconvertRealToLongint(scip, real) ((SCIP_Longint)((real) < 0 ? ((real) - 0.5) : ((real) + 0.5)))
20330 #define SCIPisUpdateUnreliable(scip, newval, oldval) SCIPsetIsUpdateUnreliable((scip)->set, newval, oldval)
20359 #define SCIPallocClearMemoryArray(scip,ptr,num) ( (BMSallocClearMemoryArray((ptr), (num)) == NULL) \
20363 #define SCIPreallocMemoryArray(scip,ptr,newnum) ( (BMSreallocMemoryArray((ptr), (newnum)) == NULL) \
20365 #define SCIPreallocMemorySize(scip,ptr,newsize) ( (BMSreallocMemorySize((ptr), (newsize)) == NULL) \
20367 #define SCIPduplicateMemory(scip, ptr, source) ( (BMSduplicateMemory((ptr), (source)) == NULL) \
20369 #define SCIPduplicateMemoryArray(scip, ptr, source, num) ( (BMSduplicateMemoryArray((ptr), (source), (num)) == NULL) \
20383 #define SCIPallocBlockMemory(scip,ptr) ( (BMSallocBlockMemory(SCIPblkmem(scip), (ptr)) == NULL) \
20385 #define SCIPallocBlockMemoryArray(scip,ptr,num) ( (BMSallocBlockMemoryArray(SCIPblkmem(scip), (ptr), (num)) == NULL) \
20387 #define SCIPallocBlockMemorySize(scip,ptr,size) ( (BMSallocBlockMemorySize(SCIPblkmem(scip), (ptr), (size)) == NULL) \
20389 #define SCIPallocClearBlockMemoryArray(scip,ptr,num) ( (BMSallocClearBlockMemoryArray(SCIPblkmem(scip), (ptr), (num)) == NULL) \
20391 #define SCIPreallocBlockMemoryArray(scip,ptr,oldnum,newnum) ( (BMSreallocBlockMemoryArray(SCIPblkmem(scip), (ptr), (oldnum), (newnum)) == NULL) \
20393 #define SCIPreallocBlockMemorySize(scip,ptr,oldsize,newsize) ( (BMSreallocBlockMemorySize(SCIPblkmem(scip), (ptr), (oldsize), (newsize)) == NULL) \
20395 #define SCIPduplicateBlockMemory(scip, ptr, source) ( (BMSduplicateBlockMemory(SCIPblkmem(scip), (ptr), (source)) == NULL) \
20397 #define SCIPduplicateBlockMemoryArray(scip, ptr, source, num) ( (BMSduplicateBlockMemoryArray(SCIPblkmem(scip), (ptr), (source), (num)) == NULL) \
20399 #define SCIPensureBlockMemoryArray(scip,ptr,arraysizeptr,minsize) ( (SCIPensureBlockMemoryArray_call((scip), (void**)(ptr), sizeof(**(ptr)), (arraysizeptr), (minsize))) )
20402 #define SCIPfreeBlockMemoryArray(scip,ptr,num) BMSfreeBlockMemoryArray(SCIPblkmem(scip), (ptr), (num))
20403 #define SCIPfreeBlockMemoryArrayNull(scip,ptr,num) BMSfreeBlockMemoryArrayNull(SCIPblkmem(scip), (ptr), (num))
20404 #define SCIPfreeBlockMemorySize(scip,ptr,size) BMSfreeBlockMemorySize(SCIPblkmem(scip), (ptr), (size))
20405 #define SCIPfreeBlockMemorySizeNull(scip,ptr,size) BMSfreeBlockMemorySizeNull(SCIPblkmem(scip), (ptr), (size))
20414 #define SCIPallocBufferArray(scip,ptr,num) ( (BMSallocBufferMemoryArray(SCIPbuffer(scip), (ptr), (num)) == NULL) \
20416 #define SCIPallocClearBufferArray(scip,ptr,num) ( (BMSallocClearBufferMemoryArray(SCIPbuffer(scip), (ptr), (num)) == NULL) \
20418 #define SCIPreallocBufferArray(scip,ptr,num) ( (BMSreallocBufferMemoryArray(SCIPbuffer(scip), (ptr), (num)) == NULL) \
20420 #define SCIPduplicateBuffer(scip,ptr,source) ( (BMSduplicateBufferMemory(SCIPbuffer(scip), (ptr), (source), (size_t)sizeof(**(ptr))) \
20422 #define SCIPduplicateBufferArray(scip,ptr,source,num) ( (BMSduplicateBufferMemoryArray(SCIPbuffer(scip), (ptr), (source), (num)) == NULL) \
20427 #define SCIPfreeBufferArrayNull(scip,ptr) BMSfreeBufferMemoryArrayNull(SCIPbuffer(scip), (ptr))
20430 #define SCIPallocCleanBuffer(scip,ptr) ( (BMSallocBufferMemory(SCIPcleanbuffer(scip), (ptr)) == NULL) \
20432 #define SCIPallocCleanBufferArray(scip,ptr,num) ( (BMSallocBufferMemoryArray(SCIPcleanbuffer(scip), (ptr), (num)) == NULL) \
20435 #define SCIPfreeCleanBufferNull(scip,ptr) BMSfreeBufferMemoryNull(SCIPcleanbuffer(scip), (ptr))
20436 #define SCIPfreeCleanBufferArray(scip,ptr) BMSfreeBufferMemoryArray(SCIPcleanbuffer(scip), (ptr))
20437 #define SCIPfreeCleanBufferArrayNull(scip,ptr) BMSfreeBufferMemoryArrayNull(SCIPcleanbuffer(scip), (ptr))
20500 /** extends a dynamically allocated block memory array to be able to store at least the given number of elements;
20503 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
20535 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
20546 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
20557 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
20588 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
20601 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
20634 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
20645 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
20656 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
20669 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
20691 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
20704 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
20737 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
20748 * @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
20794 * @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
20838 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
20849 * @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
20881 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
20914 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
20920 #define SCIPextendRealarray(scip, realarray, minidx, maxidx) SCIPrealarrayExtend(realarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, minidx, maxidx)
20923 #define SCIPsetRealarrayVal(scip, realarray, idx, val) SCIPrealarraySetVal(realarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, val)
20924 #define SCIPincRealarrayVal(scip, realarray, idx, incval) SCIPrealarrayIncVal(realarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, incval)
20930 #define SCIPextendIntarray(scip, intarray, minidx, maxidx) SCIPintarrayExtend(intarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, minidx, maxidx)
20933 #define SCIPsetIntarrayVal(scip, intarray, idx, val) SCIPintarraySetVal(intarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, val)
20934 #define SCIPincIntarrayVal(scip, intarray, idx, incval) SCIPintarrayIncVal(intarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, incval)
20940 #define SCIPextendBoolarray(scip, boolarray, minidx, maxidx) SCIPboolarrayExtend(boolarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, minidx, maxidx)
20943 #define SCIPsetBoolarrayVal(scip, boolarray, idx, val) SCIPboolarraySetVal(boolarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, val)
20949 #define SCIPextendPtrarray(scip, ptrarray, minidx, maxidx) SCIPptrarrayExtend(ptrarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, minidx, maxidx)
20952 #define SCIPsetPtrarrayVal(scip, ptrarray, idx, val) SCIPptrarraySetVal(ptrarray, (scip)->set->mem_arraygrowinit, (scip)->set->mem_arraygrowfac, idx, val)
SCIP_Real SCIPdualfeasCeil(SCIP *scip, SCIP_Real val) int SCIPgetNOrigIntVars(SCIP *scip) SCIP_RETCODE SCIPsetNLPRealPar(SCIP *scip, SCIP_NLPPARAM type, SCIP_Real dval) SCIP_Longint SCIPgetNNodes(SCIP *scip) SCIP_RETCODE SCIPsetPresolInitpre(SCIP *scip, SCIP_PRESOL *presol, SCIP_DECL_PRESOLINITPRE((*presolinitpre))) SCIP_CONSHDLR * SCIPfindConshdlr(SCIP *scip, const char *name) SCIP_RETCODE SCIPunmarkConsPropagate(SCIP *scip, SCIP_CONS *cons) SCIP_RETCODE SCIPrestartSolve(SCIP *scip) SCIP_RETCODE SCIPgetOpenNodesData(SCIP *scip, SCIP_NODE ***leaves, SCIP_NODE ***children, SCIP_NODE ***siblings, int *nleaves, int *nchildren, int *nsiblings) SCIP_RETCODE SCIPlinkRelaxSol(SCIP *scip, SCIP_SOL *sol) SCIP_RETCODE 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) 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_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 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_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) int SCIPgetNDelayedPoolCuts(SCIP *scip) int SCIPgetNCutsFoundRound(SCIP *scip) SCIP_Real SCIPcomputeVarLbGlobal(SCIP *scip, SCIP_VAR *var) void SCIPprintExternalCodes(SCIP *scip, FILE *file) SCIP_Bool SCIPhasNLPSolution(SCIP *scip) SCIP_Real SCIPdualfeasRound(SCIP *scip, SCIP_Real val) int SCIPgetNConshdlrs(SCIP *scip) type definitions for return codes for SCIP methods SCIP_Real SCIPgetAvgDualbound(SCIP *scip) SCIP_RETCODE SCIPchgBoolParam(SCIP *scip, SCIP_PARAM *param, SCIP_Bool value) SCIP_RETCODE SCIPpropagateProbing(SCIP *scip, int maxproprounds, SCIP_Bool *cutoff, SCIP_Longint *ndomredsfound) public methods for branching rules SCIP_RETCODE SCIPaddNlRow(SCIP *scip, SCIP_NLROW *nlrow) int SCIPgetNEventhdlrs(SCIP *scip) SCIP_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) 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) 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 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_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) 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) 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) |