LAPACK routines are written so that as much as possible of the computation is performed by calls to the Basic Linear Algebra Subprograms (BLAS) [30,16,15] . Highly efficient machine-specific implementations of the BLAS are available for many modern high-performance computers. Alternatively, machine-specific implementations can be generated using the ATLAS system mentioned in Section 1.5.3 below. The BLAS enable LAPACK routines to achieve high performance with portable code. The methodology for constructing LAPACK routines in terms of calls to the BLAS is described in Chapter 3 of the LAPACK Users' Guide [1].