1 /** Header to define integer type macros for AFNI **/
2 /** RW Cox - November 2021 **/
3 
4 #ifndef _AFNI_INTEGER_HEADER_
5 #define _AFNI_INTEGER_HEADER_
6 
7 #ifdef  __cplusplus
8 #  include <cstdint>
9 #else
10 #  include <stdint.h>
11 #endif
12 
13 #undef  Aintsize   /* will be 32 or 64 */
14 
15 #define Aint32  int32_t
16 #define UAint32 uint32_t
17 #define Aint64  int64_t
18 #define UAint64 uint64_t
19 
20 #if INTPTR_MAX == INT64_MAX
21 #  define Aintsize 64
22 #elif INTPTR_MAX == INT32_MAX
23 #  define Aintsize 32
24 #else
25 #  define Aintsize 32  /* probably wrong, but this is Weird Stuff */
26 #endif
27 
28 /* define Aint and UAint depending on the system */
29 
30 #if Aintsize == 64
31 #  define Aint  int64_t
32 #  define UAint uint64_t
33 #elif Aintsize == 32
34 #  define Aint  int32_t
35 #  define UAint uint32_t
36 #else                            /* Weird Stuff */
37 #  define Aint  int
38 #  define UAint unsigned int
39 #endif
40 
41 #endif /* _AFNI_INTEGER_HEADER */
42