scip_general.c
Go to the documentation of this file.
33 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
158 SCIPmessageFPrintInfo(scip->messagehdlr, file, " [precision: %d byte]", (int)sizeof(SCIP_Real));
192 SCIPmessageFPrintInfo(scip->messagehdlr, file, "clang %d.%d.%d\n", __clang_major__, __clang_minor__, __clang_patchlevel__);
197 SCIPmessageFPrintInfo(scip->messagehdlr, file, "gcc %d.%d.%d\n", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__);
255 SCIP_CALL( SCIPsetIncludeExternalCode((*scip)->set, SCIPlpiGetSolverName(), SCIPlpiGetSolverDesc()) );
259 SCIP_CALL( SCIPsetIncludeExternalCode((*scip)->set, SCIPexprintGetName(), SCIPexprintGetDesc()) );
263 SCIP_CALL( SCIPsetIncludeExternalCode((*scip)->set, "ZLIB " ZLIB_VERSION, "General purpose compression library by J. Gailly and M. Adler (zlib.net)") );
271 * @note The SCIP default message handler is installed. Use the method SCIPsetMessagehdlr() to install your own
272 * message handler or SCIPsetMessagehdlrLogfile() and SCIPsetMessagehdlrQuiet() to write into a log
275 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
295 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
322 SCIP_CALL( SCIPcheckStage(*scip, "SCIPfree", TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, FALSE, TRUE) );
369 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
372 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
382 SCIP_CALL( SCIPcheckStage(scip, "SCIPprintStage", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE) );
435 /* We output that the objective limit has been reached if no solution respecting the objective limit has been
436 * found (nlimsolsfound == 0) and the primal bound is finite. Note that it still might be that the original
437 * problem is infeasible, even without the objective limit, i.e., we cannot be sure that we actually reached the
439 if( scip->primal->nlimsolsfound == 0 && !SCIPisInfinity(scip, (SCIP_Real)SCIPgetObjsense(scip) * SCIPgetPrimalbound(scip)) )
470 SCIP_CALL_ABORT( SCIPcheckStage(scip, "SCIPgetStatus", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE) );
484 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
494 SCIP_CALL( SCIPcheckStage(scip, "SCIPprintStatus", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE) );
583 /** returns whether the presolving process would be finished given no more presolving reductions are found in this
586 * Checks whether the number of presolving rounds is not exceeded and the presolving reductions found in the current
589 * @note if subsequent presolvers find more reductions, presolving might continue even if the method returns FALSE
590 * @note does not check whether infeasibility or unboundedness was already detected in presolving (which would result
606 SCIP_CALL_ABORT( SCIPcheckStage(scip, "SCIPisPresolveFinished", FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE) );
631 /* don't abort, if enough changes were applied to the coefficients (assume a 1% density of non-zero elements) */
638 /* since 2005, we do not take cliques and implications into account when deciding whether to stop presolving */
639 /* don't abort, if enough new implications or cliques were found (assume 100 implications per variable) */
664 SCIP_CALL_ABORT( SCIPcheckStage(scip, "SCIPhasPerformedPresolve", FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE) );
690 SCIP_CALL_ABORT( SCIPcheckStage(scip, "SCIPisStopped", FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE) );
705 SCIP_CALL( SCIPcheckStage(scip, "SCIPincludeExternalCodeInformation", TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE) );
769 SCIPinfoMessage(scip, file, " %-20s %s\n", scip->set->extcodenames[i], scip->set->extcodedescs[i] != NULL ? scip->set->extcodedescs[i] : "");
SCIP_Bool SCIPsolveIsStopped(SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool checknodelimits)
Definition: solve.c:92
default message handler
SCIP_EXPORT const char * SCIPlpiGetSolverName(void)
SCIP_RETCODE SCIPsyncstoreRelease(SCIP_SYNCSTORE **syncstore)
Definition: syncstore.c:78
methods to interpret (evaluate) an expression tree "fast"
Definition: struct_scip.h:58
public methods for memory management
internal methods for clocks and timing issues
SCIP_RETCODE SCIPsetCreate(SCIP_SET **set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, SCIP *scip)
Definition: set.c:1116
Definition: type_set.h:37
Definition: type_stat.h:55
interface methods for specific LP solvers
Definition: type_stat.h:43
SCIP_RETCODE SCIPinterruptCreate(SCIP_INTERRUPT **interrupt)
Definition: interrupt.c:79
Definition: type_stat.h:34
public methods for numerical tolerances
Definition: type_stat.h:35
public methods for querying solving statistics
SCIP_EXPORT const char * SCIPexprintGetName(void)
Definition: exprinterpret_cppad.cpp:2135
int SCIPcliquetableGetNCliques(SCIP_CLIQUETABLE *cliquetable)
Definition: implics.c:3469
Definition: type_clock.h:34
git hash methods
Definition: type_stat.h:36
methods for block memory pools and memory buffers
Definition: type_stat.h:52
Definition: type_set.h:46
register additional core functionality that is designed as plugins
SCIP_RETCODE SCIPcheckStage(SCIP *scip, const char *method, SCIP_Bool init, SCIP_Bool problem, SCIP_Bool transforming, SCIP_Bool transformed, SCIP_Bool initpresolve, SCIP_Bool presolving, SCIP_Bool exitpresolve, SCIP_Bool presolved, SCIP_Bool initsolve, SCIP_Bool solving, SCIP_Bool solved, SCIP_Bool exitsolve, SCIP_Bool freetrans, SCIP_Bool freescip)
Definition: debug.c:2010
SCIP_RETCODE SCIPdialoghdlrCreate(SCIP_SET *set, SCIP_DIALOGHDLR **dialoghdlr)
Definition: dialog.c:324
Definition: type_set.h:47
internal methods for NLP management
SCIP_RETCODE SCIPincludeExternalCodeInformation(SCIP *scip, const char *name, const char *description)
Definition: scip_general.c:696
SCIP_RETCODE SCIPmessagehdlrRelease(SCIP_MESSAGEHDLR **messagehdlr)
Definition: message.c:338
Definition: type_set.h:43
Definition: type_retcode.h:33
Definition: type_set.h:48
Definition: type_stat.h:33
void SCIPprintExternalCodes(SCIP *scip, FILE *file)
Definition: scip_general.c:752
internal methods for global SCIP settings
SCIP main data structure.
SCIP_RETCODE SCIPclockCreate(SCIP_CLOCK **clck, SCIP_CLOCKTYPE clocktype)
Definition: clock.c:160
methods for catching the user CTRL-C interrupt
the function declarations for the synchronization store
internal methods for user interface dialog
SCIP_EXPORT const char * SCIPlpiGetSolverDesc(void)
SCIP_RETCODE SCIPsetIncludeExternalCode(SCIP_SET *set, const char *name, const char *description)
Definition: set.c:4984
methods for debugging
SCIP_Bool SCIPhasPerformedPresolve(SCIP *scip)
Definition: scip_general.c:657
Definition: type_set.h:40
SCIP_RETCODE SCIPincludeCorePlugins(SCIP *scip)
Definition: scipcoreplugins.c:26
datastructures for block memory pools and memory buffers
Definition: type_set.h:41
Definition: type_set.h:45
datastructures for problem statistics
Definition: type_set.h:42
SCIP_RETCODE SCIPsyncstoreCreate(SCIP_SYNCSTORE **syncstore)
Definition: syncstore.c:57
internal methods for return codes for SCIP methods
datastructures for storing and manipulating the main problem
Definition: type_set.h:39
Definition: type_set.h:36
void SCIPprintBuildOptions(SCIP *scip, FILE *file)
Definition: scip_general.c:180
Definition: type_stat.h:39
Definition: type_set.h:35
general public methods
SCIP_RETCODE SCIPcreateMessagehdlrDefault(SCIP_MESSAGEHDLR **messagehdlr, SCIP_Bool bufferedoutput, const char *filename, SCIP_Bool quiet)
Definition: message_default.c:73
Definition: type_stat.h:56
Definition: type_stat.h:44
Definition: type_stat.h:45
internal methods for main solving loop and node processing
public methods for message output
void SCIPmessageFPrintInfo(SCIP_MESSAGEHDLR *messagehdlr, FILE *file, const char *formatstr,...)
Definition: message.c:608
datastructures for collecting primal CIP solutions and primal informations
public methods for message handling
SCIP_EXPORT const char * SCIPexprintGetDesc(void)
Definition: exprinterpret_cppad.cpp:2141
Definition: type_set.h:44
build flags methods
void SCIPinfoMessage(SCIP *scip, FILE *file, const char *formatstr,...)
Definition: scip_message.c:198
SCIP_RETCODE SCIPdialoghdlrFree(SCIP *scip, SCIP_DIALOGHDLR **dialoghdlr)
Definition: dialog.c:354
Definition: type_retcode.h:43
Definition: objbenders.h:33
char ** SCIPgetExternalCodeDescriptions(SCIP *scip)
Definition: scip_general.c:727
public methods for global and local (sub)problems
Definition: type_set.h:38
datastructures for global SCIP settings
Definition: type_stat.h:53
Definition: type_stat.h:48
Definition: type_stat.h:42
Definition: type_stat.h:51
Definition: type_stat.h:54
memory allocation routines