intro_intrin(3I)
INTRO_INTRIN - Introduction to intrinsic procedures
As shipped in IRIX 6.5. First release of IRIX 6.5.
NAME INTRO_INTRIN - Introduction to intrinsic procedures IMPLEMENTATION See individual man pages for implementation details DESCRIPTION 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. SEE ALSO 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.