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
|