INTRO_INTRIN(3I) Last changed: 1-6-98
INTRO_INTRIN - Introduction to intrinsic procedures
See individual man pages for implementation details
Intrinsic procedures are predefined by the computer programming
language. They are invoked in the same way that other procedures are
invoked.
The Fortran 90 standard defines intrinsic procedures, and the CF90 and
MIPSpro 7 Fortran 90 compilers include other intrinsics as extensions
to the standard.
There are four classes of Fortran intrinsic procedures as defined by
the Fortran 90 standard: inquiry functions, elemental functions,
transformational functions, and subroutines. Additional intrinsics
provided with the CF90 and MIPSpro 7 Fortran 90 compiler include
intrinsics that support IEEE floating-point arithmetic and other
compiler extensions.
The CF90 and MIPSpro 7 Fortran 90 compilers evaluate intrinsic
procedures in line or by calling external code. Depending on your
platform and your program, the following intrinsics can be evaluated
in line:
* ABS, DABS, IABS
* ACHAR
* AIMAG
* AINT
* ALL
* AND
* ANINT
* ANY
* BIT_SIZE
* M@CLR, M@LD, M@MX, M@LDMX, M@UL (the BMM intrinsics)
* BTEST
* CEILING
* CHAR, ICHAR
* CLEAR_IEEE_EXCEPTION
* CLOC
* CMPLX
* COMPL
* CONJG
* COUNT
* CSHIFT
* CSMG
* CVMGM, CVMGN, CVMGP, CVMGZ, CVMGT
* DBLE, DFLOAT
* DIGITS
* DIM, IDIM
* DISABLE_IEEE_INTERRUPT
* DOT_PRODUCT
* DPROD
* DSHIFTL
* DSHIFTR
* ENABLE_IEEE_INTERRUPT
* EOSHIFT
* EPSILON
* EQV
* EXPONENT
* FCD
* FLOOR
* FRACTION
* GET_IEEE_EXCEPTIONS
* GET_IEEE_INTERRUPTS
* GET_IEEE_ROUNDING_MODE
* GET_IEEE_STATUS
* HUGE
* I24MULT
* IACHAR
* IAND
* IBCLR
* IBITS
* IBSET
* IEEE_CLASS
* IEEE_COPY_SIGN
* IEEE_FINITE
* IEEE_INT
* IEEE_IS_NAN
* IEEE_REAL
* IEEE_UNORDERED
* IEOR
* INT, IDINT, IFIX
* INT24, LINT
* INT_MULT_UPPER
* IOR
* ISHFT
* ISHFTC
* KIND
* LBOUND
* LEADZ
* LEN
* LGE, LGT, LLE, LLT
* LOC
* LOGICAL
* MASK
* MATMUL
* MAX, MAX0, AMAX1, DMAX1, AMAX0, MAX1
* MAXEXPONENT
* MAXLOC
* MAXVAL
* MEMORY_BARRIER
* MERGE
* MIN, MIN0, AMIN1, DMIN1, AMIN0, MIN1
* MINEXPONENT
* MINVAL
* MOD, AMOD
* MODULO
* MVBITS
* MY_PE
* NEAREST
* NEQV, XOR
* NINT, IDNINT
* NOT
* NUMARG
* OR
* POPCNT
* POPPAR
* PRECISION
* PRESENT
* PRODUCT
* RADIX
* RANGE
* REAL, FLOAT, SNGL
* REMOTE_WRITE_BARRIER
* RRSPACING
* RTC, IRTC
* SCALE
* SELECTED_INT_KIND
* SET_EXPONENT
* SET_IEEE_EXCEPTION
* SET_IEEE_EXCEPTIONS
* SET_IEEE_INTERRUPTS
* SET_IEEE_ROUNDING_MODE
* SET_IEEE_STATUS
* SHAPE
* SHIFT
* SHIFTA
* SHIFTL
* SHIFTR
* SIGN, DSIGN, ISIGN
* SPACING
* SPREAD
* SUM
* SYSTEM_CLOCK
* TEST_IEEE_EXCEPTION
* TEST_IEEE_INTERRUPT
* TINY
* TRANSFER
* TRANSPOSE
* UBOUND
* WRITE_MEMORY_BARRIER
The CF90 compiler supports vector versions of some intrinsic
procedures. Using one of these intrinsics means that the presence of
the intrinsic itself, in a loop, does not inhibit the loop's ability
to vectorize. Vector versions of the following CF90 intrinsic
procedures exist on UNICOS platforms:
* ABS, CABS, CDABS, DABS, IABS
* ACOS, DACOS
* AIMAG
* AINT, DINT
* ALOG, CDLOG, CLOG, DLOG
* ALOG10, DLOG10
* AND
* ANINT, DNINT
* ASIN, DASIN
* ATAN2, DATAN2
* ATAN, DATAN
* BIT_SIZE
* M@CLR, M@LD, M@MX, M@LDMX, and M@UL (the BMM intrinsic functions)
* BTEST
* CEILING
* CMPLX
* COMPL
* CONJG
* COS, CCOS, CDCOS, DCOS
* COSH, DCOSH
* COT, DCOT
* CSMG
* CVMGM, CVMGN, CVMGP, CVMGZ, CVMGT
* DBLE, DFLOAT
* DIGITS
* DIM, DDIM, IDIM
* DPROD
* DSHIFTL
* DSHIFTR
* EPSILON
* EQV
* EXP, CDEXP, CEXP, DEXP
* EXPONENT
* FLOOR
* FRACTION
* HUGE
* I24MULT
* IAND
* IBCLR
* IBITS
* IBSET
* IEEE_CLASS
* IEEE_COPY_SIGN
* IEEE_FINITE
* IEEE_INT
* IEEE_IS_NAN
* IEEE_REAL
* IEEE_UNORDERED
* IEOR
* INT, IDINT, IFIX
* INT24, LINT
* INT_MULT_UPPER
* IOR
* ISHFT
* ISHFTC
* KIND
* LEADZ
* LOGICAL
* MASK
* MAX, MAX0, AMAX1, DMAX1, AMAX0, MAX1
* MAXEXPONENT
* MERGE
* MIN, MIN0, AMIN1, DMIN1, AMIN0, MIN1
* MINEXPONENT
* MOD, AMOD, DMOD
* MVBITS
* NEAREST
* NEQV, XOR
* NINT, IDNINT
* NOT
* OR
* POPCNT
* POPPAR
* PRECISION
* PRESENT
* RADIX
* RANDOM_NUMBER
* RANF
* RANGE
* REAL, FLOAT, SNGL
* RRSPACING
* SCALE
* SELECTED_INT_KIND
* SET_EXPONENT
* SHIFT
* SHIFTA
* SHIFTL
* SHIFTR
* SIGN, DSIGN, ISIGN
* SIN, CDSIN, CSIN, DSIN
* SINH, DSINH
* SPACING
* SPREAD
* SQRT, CDSQRT, CSQRT, DSQRT
* TAN, DTAN
* TANH, DTANH
* TINY
The CF90 compiler supports vector versions of some intrinsic
procedures on UNICOS/mk platforms, too. Using one of these intrinsics
means that the presence of the intrinsic itself, in a loop, does not
inhibit the loop's ability to vectorize. On UNICOS/mk platforms, you
must specify -O vector3 and -l mfastv on your f90(1) command line in
order for the compiler to be able to use vector versions of the
following intrinsic procedures:
* COS
* COSS
* EXP
* LOG
* POPCNT
* RANF
* SIN
* SQRT
For details about the Fortran 90 intrinsics, see the man pages
themselves and the Fortran Language Reference Manual, Volume 2,
publication SR-3903.
The C/C++ intrinsics either allow direct access to hardware
instructions or result in the generation of inline code to perform
specialized functions. The intrinsic functions are processed
completely by the compiler, and no calls to external functions are
generated. For details about the C intrinsic procedures, see the Cray
C/C++ Reference Manual, publication SR-2179.
For information about the math intrinsics, see the INTRO_LIBM(3M) man
page. When using the MIPSpro 7 Fortran 90 compiler, the math
intrinsic functions described in the Intrinsic Procedures Reference
Manual, publication SR-2138, are not used. See the SGI math library
documentation for information about math intrinsics supported on IRIX
systems.
INTRO_LIBM(3M), INTRO_SHMEM(3)
Fortran Language Reference Manual, Volume 2, publication SR-3903
Cray C/C++ Reference Manual, publication SR-2179
Intrinsic Procedures Reference Manual, publication SR-2138, for the
printed version of this man page.
INTRO_INTRIN(3I) Last changed: 1-6-98
INTRO_INTRIN - Introduction to intrinsic procedures
See individual man pages for implementation details
Intrinsic procedures are predefined by the computer programming
language. They are invoked in the same way that other procedures are
invoked.
The Fortran 90 standard defines intrinsic procedures, and the CF90 and
MIPSpro 7 Fortran 90 compilers include other intrinsics as extensions
to the standard.
There are four classes of Fortran intrinsic procedures as defined by
the Fortran 90 standard: inquiry functions, elemental functions,
transformational functions, and subroutines. Additional intrinsics
provided with the CF90 and MIPSpro 7 Fortran 90 compiler include
intrinsics that support IEEE floating-point arithmetic and other
compiler extensions.
The CF90 and MIPSpro 7 Fortran 90 compilers evaluate intrinsic
procedures in line or by calling external code. Depending on your
platform and your program, the following intrinsics can be evaluated
in line:
* ABS, DABS, IABS
* ACHAR
* AIMAG
* AINT
* ALL
* AND
* ANINT
* ANY
* BIT_SIZE
* M@CLR, M@LD, M@MX, M@LDMX, M@UL (the BMM intrinsics)
* BTEST
* CEILING
* CHAR, ICHAR
* CLEAR_IEEE_EXCEPTION
* CLOC
* CMPLX
* COMPL
* CONJG
* COUNT
* CSHIFT
* CSMG
* CVMGM, CVMGN, CVMGP, CVMGZ, CVMGT
* DBLE, DFLOAT
* DIGITS
* DIM, IDIM
* DISABLE_IEEE_INTERRUPT
* DOT_PRODUCT
* DPROD
* DSHIFTL
* DSHIFTR
* ENABLE_IEEE_INTERRUPT
* EOSHIFT
* EPSILON
* EQV
* EXPONENT
* FCD
* FLOOR
* FRACTION
* GET_IEEE_EXCEPTIONS
* GET_IEEE_INTERRUPTS
* GET_IEEE_ROUNDING_MODE
* GET_IEEE_STATUS
* HUGE
* I24MULT
* IACHAR
* IAND
* IBCLR
* IBITS
* IBSET
* IEEE_CLASS
* IEEE_COPY_SIGN
* IEEE_FINITE
* IEEE_INT
* IEEE_IS_NAN
* IEEE_REAL
* IEEE_UNORDERED
* IEOR
* INT, IDINT, IFIX
* INT24, LINT
* INT_MULT_UPPER
* IOR
* ISHFT
* ISHFTC
* KIND
* LBOUND
* LEADZ
* LEN
* LGE, LGT, LLE, LLT
* LOC
* LOGICAL
* MASK
* MATMUL
* MAX, MAX0, AMAX1, DMAX1, AMAX0, MAX1
* MAXEXPONENT
* MAXLOC
* MAXVAL
* MEMORY_BARRIER
* MERGE
* MIN, MIN0, AMIN1, DMIN1, AMIN0, MIN1
* MINEXPONENT
* MINVAL
* MOD, AMOD
* MODULO
* MVBITS
* MY_PE
* NEAREST
* NEQV, XOR
* NINT, IDNINT
* NOT
* NUMARG
* OR
* POPCNT
* POPPAR
* PRECISION
* PRESENT
* PRODUCT
* RADIX
* RANGE
* REAL, FLOAT, SNGL
* REMOTE_WRITE_BARRIER
* RRSPACING
* RTC, IRTC
* SCALE
* SELECTED_INT_KIND
* SET_EXPONENT
* SET_IEEE_EXCEPTION
* SET_IEEE_EXCEPTIONS
* SET_IEEE_INTERRUPTS
* SET_IEEE_ROUNDING_MODE
* SET_IEEE_STATUS
* SHAPE
* SHIFT
* SHIFTA
* SHIFTL
* SHIFTR
* SIGN, DSIGN, ISIGN
* SPACING
* SPREAD
* SUM
* SYSTEM_CLOCK
* TEST_IEEE_EXCEPTION
* TEST_IEEE_INTERRUPT
* TINY
* TRANSFER
* TRANSPOSE
* UBOUND
* WRITE_MEMORY_BARRIER
The CF90 compiler supports vector versions of some intrinsic
procedures. Using one of these intrinsics means that the presence of
the intrinsic itself, in a loop, does not inhibit the loop's ability
to vectorize. Vector versions of the following CF90 intrinsic
procedures exist on UNICOS platforms:
* ABS, CABS, CDABS, DABS, IABS
* ACOS, DACOS
* AIMAG
* AINT, DINT
* ALOG, CDLOG, CLOG, DLOG
* ALOG10, DLOG10
* AND
* ANINT, DNINT
* ASIN, DASIN
* ATAN2, DATAN2
* ATAN, DATAN
* BIT_SIZE
* M@CLR, M@LD, M@MX, M@LDMX, and M@UL (the BMM intrinsic functions)
* BTEST
* CEILING
* CMPLX
* COMPL
* CONJG
* COS, CCOS, CDCOS, DCOS
* COSH, DCOSH
* COT, DCOT
* CSMG
* CVMGM, CVMGN, CVMGP, CVMGZ, CVMGT
* DBLE, DFLOAT
* DIGITS
* DIM, DDIM, IDIM
* DPROD
* DSHIFTL
* DSHIFTR
* EPSILON
* EQV
* EXP, CDEXP, CEXP, DEXP
* EXPONENT
* FLOOR
* FRACTION
* HUGE
* I24MULT
* IAND
* IBCLR
* IBITS
* IBSET
* IEEE_CLASS
* IEEE_COPY_SIGN
* IEEE_FINITE
* IEEE_INT
* IEEE_IS_NAN
* IEEE_REAL
* IEEE_UNORDERED
* IEOR
* INT, IDINT, IFIX
* INT24, LINT
* INT_MULT_UPPER
* IOR
* ISHFT
* ISHFTC
* KIND
* LEADZ
* LOGICAL
* MASK
* MAX, MAX0, AMAX1, DMAX1, AMAX0, MAX1
* MAXEXPONENT
* MERGE
* MIN, MIN0, AMIN1, DMIN1, AMIN0, MIN1
* MINEXPONENT
* MOD, AMOD, DMOD
* MVBITS
* NEAREST
* NEQV, XOR
* NINT, IDNINT
* NOT
* OR
* POPCNT
* POPPAR
* PRECISION
* PRESENT
* RADIX
* RANDOM_NUMBER
* RANF
* RANGE
* REAL, FLOAT, SNGL
* RRSPACING
* SCALE
* SELECTED_INT_KIND
* SET_EXPONENT
* SHIFT
* SHIFTA
* SHIFTL
* SHIFTR
* SIGN, DSIGN, ISIGN
* SIN, CDSIN, CSIN, DSIN
* SINH, DSINH
* SPACING
* SPREAD
* SQRT, CDSQRT, CSQRT, DSQRT
* TAN, DTAN
* TANH, DTANH
* TINY
The CF90 compiler supports vector versions of some intrinsic
procedures on UNICOS/mk platforms, too. Using one of these intrinsics
means that the presence of the intrinsic itself, in a loop, does not
inhibit the loop's ability to vectorize. On UNICOS/mk platforms, you
must specify -O vector3 and -l mfastv on your f90(1) command line in
order for the compiler to be able to use vector versions of the
following intrinsic procedures:
* COS
* COSS
* EXP
* LOG
* POPCNT
* RANF
* SIN
* SQRT
For details about the Fortran 90 intrinsics, see the man pages
themselves and the Fortran Language Reference Manual, Volume 2,
publication SR-3903.
The C/C++ intrinsics either allow direct access to hardware
instructions or result in the generation of inline code to perform
specialized functions. The intrinsic functions are processed
completely by the compiler, and no calls to external functions are
generated. For details about the C intrinsic procedures, see the Cray
C/C++ Reference Manual, publication SR-2179.
For information about the math intrinsics, see the INTRO_LIBM(3M) man
page. When using the MIPSpro 7 Fortran 90 compiler, the math
intrinsic functions described in the Intrinsic Procedures Reference
Manual, publication SR-2138, are not used. See the SGI math library
documentation for information about math intrinsics supported on IRIX
systems.
INTRO_LIBM(3M), INTRO_SHMEM(3)
Fortran Language Reference Manual, Volume 2, publication SR-3903
Cray C/C++ Reference Manual, publication SR-2179
Intrinsic Procedures Reference Manual, publication SR-2138, for the
printed version of this man page.
[ Back ]
|