The Engineering Scientific Subroutine Library (ESSL) provides a variety of optimized complex mathematical functions for many different scientific and engineering applications such as BLAS, linear algebraic equation solvers and eigensystem analysis (a subset of LAPACK), FFTs, sorting, searching, quadrature, and random number generation. ESSL provides single- and double-precision versions for most routines. At LC, ESSL is available only on the IBM CORAL POWER systems: Sierra, Lassen, RZAnsel, Ray, and Shark. More information can be found at

ESSL includes all the BLAS that come with the LAPACK distribution, but it does not include the following original BLAS routines, most of which are in libblas.a: CSROT, DROTM, DROTMG, DSDOT, SDSDOT, SROTM, SROTMG, ZDROT.

Some ESSL eigenvalue routines have the same name as LAPACK routines but are different (since ESSL predates LAPACK). If you want to use the LAPACK routines whose names conflict with routines in ESSL, use the AR tool to split ESSL into two libraries: one with just the conflicting routines, say, libconflict.a, and the other with the rest of the routines, say, libesslnoconflict.a. Link the noconflict routines before the full LAPACK library:

... -lesslnoconflict -llapack

This gives you optimized versions of the LAPACK routines that are in ESSL, with liblapack.a resolving all the other routines.