c CVS Info c $Date: 2005/01/10 20:46:00 $ c $Revision: 1.2 $ c $RCSfile: decalpha.h,v $ c $Name: rel_5 $ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C File Name: decalpha.h C C Functional Description: The header file decalpha.h defines C macros used by FORTRAN code on the DEC Alpha when C implementing the bench11 multiple precision benchmark C routines. C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C #define MPI 0 C C On the DEC Alpha the INTEGER*8 (64 bit) is the largest supported type #define MPLONG INTEGER*8 #define MY_DOUBLE DOUBLE PRECISION C C The total number of bits in an MPLONG #define WORDLEN 64 C C The number of bits in each digit word used by the multiple C precision structure (normally WORDLEN/2) #if GMP #define BITSPERWORD 64 #else #define BITSPERWORD 32 #endif C 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 C C There are 32 bits in an INTEGER on the DEC Alpha using the C default flags. This is important because many functions C return an INTEGER, not an MPLONG. Note that the C "-integer_size 64" or the "-i8" compiler options will C force integers to be 64 bits. #define INTEGER_BITS 32 #define INT32 1 C C This is needed to make MPI transfer the correct amount of data in P11,C11,R11 #define INTSPERMPLONG 2 C #define VECTLEN 1 C C Define the best implementation of a leading zero count C On the DECALPHA we use the software version in utility/util.f c#define LEADZ(n) LEADZ(n) c INTEGER LEADZ C C Define a string containing a single backslash #define BACKSLASH "\\"