/********************************************************************* * * File Name: decalpha.h * * Functional Description: The header file decalpha.h defines * macros used by FORTRAN code on the DEC Alpha when * implementing the bench11 multiple precision benchmark * routines. * *********************************************************************/ /* CVS info */ /* $Date: 2005/01/10 20:57:47 $ */ /* $Revision: 1.2 $ */ /* $RCSfile: decalpha.h,v $ */ /* $Name: rel_5 $ */ /*On the DEC Alpha the long (64 bit) is the largest supported type */ #define mplong long #define MPLONG INTEGER(KIND=8) /*The total number of bits in an MPLONG */ #define WORDLEN 64 /*The number of bits in each digit word used by the multiple */ /*precision structure (normally WORDLEN/2) */ #if GMP # define BITSPERWORD 64 /* this means GMP was compiled using 32-bit ints on DEC */ # define INT32 1 #else # define BITSPERWORD 32 #endif /********************************************************************* C The number of usable bits in the mantissa of a double C (Look in the file /usr/include/float.h) C Also define a fudge factor so that for any values of C rem and div C floor(rem/div) > int(float(rem-DIVFUDGE*2^stuff)/float(div)) C where float(x) is the double precision representation C of the top DBL_MANT_DIG-1 bits of x and stuff is chosen so C DIVFUDGE effects only the bottom bits of those chosen by float. *********************************************************************/ #define DBL_MANT_DIG 53 #define DIVFUDGE 2 /********************************************************************* * There are 32 bits in an INTEGER on the DEC Alpha using the * default flags. This is important because many functions * return an INTEGER, not an MPLONG. Note that the * "-integer_size 64" or the "-i8" compiler options will * force integers to be 64 bits. *********************************************************************/ #define INTEGER_BITS 32 #define VECTLEN 1 /* Define the best implementation of a leading zero count */ /* On the DECALPHA we use the software version in utility/util.f */ #if 0 c#define LEADZ(n) LEADZ(n) c INTEGER LEADZ #endif /* Define a string containing a single backslash */ #define BACKSLASH "\\"