Points to Note

For anyone who obtains the complete LAPACK package from *netlib*
(see Chapter 1), a
comprehensive installation
guide is provided. We recommend
installation of the complete package as the most convenient and reliable
way to make LAPACK available.

People who obtain copies of a few LAPACK routines from *netlib* need to be
aware of the following points:

- 1.
- Double precision complex routines (names beginning Z-)
use a COMPLEX*16 data type. This is an extension to the Fortran 77
standard, but is provided by many Fortran compilers on machines
where double precision computation is usual.
The following related extensions are also used:
- the intrinsic function DCONJG, with argument and result of type
COMPLEX*16;
- the intrinsic functions DBLE and DIMAG, with COMPLEX*16 argument
and DOUBLE PRECISION result, returning the real and imaginary parts,
respectively;
- the intrinsic function DCMPLX, with DOUBLE PRECISION argument(s)
and COMPLEX*16 result;
- COMPLEX*16 constants, formed from a pair of double precision
constants in parentheses.

Some compilers provide DOUBLE COMPLEX as an alternative to COMPLEX*16, and an intrinsic function DREAL instead of DBLE to return the real part of a COMPLEX*16 argument. If the compiler does not accept the constructs used in LAPACK, the installer will have to modify the code: for example, globally change COMPLEX*16 to DOUBLE COMPLEX, or selectively change DBLE to DREAL.

^{6.1} - the intrinsic function DCONJG, with argument and result of type
COMPLEX*16;
- 2.
- For optimal performance, a small set of tuning parameters must be set
for each machine, or even for each configuration of a given machine
(for example, different parameters may be optimal for different numbers
of processors).
These values, such as the block size, minimum block size, crossover
point below which an unblocked routine should be used, and others,
are set by calls to an inquiry function ILAENV.
The default version of ILAENV provided with LAPACK uses generic values
which often give satisfactory performance, but
users who are particularly interested in performance may wish to
modify this subprogram or substitute their own version.
Further details on setting ILAENV for a particular environment
are provided in section 6.2.
- 3.
- SLAMCH/DLAMCH
determines properties of the
floating-point arithmetic at run-time, such as the machine epsilon,
underflow threshold,
overflow threshold, and related parameters. It works satisfactorily on
all commercially important machines of which we are aware, but will necessarily
be updated from time to time as new machines and compilers are produced.