/********************************************************************* * * File Name: craympp.h * * Functional Description: The header file craympp.h defines * macros used by FORTRAN code on the CRAY-T3D/E when implementing * the bench11 multiple precision benchmark routines. * *********************************************************************/ /* CVS info */ /* $Date: 2005/01/10 21:17:58 $ */ /* $Revision: 1.2 $ */ /* $RCSfile: craympp.h,v $ */ /* $Name: rel_5 $ */ /* On the T3D/E, the INTEGER type is the largest supported type. */ #define mplong int #define MPLONG INTEGER /* The total number of bits in an MPLONG */ #define WORDLEN 64 /* This is for MPI transfers in P11, C11, R11 */ /* on Cray, int is right for mplong */ #define MY_MPI_INT MPI_INT /* The number of bits in each digit word used by the multiple precision structure (normally WORDLEN/2). */ #ifdef GMP # define BITSPERWORD 64 /* This flag means that GMP is compiled with 64-bit ints on Cray */ # define INT32 0 #else # define BITSPERWORD 32 #endif /* The number of usable bits in the mantissa of a double * (Look in the file /usr/include/float.h) * Also define a fudge factor so that for any values of * rem and div: * floor(rem/div) > int(float(rem-DIVFUDGE*2^stuff)/float(div)) * where float(x) is the double precision representation * of the top DBL_MANT_DIG-1 bits of x and stuff is chosen so * DIVFUDGE effects only the bottom bits of those chosen by float. */ #define DBL_MANT_DIG 53 #define DIVFUDGE 2 /* There are 64 bits in an INTEGER on the T3D/E. This is important because many functions return an INTEGER, not an MPLONG */ #define INTEGER_BITS 64 #define VECTLEN 1 /* Define a string containing a single backslash */ #define BACKSLASH "\\"