next up previous contents
Next: Create the BLAS Library Up: Test and Install the Previous: Installing SECOND and DSECND   Contents


Testing IEEE arithmetic and ILAENV

As some new routines in LAPACK rely on IEEE-754 compliance, two settings (ISPEC=10 and ISPEC=11) have been added to ILAENV (LAPACK/SRC/ilaenv.f) to denote IEEE-754 compliance for NaN and infinity arithmetic, respectively. By default, ILAENV assumes an IEEE machine, and does a test for IEEE-754 compliance. NOTE: If you are installing LAPACK on a non-IEEE machine, you MUST modify ILAENV, as this test inside ILAENV will crash!

If ILAENV( 10, 12#12 ) or ILAENV( 11, 12#12 ) is issued, then ILAENV=1 is returned to signal IEEE-754 compliance, and ILAENV=0 if the architecture is non-IEEE-754 compliant.

Thus, for non-IEEE machines, the user must hard-code the setting of (ILAENV=0) for (ISPEC=10 and ISPEC=11) in the version of LAPACK/SRC/ilaenv.f to be put in his library. There are also specialized testing and timing versions of ILAENV that will also need to be modified.

The test program in LAPACK/INSTALL/tstiee.f checks an installation architecture to see if infinity arithmetic and NaN arithmetic are IEEE-754 compliant. A warning message to the user is printed if non-compliance is detected. This same test is performed inside the function ILAENV. If ILAENV( 10, 12#12 ) or ILAENV( 11, 12#12 ) is issued, then ILAENV=1 is returned to signal IEEE-754 compliance, and ILAENV=0 if the architecture is non-IEEE-754 compliant.

To avoid this IEEE test being run every time you call ILAENV( 10, 12#12) or ILAENV( 11, 12#12 ), we suggest that the user hard-code the setting of ILAENV=1 or ILAENV=0 in the version of LAPACK/SRC/ilaenv.f to be put in his library. As aforementioned, there are also specialized testing and timing versions of ILAENV that will also need to be modified.


next up previous contents
Next: Create the BLAS Library Up: Test and Install the Previous: Installing SECOND and DSECND   Contents
Susan Blackford 2001-08-13