37#define __STDC_LIMIT_MACROS
38#define __STDC_CONSTANT_MACROS
51#ifndef NO_CONFIG_HEADER
52#include "scip/config.h"
53#include "scip/scip_export.h"
61#define GCC_VERSION (__GNUC__ * 100 \
62 + __GNUC_MINOR__ * 10 \
63 + __GNUC_PATCHLEVEL__)
73#if defined(_MSC_VER) || ( __STDC_VERSION__ >= 199901L ) || ( GCC_VERSION >= 480 )
74#define SCIP_HAVE_VARIADIC_MACROS 1
82#define SCIP_VARARGS_FIRST_(firstarg, ...) firstarg
83#define SCIP_VARARGS_FIRST(args) SCIP_VARARGS_FIRST_ args
86#define SCIP_VARARGS_REST(firstarg, ...) __VA_ARGS__
93#define SCIP_Bool unsigned int
100#ifndef SCIP_Shortbool
101#define SCIP_Shortbool uint8_t
107#if defined(_WIN32) || defined(_WIN64)
109#define strcasecmp _stricmp
110#define strncasecmp _strnicmp
111#define getcwd _getcwd
118#if defined(_WIN32) || defined(_WIN64)
119#define SCIP_EXPORT __declspec(dllexport)
120#elif defined(__GNUC__) && __GNUC__ >= 4
121#define SCIP_EXPORT __attribute__((__visibility__("default")))
129#if defined(_WIN32) || defined(__STDC__)
130#define INLINE __inline
147#define SCIP_VERSION 810
148#define SCIP_SUBVERSION 0
149#define SCIP_APIVERSION 104
150#define SCIP_COPYRIGHT "Copyright (c) 2002-2023 Zuse Institute Berlin (ZIB)"
157#define SCIP_VARTYPE_BINARY_CHAR 'B'
158#define SCIP_VARTYPE_INTEGER_CHAR 'I'
159#define SCIP_VARTYPE_IMPLINT_CHAR 'M'
160#define SCIP_VARTYPE_CONTINUOUS_CHAR 'C'
167#define LLONG_MAX 9223372036854775807LL
168#define LLONG_MIN (-LLONG_MAX - 1LL)
171#define SCIP_Longint long long
172#define SCIP_LONGINT_MAX LLONG_MAX
173#define SCIP_LONGINT_MIN LLONG_MIN
174#ifndef SCIP_LONGINT_FORMAT
175#if defined(_WIN32) || defined(_WIN64)
176#define SCIP_LONGINT_FORMAT "I64d"
178#define SCIP_LONGINT_FORMAT "lld"
186#define SCIP_Real double
187#define SCIP_REAL_MAX (SCIP_Real)DBL_MAX
188#define SCIP_REAL_MIN -(SCIP_Real)DBL_MAX
189#define SCIP_REAL_FORMAT "lf"
191#define SCIP_DEFAULT_INFINITY 1e+20
192#define SCIP_DEFAULT_EPSILON 1e-09
193#define SCIP_DEFAULT_SUMEPSILON 1e-06
194#define SCIP_DEFAULT_FEASTOL 1e-06
195#define SCIP_DEFAULT_CHECKFEASTOLFAC 1.0
196#define SCIP_DEFAULT_LPFEASTOLFACTOR 1.0
197#define SCIP_DEFAULT_DUALFEASTOL 1e-07
198#define SCIP_DEFAULT_BARRIERCONVTOL 1e-10
199#define SCIP_DEFAULT_BOUNDSTREPS 0.05
200#define SCIP_DEFAULT_PSEUDOCOSTEPS 1e-01
201#define SCIP_DEFAULT_PSEUDOCOSTDELTA 1e-04
202#define SCIP_DEFAULT_RECOMPFAC 1e+07
203#define SCIP_DEFAULT_HUGEVAL 1e+15
204#define SCIP_MAXEPSILON 1e-03
205#define SCIP_MINEPSILON 1e-20
206#define SCIP_INVALID (double)1e+99
207#define SCIP_UNKNOWN (double)1e+98
208#define SCIP_INTERVAL_INFINITY (double)1e+300
210#define REALABS(x) (fabs(x))
211#define EPSEQ(x,y,eps) (REALABS((x)-(y)) <= (eps))
212#define EPSLT(x,y,eps) ((x)-(y) < -(eps))
213#define EPSLE(x,y,eps) ((x)-(y) <= (eps))
214#define EPSGT(x,y,eps) ((x)-(y) > (eps))
215#define EPSGE(x,y,eps) ((x)-(y) >= -(eps))
216#define EPSZ(x,eps) (REALABS(x) <= (eps))
217#define EPSP(x,eps) ((x) > (eps))
218#define EPSN(x,eps) ((x) < -(eps))
219#define EPSFLOOR(x,eps) (floor((x)+(eps)))
220#define EPSCEIL(x,eps) (ceil((x)-(eps)))
221#define EPSROUND(x,eps) (ceil((x)-0.5+(eps)))
222#define EPSFRAC(x,eps) ((x)-EPSFLOOR(x,eps))
223#define EPSISINT(x,eps) (EPSFRAC(x,eps) <= (eps))
227#define SQR(x) ((x)*(x))
228#define SQRT(x) (sqrt(x))
233#if defined(_WIN32) || defined(_WIN64)
234#define LOG1P(x) (log(1.0+x))
236#define LOG1P(x) (log1p(x))
241#if defined(_MSC_VER) && (_MSC_VER < 1800)
242#define LOG2(x) (log(x) / log(2.0))
244#define LOG2(x) log2(x)
249#define ABS(x) ((x) >= 0 ? (x) : -(x))
253#define MAX(x, y) ((x) >= (y) ? (x) : (y))
257#define MIN(x, y) ((x) <= (y) ? (x) : (y))
261#define MAX3(x, y, z) ((x) >= (y) ? MAX(x, z) : MAX(y, z))
265#define MIN3(x, y, z) ((x) <= (y) ? MIN(x, z) : MIN(y, z))
269#if defined(_MSC_VER) && (_MSC_VER < 1800)
270#define COPYSIGN _copysign
272#define COPYSIGN copysign
281#define NULL ((void*)0)
286#define RESTRICT __restrict
289#define RESTRICT __restrict__
290#elif __STDC_VERSION__ >= 199901L
291#define RESTRICT restrict
302#define SCIP_MAXSTRLEN 1024
303#define SCIP_SPACECONTROL " tnvfr"
310#define SCIP_MAXMEMSIZE (SIZE_MAX/2)
312#define SCIP_HASHSIZE_PARAMS 2048
313#define SCIP_HASHSIZE_NAMES 500
314#define SCIP_HASHSIZE_CUTPOOLS 500
315#define SCIP_HASHSIZE_CLIQUES 500
316#define SCIP_HASHSIZE_NAMES_SMALL 100
317#define SCIP_HASHSIZE_CUTPOOLS_SMALL 100
318#define SCIP_HASHSIZE_CLIQUES_SMALL 100
319#define SCIP_HASHSIZE_VBC 500
321#define SCIP_DEFAULT_MEM_ARRAYGROWFAC 1.2
322#define SCIP_DEFAULT_MEM_ARRAYGROWINIT 4
324#define SCIP_MEM_NOLIMIT (SCIP_Longint)(SCIP_LONGINT_MAX >> 20)
330#define SCIP_MAXTREEDEPTH 65534
336#define SCIP_PROBINGSCORE_PENALTYRATIO 2
360#define SCIPABORT() assert(FALSE)
362#define SCIP_CALL_ABORT_QUIET(x) do { if( (x) != SCIP_OKAY ) SCIPABORT(); } while( FALSE )
363#define SCIP_CALL_QUIET(x) do { SCIP_RETCODE _restat_; if( (_restat_ = (x)) != SCIP_OKAY ) return _restat_; } while( FALSE )
364#define SCIP_ALLOC_ABORT_QUIET(x) do { if( NULL == (x) ) SCIPABORT(); } while( FALSE )
365#define SCIP_ALLOC_QUIET(x) do { if( NULL == (x) ) return SCIP_NOMEMORY; } while( FALSE )
367#define SCIP_CALL_ABORT(x) do \
369 SCIP_RETCODE _restat_; \
370 if( (_restat_ = (x)) != SCIP_OKAY ) \
372 SCIPerrorMessage("Error <%d> in function call\n", _restat_); \
378#define SCIP_ALLOC_ABORT(x) do \
382 SCIPerrorMessage("No memory in function call\n"); \
388#define SCIP_CALL(x) do \
390 SCIP_RETCODE _restat_; \
391 if( (_restat_ = (x)) != SCIP_OKAY ) \
393 SCIPerrorMessage("Error <%d> in function call\n", _restat_); \
399#define SCIP_ALLOC(x) do \
403 SCIPerrorMessage("No memory in function call\n"); \
404 return SCIP_NOMEMORY; \
409#define SCIP_CALL_TERMINATE(retcode, x, TERM) do \
411 if( ((retcode) = (x)) != SCIP_OKAY ) \
413 SCIPerrorMessage("Error <%d> in function call\n", retcode); \
419#define SCIP_ALLOC_TERMINATE(retcode, x, TERM) do \
423 SCIPerrorMessage("No memory in function call\n"); \
424 retcode = SCIP_NOMEMORY; \
430#define SCIP_CALL_FINALLY(x, y) do \
432 SCIP_RETCODE _restat_; \
433 if( (_restat_ = (x)) != SCIP_OKAY ) \
435 SCIPerrorMessage("Error <%d> in function call\n", _restat_); \
442#define SCIP_UNUSED(x) ((void) (x))
448#ifndef SCIP_DEPRECATED
450# define SCIP_DEPRECATED __declspec(deprecated)
451#elif defined(__GNUC__)
452# define SCIP_DEPRECATED __attribute__ ((deprecated))
454# define SCIP_DEPRECATED
public methods for message output
type definitions for message output methods
type definitions for return codes for SCIP methods