The BLAS tests run under both build systems but nothing reported on
them: the script knew only the LAPACK drivers and scanned only the
LAPACK testing directory.
Add the BLAS suite as its own library:
- A test case per precision and BLAS level, with the Level 1 drivers
marked as reading no input, and the Level 2 and 3 drivers marked as
opening their own output file.
- parse_blas, which takes run and failure counts from the driver's
report lines. Computational failures are numerical errors and
error-exit failures are other errors.
- --blas-dir, defaulting to BLAS/TESTING. That relative path is
correct from a CMake build root and from the source tree alike, so
no existing invocation needs changing. A missing directory is
skipped silently, since builds against an optimized BLAS have none.
- --run support, which needs the input-less Level 1 drivers handled
and the output redirection suppressed for Level 2 and 3. A _64 run
of Level 2 or 3 requires the generated _64 input; without it the
driver would write over the default-API output, so it is skipped
with a message instead.
The drivers exit 0 even when they abandon a run, and print END OF TESTS
even when routines failed, so breakage is read from the text: an
abandoned or misconfigured run, and a Level 2 or 3 file that never
reached its footer, each count as one other error. Detail lines behind
an already counted verdict are shown but not counted, which otherwise
inflates a failing file several fold.
Output from a build whose drivers do not report counts is still
summarized, by counting one test per verdict. That is coarse, but never
silently zero.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
LAPACK
- VERSION 1.0 : February 29, 1992
- VERSION 1.0a : June 30, 1992
- VERSION 1.0b : October 31, 1992
- VERSION 1.1 : March 31, 1993
- VERSION 2.0 : September 30, 1994
- VERSION 3.0 : June 30, 1999
- VERSION 3.0 + update : October 31, 1999
- VERSION 3.0 + update : May 31, 2000
- VERSION 3.1 : November 2006
- VERSION 3.1.1 : February 2007
- VERSION 3.2 : November 2008
- VERSION 3.2.1 : April 2009
- VERSION 3.2.2 : June 2010
- VERSION 3.3.0 : November 2010
- VERSION 3.3.1 : April 2011
- VERSION 3.4.0 : November 2011
- VERSION 3.4.1 : April 2012
- VERSION 3.4.2 : September 2012
- VERSION 3.5.0 : November 2013
- VERSION 3.6.0 : November 2015
- VERSION 3.6.1 : June 2016
- VERSION 3.7.0 : December 2016
- VERSION 3.7.1 : June 2017
- VERSION 3.8.0 : November 2017
- VERSION 3.9.0 : November 2019
- VERSION 3.9.1 : April 2021
- VERSION 3.10.0 : June 2021
- VERSION 3.10.1 : April 2022
- VERSION 3.11.0 : November 2022
- VERSION 3.12.0 : November 2023
- VERSION 3.12.1 : January 2025
LAPACK is a library of Fortran subroutines for solving the most commonly occurring problems in numerical linear algebra.
LAPACK is a freely-available software package. It can be included in commercial software packages (and has been). We only ask that that proper credit be given to the authors, for example by citing the LAPACK Users' Guide. The license used for the software is the modified BSD license.
Like all software, it is copyrighted. It is not trademarked, but we do ask the following: if you modify the source for these routines we ask that you change the name of the routine and comment the changes made to the original.
We will gladly answer any questions regarding the software. If a modification is done, however, it is the responsibility of the person who modified the routine to provide support.
LAPACK is available from GitHub. LAPACK releases are also available on netlib.
The distribution contains (1) the Fortran source for LAPACK, and (2) its testing programs. It also contains (3) the Fortran reference implementation of the Basic Linear Algebra Subprograms (the Level 1, 2, and 3 BLAS) needed by LAPACK. However this code is intended for use only if there is no other implementation of the BLAS already available on your machine; the efficiency of LAPACK depends very much on the efficiency of the BLAS. It also contains (4) CBLAS, a C interface to the BLAS, and (5) LAPACKE, a C interface to LAPACK.
Installation
- LAPACK can be installed with
make. The configuration must be set in themake.incfile. Amake.inc.examplefor a Linux machine running GNU compilers is given in the main directory. Some specificmake.incare also available in theINSTALLdirectory. - LAPACK includes also the CMake build. You will need
to have CMake installed on your machine. CMake will allow an easy
installation on a Windows Machine. An example CMake build to install the
LAPACK library under
$HOME/.local/lapack/is:mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=$HOME/.local/lapack .. cmake --build . -j --target install - LAPACK can be built and installed using vcpkg dependency manager:
The lapack port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository.
git clone https://github.com/Microsoft/vcpkg.git cd vcpkg ./bootstrap-vcpkg.sh # ./bootstrap-vcpkg.bat for Windows ./vcpkg integrate install ./vcpkg install lapack
User Support
LAPACK has been thoroughly tested, on many different types of computers. The LAPACK project supports the package in the sense that reports of errors or poor performance will gain immediate attention from the developers. Such reports, descriptions of interesting applications, and other comments should be sent by email to the LAPACK team.
A list of known problems, bugs, and compiler errors for LAPACK is maintained on netlib. Please see as well the GitHub issue tracker.
For further information on LAPACK please read our FAQ and Users' Guide. A user forum and specific information for running LAPACK under Windows are also available to help you with the LAPACK library.
Testing
LAPACK includes a thorough test suite. We recommend that, after compilation, you run the test suite.
For complete information on the LAPACK Testing please consult LAPACK Working Note 41 "Installation Guide for LAPACK".
LAPACKE
LAPACK now includes the LAPACKE package. LAPACKE is a Standard C language API for LAPACK that was born from a collaboration of the LAPACK and INTEL Math Kernel Library teams.