79#if defined(_WIN32) || defined(_WIN64)
95#undef SCIPhasPerformedPresolve
106 return SCIP_VERSION_MAJOR + SCIP_VERSION_MINOR/100.0;
117 return SCIP_VERSION_MAJOR;
128 return SCIP_VERSION_MINOR;
139 return SCIP_VERSION_PATCH;
166#if SCIP_SUBVERSION > 0
172#ifndef BMS_NOBLOCKMEM
201#if defined(__INTEL_COMPILER)
203#elif defined(__clang__)
204 SCIPmessageFPrintInfo(
scip->messagehdlr, file,
"clang %d.%d.%d\n", __clang_major__, __clang_minor__, __clang_patchlevel__);
205#elif defined(_MSC_VER)
207#elif defined(__GNUC__)
208#if defined(__GNUC_PATCHLEVEL__)
278#ifdef SCIP_WITH_LAPACK
357 SCIP_CALL(
SCIPcheckStage(*
scip,
"SCIPfree",
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE) );
381#undef SCIPhasPerformedPresolve
397 return scip->set->stage;
417 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPprintStage",
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE) );
419 switch(
scip->set->stage )
512 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetStatus",
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE) );
520 return scip->stat->status;
536 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPprintStatus",
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE) );
628 return (
scip->set->misc_exactsolve);
654 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPisPresolveFinished",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE) );
657 maxnrounds =
scip->set->presol_maxrounds;
658 if( maxnrounds == -1 )
659 maxnrounds = INT_MAX;
662 finished = (
scip->transprob->nvars == 0
663 || (
scip->stat->npresolfixedvars -
scip->stat->lastnpresolfixedvars
664 +
scip->stat->npresolaggrvars -
scip->stat->lastnpresolaggrvars
665 +
scip->stat->npresolchgvartypes -
scip->stat->lastnpresolchgvartypes
666 + (
scip->stat->npresolchgbds -
scip->stat->lastnpresolchgbds)/10.0
667 + (
scip->stat->npresoladdholes -
scip->stat->lastnpresoladdholes)/10.0
668 <=
scip->set->presol_abortfac *
scip->transprob->nvars));
672 && (
scip->transprob->nconss == 0
673 || (
scip->stat->npresoldelconss -
scip->stat->lastnpresoldelconss
674 +
scip->stat->npresoladdconss -
scip->stat->lastnpresoladdconss
675 +
scip->stat->npresolupgdconss -
scip->stat->lastnpresolupgdconss
676 +
scip->stat->npresolchgsides -
scip->stat->lastnpresolchgsides
677 <=
scip->set->presol_abortfac *
scip->transprob->nconss));
681 && (
scip->transprob->nvars == 0 ||
scip->transprob->nconss == 0
682 || (
scip->stat->npresolchgcoefs -
scip->stat->lastnpresolchgcoefs
683 <=
scip->set->presol_abortfac * 0.01 *
scip->transprob->nvars *
scip->transprob->nconss));
685#ifdef SCIP_DISABLED_CODE
689 && (
scip->stat->nimplications -
scip->stat->lastnpresolimplications
690 <=
scip->set->presol_abortfac * 100 *
scip->transprob->nbinvars)
692 <=
scip->set->presol_abortfac *
scip->transprob->nbinvars);
696 finished = finished || (
scip->stat->npresolrounds + 1 >= maxnrounds);
712 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPhasPerformedPresolve",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
714 return scip->stat->performpresol;
738 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPisStopped",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
747 const char* description
753 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPincludeExternalCodeInformation",
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE) );
768 return scip->set->extcodenames;
782 return scip->set->extcodedescs;
793 return scip->set->nextcodes;
808 if(
scip->set->nextcodes == 0 )
815 for(
i = 0;
i <
scip->set->nextcodes; ++
i )
void SCIPclockStart(SCIP_CLOCK *clck, SCIP_SET *set)
void SCIPclockFree(SCIP_CLOCK **clck)
SCIP_RETCODE SCIPclockCreate(SCIP_CLOCK **clck, SCIP_CLOCKTYPE clocktype)
internal methods for clocks and timing issues
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)
#define SCIP_CALL_ABORT(x)
#define SCIP_CALL_FINALLY(x, y)
SCIP_RETCODE SCIPdialoghdlrCreate(SCIP_SET *set, SCIP_DIALOGHDLR **dialoghdlr)
SCIP_RETCODE SCIPdialoghdlrFree(SCIP *scip, SCIP_DIALOGHDLR **dialoghdlr)
internal methods for user interface dialog
methods to interpret (evaluate) an expression "fast"
const char * SCIPexprintGetName(void)
const char * SCIPexprintGetDesc(void)
SCIP_Bool SCIPisTransformed(SCIP *scip)
SCIP_RETCODE SCIPprintStage(SCIP *scip, FILE *file)
SCIP_Bool SCIPisPresolveFinished(SCIP *scip)
SCIP_Bool SCIPhasPerformedPresolve(SCIP *scip)
SCIP_Bool SCIPpressedCtrlC(SCIP *scip)
SCIP_RETCODE SCIPprintStatus(SCIP *scip, FILE *file)
SCIP_Bool SCIPisStopped(SCIP *scip)
SCIP_RETCODE SCIPfree(SCIP **scip)
SCIP_RETCODE SCIPcreate(SCIP **scip)
SCIP_STATUS SCIPgetStatus(SCIP *scip)
SCIP_STAGE SCIPgetStage(SCIP *scip)
SCIP_Bool SCIPisExactSolve(SCIP *scip)
SCIP_RETCODE SCIPfreeProb(SCIP *scip)
SCIP_OBJSENSE SCIPgetObjsense(SCIP *scip)
const char * SCIPlpiGetSolverName(void)
const char * SCIPlpiGetSolverDesc(void)
void SCIPinfoMessage(SCIP *scip, FILE *file, const char *formatstr,...)
void SCIPprintError(SCIP_RETCODE retcode)
void SCIPprintBuildOptions(SCIP *scip, FILE *file)
int SCIPminorVersion(void)
SCIP_Real SCIPversion(void)
int SCIPtechVersion(void)
void SCIPprintVersion(SCIP *scip, FILE *file)
int SCIPmajorVersion(void)
char ** SCIPgetExternalCodeDescriptions(SCIP *scip)
SCIP_RETCODE SCIPincludeExternalCodeInformation(SCIP *scip, const char *name, const char *description)
int SCIPgetNExternalCodes(SCIP *scip)
void SCIPprintExternalCodes(SCIP *scip, FILE *file)
char ** SCIPgetExternalCodeNames(SCIP *scip)
SCIP_Real SCIPgetPrimalbound(SCIP *scip)
SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)
int SCIPsnprintf(char *t, int len, const char *s,...)
assert(minobj< SCIPgetCutoffbound(scip))
int SCIPcliquetableGetNCliques(SCIP_CLIQUETABLE *cliquetable)
SCIP_RETCODE SCIPinterruptCreate(SCIP_INTERRUPT **interrupt)
void SCIPinterruptFree(SCIP_INTERRUPT **interrupt)
SCIP_Bool SCIPinterrupted(void)
methods for catching the user CTRL-C interrupt
void SCIPlapackVersion(int *majorver, int *minorver, int *patchver)
interface methods for lapack functions
interface methods for specific LP solvers
SCIP_RETCODE SCIPmemCreate(SCIP_MEM **mem)
SCIP_RETCODE SCIPmemFree(SCIP_MEM **mem)
methods for block memory pools and memory buffers
memory allocation routines
#define BMSfreeMemory(ptr)
#define BMSclearMemory(ptr)
#define BMSallocMemory(ptr)
void SCIPmessagePrintError(const char *formatstr,...)
void SCIPmessageFPrintInfo(SCIP_MESSAGEHDLR *messagehdlr, FILE *file, const char *formatstr,...)
SCIP_RETCODE SCIPmessagehdlrRelease(SCIP_MESSAGEHDLR **messagehdlr)
SCIP_RETCODE SCIPcreateMessagehdlrDefault(SCIP_MESSAGEHDLR **messagehdlr, SCIP_Bool bufferedoutput, const char *filename, SCIP_Bool quiet)
BMS_BLKMEM * SCIPblkmem(SCIP *scip)
SCIP_RETCODE SCIPnlpInclude(SCIP_SET *set, BMS_BLKMEM *blkmem)
internal methods for NLP management
public methods for message output
void SCIPretcodePrintError(SCIP_RETCODE retcode)
internal methods for return codes for SCIP methods
static SCIP_RETCODE doScipCreate(SCIP **scip)
public methods for memory management
public methods for message handling
public methods for numerical tolerances
public methods for global and local (sub)problems
public methods for querying solving statistics
const char * SCIPgetBuildFlags(void)
SCIP_RETCODE SCIPincludeCorePlugins(SCIP *scip)
register additional core functionality that is designed as plugins
const char * SCIPgetGitHash(void)
SCIP_RETCODE SCIPsetCreate(SCIP_SET **set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, SCIP *scip)
SCIP_RETCODE SCIPsetFree(SCIP_SET **set, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPsetIncludeExternalCode(SCIP_SET *set, const char *name, const char *description)
internal methods for global SCIP settings
SCIP_Bool SCIPsolveIsStopped(SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool checknodelimits)
internal methods for main solving loop and node processing
datastructures for block memory pools and memory buffers
datastructures for collecting primal CIP solutions and primal informations
datastructures for storing and manipulating the main problem
SCIP main data structure.
datastructures for global SCIP settings
datastructures for problem statistics
SCIP_RETCODE SCIPsyncstoreRelease(SCIP_SYNCSTORE **syncstore)
SCIP_RETCODE SCIPsyncstoreCreate(SCIP_SYNCSTORE **syncstore)
the function declarations for the synchronization store
the type definitions for the SCIP parallel interface
SCIP_Bool SCIPtpiIsAvailable(void)
void SCIPtpiGetLibraryDesc(char *desc, int descsize)
void SCIPtpiGetLibraryName(char *name, int namesize)
enum SCIP_Retcode SCIP_RETCODE
@ SCIP_STAGE_INITPRESOLVE
@ SCIP_STAGE_EXITPRESOLVE
@ SCIP_STAGE_TRANSFORMING
enum SCIP_Stage SCIP_STAGE
@ SCIP_STATUS_TOTALNODELIMIT
@ SCIP_STATUS_BESTSOLLIMIT
@ SCIP_STATUS_PRIMALLIMIT
@ SCIP_STATUS_USERINTERRUPT
@ SCIP_STATUS_STALLNODELIMIT
@ SCIP_STATUS_RESTARTLIMIT
enum SCIP_Status SCIP_STATUS