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 (ILAENV routine inside ALLAUXF) 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 (ILAENV in ALLAUXF) 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 TILAENVF 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 (ILAENV in ALLAUXF) 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