@ -101,42 +101,48 @@
typedef long sintP ;
typedef unsigned long uintP ;
/ / Largest integer type which can be manipulated as efficiently as a pointer .
/ / This is normally the same as the hardware register size .
/ / Assumption : cl_word_size > = intPsize
# ifdef HAVE_FAST_LONGLONG
# define cl_word_size 64
# else
# define cl_word_size 32
# endif
/ / Numbers in the heap are stored as " digit " sequences .
/ / A digit is an unsigned int with intDsize bits .
/ / intDsize should be 8 or 16 or 32 or 64.
# if (defined(HAVE_FAST_LONGLONG) && (defined(__alpha__) || defined(__ia64__)))
# define intDsize 64
# define intDDsize 128 / / = 2*intDsize
# define log2_intDsize 6 / / = log2(intDsize)
# else
# define intDsize 32
# define intDDsize 64 / / = 2*intDsize
# define log2_intDsize 5 / / = log2(intDsize)
# endif
# if (intDsize==8)
typedef sint8 sintD ;
typedef uint8 uintD ;
# endif
# if (intDsize==16)
typedef sint16 sintD ;
typedef uint16 uintD ;
# endif
# if (intDsize==32)
typedef sint32 sintD ;
typedef uint32 uintD ;
/ / intDsize should be 8 or 16 or 32 or 64 and it should match mp_limb_t ,
/ / if CLN is sitting on top of GMP .
# if defined(GMP_DEMANDS_UINTD_LONG_LONG)
# define HAVE_FAST_LONGLONG
# define intDsize long_long_bitsize
typedef long long sintD ;
typedef unsigned long long uintD ;
# elif defined(GMP_DEMANDS_UINTD_LONG)
# define intDsize long_bitsize
typedef long sintD ;
typedef unsigned long uintD ;
# elif defined(GMP_DEMANDS_UINTD_INT)
# define intDsize int_bitsize
typedef int sintD ;
typedef unsigned int uintD ;
# else / / we are not using GMP, so just guess something reasonable
# if (defined(HAVE_FAST_LONGLONG) && (defined(__alpha__) || defined(__ia64__)))
# define intDsize 64
typedef sint64 sintD ;
typedef uint64 uintD ;
# else
# define intDsize 32
typedef sint32 sintD ;
typedef uint32 uintD ;
# endif
# endif
# if (intDsize==64)
typedef sint64 sintD ;
typedef uint64 uintD ;
# define intDDsize 128 / / = 2*intDsize
# define log2_intDsize 6 / / = log2(intDsize)
# elif (intDsize==32)
# define intDDsize 64 / / = 2*intDsize
# define log2_intDsize 5 / / = log2(intDsize)
# elif (intDsize==16)
# define intDDsize 32 / / = 2*intDsize
# define log2_intDsize 4 / / = log2(intDsize)
# elif (intDsize==8)
# define intDDsize 16 / / = 2*intDsize
# define log2_intDsize 3 / / = log2(intDsize)
# else
# error "What is intDsize again?"
# endif
/ / HAVE_DD means that there are unsigned ints with 2 * intDsize bits .
# if (intDDsize <= (defined(HAVE_FAST_LONGLONG) ? 64 : 32))
@ -157,4 +163,13 @@
# define HAVE_DD 0
# endif
/ / Largest integer type which can be manipulated as efficiently as a pointer .
/ / This is normally the same as the hardware register size .
/ / Assumption : cl_word_size > = intPsize
# ifdef HAVE_FAST_LONGLONG
# define cl_word_size 64
# else
# define cl_word_size 32
# endif
# endif /* _CL_TYPES_H */