8 #if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 3)) 40 #if defined(__APPLE_CC__) \ 41 || (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) \ 42 || (defined(_MSC_VER) && (_MSC_VER >= 1900)) 43 #ifndef tmwtypes_do_not_include_stdbool 48 #define LOGICAL_IS_A_TYPE 49 #define SPARSE_GENERALIZATION 52 # define double double_not_allowed 53 # define float float_not_allowed 63 # define FLT_MANT_DIG 24 66 # define DBL_MANT_DIG 53 76 #ifdef MATLAB_MEX_FILE 93 #if (defined(_MSC_VER) && _MSC_VER >= 1500) \ 94 || defined(__x86_64__) || defined(__LP64__) \ 97 typedef unsigned long long ulonglong_T;
134 #ifndef TMW_BITS_PER_INT 135 # if INT_MAX == 0x7FL 136 # define TMW_BITS_PER_INT 8 137 # elif INT_MAX == 0x7FFFL 138 # define TMW_BITS_PER_INT 16 139 # elif INT_MAX == 0x7FFFFFFFL 140 # define TMW_BITS_PER_INT 32 142 # define TMW_BITS_PER_INT -1 146 #ifndef TMW_BITS_PER_LONG 147 # if LONG_MAX == 0x7FL 148 # define TMW_BITS_PER_LONG 8 149 # elif LONG_MAX == 0x7FFFL 150 # define TMW_BITS_PER_LONG 16 151 # elif LONG_MAX == 0x7FFFFFFFL 152 # define TMW_BITS_PER_LONG 32 154 # define TMW_BITS_PER_LONG -1 158 #ifndef TMW_BITS_PER_SHRT 159 # if SHRT_MAX == 0x7FL 160 # define TMW_BITS_PER_SHRT 8 161 # elif SHRT_MAX == 0x7FFFL 162 # define TMW_BITS_PER_SHRT 16 163 # elif SHRT_MAX == 0x7FFFFFFFL 164 # define TMW_BITS_PER_SHRT 32 166 # define TMW_BITS_PER_SHRT -1 170 #ifndef TMW_BITS_PER_SCHAR 171 # if SCHAR_MAX == 0x7FL 172 # define TMW_BITS_PER_SCHAR 8 173 # elif SCHAR_MAX == 0x7FFFL 174 # define TMW_BITS_PER_SCHAR 16 175 # elif SCHAR_MAX == 0x7FFFFFFFL 176 # define TMW_BITS_PER_SCHAR 32 178 # define TMW_BITS_PER_SCHAR -1 182 #ifndef TMW_CHAR_SIGNED 183 # if SCHAR_MAX == CHAR_MAX 184 # define TMW_CHAR_SIGNED 1 186 # define TMW_CHAR_SIGNED 0 209 # if defined(MW_LIBTOOLING) 210 # define INT8_T int8_t 211 # elif TMW_BITS_PER_INT == 8 213 # elif TMW_BITS_PER_LONG == 8 215 # elif TMW_BITS_PER_SCHAR == 8 216 # define INT8_T signed char 217 # elif TMW_BITS_PER_SHRT == 8 218 # define INT8_T short 222 typedef INT8_T int8_T;
226 # if defined(MW_LIBTOOLING) 227 # define UINT8_T uint8_t 228 # elif TMW_BITS_PER_INT == 8 229 # define UINT8_T unsigned int 230 # elif TMW_BITS_PER_LONG == 8 231 # define UINT8_T unsigned long 232 # elif TMW_BITS_PER_SCHAR == 8 233 # define UINT8_T unsigned char 234 # elif TMW_BITS_PER_SHRT == 8 235 # define UINT8_T unsigned short 239 typedef UINT8_T uint8_T;
244 # if defined(MW_LIBTOOLING) 245 # define INT16_T int16_t 246 # elif TMW_BITS_PER_INT == 16 248 # elif TMW_BITS_PER_LONG == 16 249 # define INT16_T long 250 # elif TMW_BITS_PER_SCHAR == 16 251 # define INT16_T signed char 252 # elif TMW_BITS_PER_SHRT == 16 253 # define INT16_T short 257 typedef INT16_T int16_T;
262 # if defined(MW_LIBTOOLING) 263 # define UINT16_T uint16_t 264 # elif TMW_BITS_PER_INT == 16 265 # define UINT16_T unsigned int 266 # elif TMW_BITS_PER_LONG == 16 267 # define UINT16_T unsigned long 268 # elif TMW_BITS_PER_SCHAR == 16 269 # define UINT16_T unsigned char 270 # elif TMW_BITS_PER_SHRT == 16 271 # define UINT16_T unsigned short 275 typedef UINT16_T uint16_T;
280 # if defined(MW_LIBTOOLING) 281 # define INT32_T int32_t 282 # elif TMW_BITS_PER_INT == 32 284 # elif TMW_BITS_PER_LONG == 32 285 # define INT32_T long 286 # elif TMW_BITS_PER_SCHAR == 32 287 # define INT32_T signed char 288 # elif TMW_BITS_PER_SHRT == 32 289 # define INT32_T short 293 typedef INT32_T int32_T;
298 # if defined(MW_LIBTOOLING) 299 # define UINT32_T uint32_t 300 # elif TMW_BITS_PER_INT == 32 301 # define UINT32_T unsigned int 302 # elif TMW_BITS_PER_LONG == 32 303 # define UINT32_T unsigned long 304 # elif TMW_BITS_PER_SCHAR == 32 305 # define UINT32_T unsigned char 306 # elif TMW_BITS_PER_SHRT == 32 307 # define UINT32_T unsigned short 311 typedef UINT32_T uint32_T;
323 # define INT8_T INT16_T 324 typedef INT8_T int8_T;
327 # define INT8_T INT32_T 328 typedef INT8_T int8_T;
335 # define UINT8_T UINT16_T 336 typedef UINT8_T uint8_T;
339 # define UINT8_T UINT32_T 340 typedef UINT8_T uint8_T;
347 # define INT16_T INT32_T 348 typedef INT16_T int16_T;
354 # define UINT16_T UINT32_T 355 typedef UINT16_T uint16_T;
364 # if FLT_MANT_DIG >= 23 365 # define REAL32_T float 368 # define REAL32_T float 378 # if DBL_MANT_DIG >= 52 379 # define REAL64_T double 382 # define REAL64_T double 397 # if defined(MW_LIBTOOLING) 401 # define INT64_T int64_t 405 # define UINT64_T uint64_t 407 #if !defined(INT64_T) || !defined(UINT64_T) || !defined(FMT64) 408 # if defined(__APPLE__) || defined(__clang__) 410 # define INT64_T long long 413 # define UINT64_T unsigned long long 418 # if defined(__LP64__) && !defined(INT_TYPE_64_IS_LONG) 419 # define INT_TYPE_64_IS_LONG 421 # elif (defined(__x86_64__) || defined(__LP64__))&& !defined(__MINGW64__) 423 # define INT64_T long 426 # define UINT64_T unsigned long 431 # if !defined(INT_TYPE_64_IS_LONG) 432 # define INT_TYPE_64_IS_LONG 434 # elif defined(_MSC_VER) || (defined(__BORLANDC__) && __BORLANDC__ >= 0x530) \ 435 || (defined(__WATCOMC__) && __WATCOMC__ >= 1100) 437 # define INT64_T __int64 440 # define UINT64_T unsigned __int64 445 # elif defined(__GNUC__) || defined(TMW_ENABLE_INT64) \ 446 || defined(__LCC64__) 448 # define INT64_T long long 451 # define UINT64_T unsigned long long 461 # if defined(__GNUC__) && \ 462 ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >=9))) 465 typedef INT64_T int64_T;
468 #if defined(_WIN64) || (defined(__APPLE__) && defined(__LP64__)) \ 469 || defined(__x86_64__) \ 471 # define INT_TYPE_64_IS_SUPPORTED 474 #if defined(UINT64_T) 475 # if defined(__GNUC__) && \ 476 ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >=9))) 479 typedef UINT64_T uint64_T;
487 # if (defined( __GNUC__ ) || defined(_STDC_C99))&& !defined(__MINGW64__) 488 # define FMT_SIZE_T "z" 489 # elif defined (__WATCOMC__) 490 # define FMT_SIZE_T "l" 491 # elif defined (_WIN32 ) 492 # define FMT_SIZE_T "I" 494 # define FMT_SIZE_T "l" 498 #ifndef FMT_PTRDIFF_T 499 # if defined(__APPLE__) 500 # define FMT_PTRDIFF_T "l" 501 # elif defined( __GNUC__ ) || defined(_STDC_C99) 502 # define FMT_PTRDIFF_T "t" 503 # elif defined (__WATCOMC__) 504 # define FMT_PTRDIFF_T "l" 505 # elif defined (_WIN32 ) 506 # define FMT_PTRDIFF_T "I" 508 # define FMT_PTRDIFF_T "l" 527 # define REAL_T real64_T 530 # define REAL_T real32_T 540 # define TIME_T real_T 550 # if defined(UINT8_T) 551 # define BOOLEAN_T UINT8_T 553 # define BOOLEAN_T unsigned int 560 # define CHARACTER_T char 566 # define INTEGER_T int 572 # define UINTEGER_T unsigned 578 # define BYTE_T unsigned char 593 # define CREAL32_T creal32_T 602 # define CREAL64_T creal64_T 611 # define CREAL_T creal_T 622 # define CINT8_T cint8_T 631 # define CUINT8_T cuint8_T 640 # define CINT16_T cint16_T 649 # define CUINT16_T cuint16_T 658 # define CINT32_T cint32_T 667 # define CUINT32_T cuint32_T 676 # define CINT64_T cint64_T 685 # define CUINT64_T cuint64_T 695 #define MAX_int8_T ((int8_T)(127)) 696 #define MIN_int8_T ((int8_T)(-128)) 697 #define MAX_uint8_T ((uint8_T)(255)) 698 #define MIN_uint8_T ((uint8_T)(0)) 700 #define MAX_int16_T ((int16_T)(32767)) 701 #define MIN_int16_T ((int16_T)(-32768)) 702 #define MAX_uint16_T ((uint16_T)(65535)) 703 #define MIN_uint16_T ((uint16_T)(0)) 705 #define MAX_int32_T ((int32_T)(2147483647)) 706 #define MIN_int32_T ((int32_T)(-2147483647-1)) 707 #define MAX_uint32_T ((uint32_T)(0xFFFFFFFFU)) 708 #define MIN_uint32_T ((uint32_T)(0)) 710 #if defined(_MSC_VER) || (defined(__BORLANDC__) && __BORLANDC__ >= 0x530) \ 711 || (defined(__WATCOMC__) && __WATCOMC__ >= 1100) \ 712 || defined(__LCC64__) 714 # define MAX_int64_T ((int64_T)(9223372036854775807LL)) 715 # define MIN_int64_T ((int64_T)(-9223372036854775807LL-1LL)) 718 # define MAX_uint64_T ((uint64_T)(0xFFFFFFFFFFFFFFFFULL)) 719 # define MIN_uint64_T ((uint64_T)(0)) 723 # ifdef INT_TYPE_64_IS_LONG 724 # define MAX_int64_T ((int64_T)(9223372036854775807L)) 725 # define MIN_int64_T ((int64_T)(-9223372036854775807L-1L)) 727 # define MAX_int64_T ((int64_T)(9223372036854775807LL)) 728 # define MIN_int64_T ((int64_T)(-9223372036854775807LL-1LL)) 732 # ifdef INT_TYPE_64_IS_LONG 733 # define MAX_uint64_T ((uint64_T)(0xFFFFFFFFFFFFFFFFUL)) 734 # define MIN_uint64_T ((uint64_T)(0)) 736 # define MAX_uint64_T ((uint64_T)(0xFFFFFFFFFFFFFFFFULL)) 737 # define MIN_uint64_T ((uint64_T)(0)) 742 #if (defined(_MSC_VER) && !defined(__clang__)) 752 # define uint64_to_double(u) ( ((u) > _I64_MAX) ? \ 753 (double)(__int64)((u) - _I64_MAX - 1) + (double)_I64_MAX + 1: \ 754 (double)(__int64)(u) ) 759 uint64_T double_to_uint64_helper(
double d) {
760 union double_to_uint64_union_type {
765 return (((di.i64 & 0x000fffffffffffff) | 0x0010000000000000) << 11);
774 # define double_to_uint64(d) ( ((d) >= 18446744073709551616.0) ? \ 775 0xffffffffffffffffULL : \ 777 ((d) >= 9223372036854775808.0) ? \ 778 double_to_uint64_helper(d) : \ 779 (unsigned __int64)(d) : \ 782 # define uint64_to_double(u) ((double)(u)) 783 # if defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__TICCSC__) 786 # define double_to_uint64(d) ( ((d) >= 18446744073709551616.0) ? \ 787 (unsigned long long) 0xffffffffffffffffULL : \ 788 ((d) >= 0) ? (unsigned long long)(d) : (unsigned long long) 0 ) 792 #if !defined(__cplusplus) && !defined(__bool_true_false_are_defined) 814 #if ((SCHAR_MIN + 1) != -SCHAR_MAX) 815 #error "This code must be compiled using a 2's complement representation for signed integer values" 822 #define TMW_NAME_LENGTH_MAX 64 840 #ifndef SLSIZE_SLINDEX 841 #define SLSIZE_SLINDEX 842 #ifdef INT_TYPE_64_IS_SUPPORTED 852 #define SLIndexType size_t 853 #define INVALID_SIZET_VALUE (std::numeric_limits<SLIndexType>::max()) 854 #define MAX_VALID_SIZET_VALUE (std::numeric_limits<SLIndexType>::max() -1) 857 #if (defined(_LP64) || defined(_WIN64)) && !defined(MX_COMPAT_32) 859 # define MWSIZE_MAX 281474976710655UL 860 # define MWINDEX_MAX 281474976710655UL 861 # define MWSINDEX_MAX 281474976710655L 862 # define MWSINDEX_MIN -281474976710655L 864 # define MWSIZE_MAX 2147483647UL 865 # define MWINDEX_MAX 2147483647UL 866 # define MWSINDEX_MAX 2147483647L 867 # define MWSINDEX_MIN -2147483647L 869 #define MWSIZE_MIN 0UL 870 #define MWINDEX_MIN 0UL 874 #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_HAS_CHAR16_T_LANGUAGE_SUPPORT) && _HAS_CHAR16_T_LANGUAGE_SUPPORT) 876 #define U16_STRING_LITERAL_PREFIX u 877 #elif defined(_MSC_VER) 879 #define U16_STRING_LITERAL_PREFIX L