next up previous contents
Next: Lack of /tmp space Up: Caveats Previous: ETIME   Contents

ILAENV and IEEE-754 compliance

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!

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. For further details, refer to section 6.1.4.

Be aware that some IEEE compilers by default do not enforce IEEE-754 compliance, and a compiler flag must be explicitly set by the user.

On SGIs for example, you must set the -OPT:IEEE_NaN_inf=ON compiler flag to enable IEEE-754 compliance.

And lastly, the test inside ILAENV to detect IEEE-754 compliance, will result in IEEE exceptions for ``Divide by Zero'' and ``Invalid Operation''. Thus, if the user is installing on a machine that issues IEEE exception warning messages (like a Sun SPARCstation), the user can disregard these messages. To avoid these messages, the user can hard-code the values inside ILAENV as explained in section 6.1.4.


next up previous contents
Next: Lack of /tmp space Up: Caveats Previous: ETIME   Contents
Julie Langou 2007-02-26