pmontgom@euphemia.math.ucla.edu (Peter Montgomery) (06/08/91)
Which Fortran systems support arithmetic on double length integers (cf. the "long long" type which some C compilers support)? I want arithmetic, not merely storage allocation. If you know a system (existing or proposed) supporting such, please tell me: i) The type statement used to declare double length entities (e.g., integer*8 dn1, dn2). ii) The mechanism used to convert a normal integer n1 to a double length integer (can be signed or unsigned extension). For example, INT8(n1) or DBLINT(n1). Can INT be used to convert a double integer to a normal integer? iii) Is there a special function for the double-length product (signed or unsigned) of two normal integers n1 and n2 (cf. DPROD intrinsic for floating point data)? If not, is a construction like INT8(n1)*INT8(n2) optimized into a single multiplication by the compiler? iv) Do the Fortran 90 bit-manipulation and shift functions (e.g., IAND, ISHFT) allow double length arguments, in which case they return a double length result? If not, are there different specific function names used for these purposes? v) Is there a special notation for double length integer constants? Please respond by e-mail. I will summarize if interest warrants. -- Peter L. Montgomery pmontgom@MATH.UCLA.EDU Department of Mathematics, UCLA, Los Angeles, CA 90024-1555 If I spent as much time on my dissertation as I do reading news, I'd graduate.