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, ) or ILAENV( 11, ) 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 timing2versions 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, ) or ILAENV( 11, ) 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, ) or ILAENV( 11, ), 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 timing2versions of ILAENV that will also need to be modified.