/********************************************************************* * * File Name: hp.h * * Functional Description: The header file decalpha.h defines macros * that are machine-specific to the HP Superdome. * *********************************************************************/ /* CVS info */ /* $Date: 2005/01/10 21:05:28 $ */ /* $Revision: 1.2 $ */ /* $RCSfile: hp.h,v $ */ /* $Name: rel_5 $ */ // On the HP 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 // This is for MPI transfers in P11, C11, R11 #define intspermplong 2 // 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 GMP is compiled using 32-bit ints # define INT32 1 #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 3 /* There are 32 bits in an INTEGER on the HP by default. This is important * because many functions in MPUTIL * return an INTEGER, not an MPLONG. * Note that the * "-integer_size 64" or the "-i8" or "+i8" compiler options will * force integers to be 64 bits. *********************************************************************/ #define INTEGER_BITS 32 #define VECTLEN 1 // Define a string containing a single backslash #define BACKSLASH "\\"