00001 00010 #ifndef _GK_TYPES_H_ 00011 #define _GK_TYPES_H_ 00012 00013 /************************************************************************* 00014 * Basic data type definitions. These definitions allow GKlib to separate 00015 * the following elemental types: 00016 * - loop iterator variables, which are set to size_t 00017 * - signed and unsigned int variables that can be set to any # of bits 00018 * - signed and unsigned long variables that can be set to any # of bits 00019 * - real variables, which can be set to single or double precision. 00020 **************************************************************************/ 00021 /*typedef ptrdiff_t gk_idx_t; */ /* index variable */ 00022 typedef ssize_t gk_idx_t; /* index variable */ 00023 typedef int32_t gk_int_t; /* integer values */ 00024 typedef uint32_t gk_uint_t; /* unsigned integer values */ 00025 typedef int64_t gk_long_t; /* long integer values */ 00026 typedef uint64_t gk_ulong_t; /* unsigned long integer values */ 00027 typedef float gk_real_t; /* real type */ 00028 typedef double gk_dreal_t; /* double precission real type */ 00029 typedef double gk_wclock_t; /* wall-clock time */ 00030 00031 /*#define GK_IDX_MAX PTRDIFF_MAX*/ 00032 #define GK_IDX_MAX ((SIZE_MAX>>1)-2) 00033 00034 #define PRIGKIDX "zd" 00035 #define SCNGKIDX "zd" 00036 00037 00038 #endif