INT_MULT_UPPER(3I) Last changed: 2-6-98
_int_mult_upper, INT_MULT_UPPER - Multiplies integers and returns the
uppermost bits
C/C++:
#include <intrinsics.h>
unsigned long _int_mult_upper (long i, long j)
Fortran:
INT_MULT_UPPER ([I=]i, [J=]j)
C/C++: UNICOS/mk systems and UNICOS systems with IEEE floating-point
hardware
Fortran: UNICOS/mk systems, IRIX systems, and CRAY T90 systems that
support IEEE floating-point arithmetic
C/C++: Cray Research extension
Fortran: CF90 and MIPSpro 7 Fortran 90 compiler extension to Fortran
90
IEEE Standard for Binary Floating-point Arithmetic
This intrinsic function is not strictly related to IEEE arithmetic.
It takes advantage of a hardware instruction on UNICOS/mk systems and
on CRAY T90 systems that support IEEE floating-point arithmetic. This
hardware instruction multiplies two 64-bit unsigned integers and
returns the upper (leftmost) 64 bits of the 128-bit unsigned result.
C/C++ NOTES
Because _int_mult_upper is an intrinsic function, no externally
visible library function is available for it. The compiler generates
inline code to produce the result.
FORTRAN NOTES
INT_MULT_UPPER accepts the following arguments:
i On UNICOS/mk systems and on CRAY T90 systems that support IEEE
floating-point arithmetic, i must be of type INTEGER(KIND=8). On
IRIX systems, it can also be of type INTEGER(KIND=4). It can be
a scalar or an array.
j On UNICOS/mk systems and on CRAY T90 systems that support IEEE
floating-point arithmetic, j must be of type INTEGER(KIND=8). On
IRIX systems, it can also be of type INTEGER(KIND=4). It can be
a scalar or an array. If it is an array, it must be of the same
shape as i.
INT_MULT_UPPER is an elemental function. The name of this intrinsic
cannot be passed as an argument.
If i and j are scalar, the result is a scalar.
If i is an array and j is scalar, the result is an array of the same
shape as i in which each element is the result of the product of i
i
and j as described previously.
If i is scalar and j is an array, the result is an array of the same
shape as j and in which each element is the result of the product of i
and j as described previously.
i
If both i and j are arrays, the result is an array of the same shape
as i and in which each element is the result of the product of
i and j
i i
as described previously.
_int_mult_upper returns a 64-bit result, which is the upper (leftmost)
64 bits of the 128-bit result of the product of i and j.
On UNICOS/mk systems and on CRAY T90 systems that support IEEE
floating-point arithmetic, INT_MULT_UPPER returns the upper (leftmost)
64 bits of the 128-bit result of the product of i and j.
On IRIX systems, INT_MULT_UPPER returns a 64-bit integer result if at
least one of the arguments is a 64-bit integer; the 32-bit argument is
converted to a 64-bit integer. If both i and j are INTEGER(KIND=4)
arguments, the result is the upper (leftmost) 32 bits of the 64-bit
result of the product of i and j.
Fortran example:
! Assume the following code is executed on a CRAY T90 IEEE.
INTEGER ii(128), jj, result(128)
... ! Compute II and J.
result = INT_MULT_UPPER(ii, jj)
A complete list of C/C++ intrinsic functions available on Cray
Research systems is in the Cray C/C++ Reference Manual, publication
SR-2179.
Intrinsic Procedures Reference Manual, publication SR-2138, for the
printed version of this man page.
INT_MULT_UPPER(3I) Last changed: 2-6-98
_int_mult_upper, INT_MULT_UPPER - Multiplies integers and returns the
uppermost bits
C/C++:
#include <intrinsics.h>
unsigned long _int_mult_upper (long i, long j)
Fortran:
INT_MULT_UPPER ([I=]i, [J=]j)
C/C++: UNICOS/mk systems and UNICOS systems with IEEE floating-point
hardware
Fortran: UNICOS/mk systems, IRIX systems, and CRAY T90 systems that
support IEEE floating-point arithmetic
C/C++: Cray Research extension
Fortran: CF90 and MIPSpro 7 Fortran 90 compiler extension to Fortran
90
IEEE Standard for Binary Floating-point Arithmetic
This intrinsic function is not strictly related to IEEE arithmetic.
It takes advantage of a hardware instruction on UNICOS/mk systems and
on CRAY T90 systems that support IEEE floating-point arithmetic. This
hardware instruction multiplies two 64-bit unsigned integers and
returns the upper (leftmost) 64 bits of the 128-bit unsigned result.
C/C++ NOTES
Because _int_mult_upper is an intrinsic function, no externally
visible library function is available for it. The compiler generates
inline code to produce the result.
FORTRAN NOTES
INT_MULT_UPPER accepts the following arguments:
i On UNICOS/mk systems and on CRAY T90 systems that support IEEE
floating-point arithmetic, i must be of type INTEGER(KIND=8). On
IRIX systems, it can also be of type INTEGER(KIND=4). It can be
a scalar or an array.
j On UNICOS/mk systems and on CRAY T90 systems that support IEEE
floating-point arithmetic, j must be of type INTEGER(KIND=8). On
IRIX systems, it can also be of type INTEGER(KIND=4). It can be
a scalar or an array. If it is an array, it must be of the same
shape as i.
INT_MULT_UPPER is an elemental function. The name of this intrinsic
cannot be passed as an argument.
If i and j are scalar, the result is a scalar.
If i is an array and j is scalar, the result is an array of the same
shape as i in which each element is the result of the product of i
i
and j as described previously.
If i is scalar and j is an array, the result is an array of the same
shape as j and in which each element is the result of the product of i
and j as described previously.
i
If both i and j are arrays, the result is an array of the same shape
as i and in which each element is the result of the product of
i and j
i i
as described previously.
_int_mult_upper returns a 64-bit result, which is the upper (leftmost)
64 bits of the 128-bit result of the product of i and j.
On UNICOS/mk systems and on CRAY T90 systems that support IEEE
floating-point arithmetic, INT_MULT_UPPER returns the upper (leftmost)
64 bits of the 128-bit result of the product of i and j.
On IRIX systems, INT_MULT_UPPER returns a 64-bit integer result if at
least one of the arguments is a 64-bit integer; the 32-bit argument is
converted to a 64-bit integer. If both i and j are INTEGER(KIND=4)
arguments, the result is the upper (leftmost) 32 bits of the 64-bit
result of the product of i and j.
Fortran example:
! Assume the following code is executed on a CRAY T90 IEEE.
INTEGER ii(128), jj, result(128)
... ! Compute II and J.
result = INT_MULT_UPPER(ii, jj)
A complete list of C/C++ intrinsic functions available on Cray
Research systems is in the Cray C/C++ Reference Manual, publication
SR-2179.
Intrinsic Procedures Reference Manual, publication SR-2138, for the
printed version of this man page.
[ Back ]
|