Release date: 04/12/22.
This material is based upon work supported by the National Science Foundation and the Department of Energy.
LAPACK is a software package provided by Univ. of Tennessee, Univ. of California, Berkeley, Univ. of Colorado Denver and NAG Ltd..
1. Support and questions:
2. LAPACK 3.10.1: What’s new
-
Download: lapack-3.10.1.tar.gz
This is a minor release addressing multiple bug fixes and improvements.
2.1. Principal Bug fixes
Description: Make least squares solver getsls work as a drop-in replacement of gels - [dz]getsls: cast workspace size with dble, not real - Move workspace write to precede xerbla. Follow the documentation and return the optimal workspace in work(1) even on quick return
Clean up unused variables.
Contribution by: angsch
Description: Various argument check and typo corrections
Contribution by: angsch
Description: Fixes a bug in the Blue’s scaling constants of nrm2 thanks to Arm Performance Libraries! This is the same bug fixed on #559 for la_constants.f90.
Contribution by: Weslley S. Pereira
Description: xGEQRF and xGERQF return wrong optimal dimension LWORK when M and N equals zero, respectively. This applies the fixes proposed by @andreasvarga and @VasileSima4 in PR #633.
Contribution by: Andreas Varga and Vasile Sima
Description: See CVE-2021-4048
Contribution by: Keno Fischer
Description: CBLAS and LAPACKE layers are not built with 8 byte integers when cmake option BUILD_INDEX64=ON is passed. The reason is because long’s in windows are 4 bytes (MSVC c/c++, intel compilers). This patch uses int64_t and int32_t to ensure ILP interface is built.
Additionally, this patch adds support ifort’s 8 byte integer flag to cmake system for building BLAS and LAPACK.
Contribution by: Eric Lars
Description: This PR addresses Issue #606, by adding correct detection for the IBM XL Fortran (xlf) recursive option (-qrecur).
Contribution by: QuellynSnead
Description: use default64 flag for Cray ftn compiler when BUILD_INDEX64 is ON.
Contribution by: Ajay Panyala
Description: If some of the inputs are inf, {s,d}lapy{2,3} and the new {s,d}nrm2 routines return inconsistent results, NaN in contrast to inf.
-
lapy2 if both inputs are inf
-
lapy3 if at least one of the 3 inputs is inf
This commit adds a check to avoid the divisions inf / inf that introduce NaN.
Contribution by: angsch
Description: There is a known bug in LAPACK related to workspaces smaller than the value computed by the routine. This is because the routines use a floating-point variable to return the integer workspace size. See Issue #600. The intent here is to mitigate the problem of overestimating the workspace when doing the conversion INTEGER → REAL (or DOUBLE PRECISION) highlighted in #600. I do not solve the problem of a possible overflow in LWORK.
This PR applies the same strategy from the MAGMA package to solve the issue (See Isse #600 (comment) from @mgates3).
Contribution by: Mark Gates
2.2 Build Improvements
Deprecate xCOMBSSQ and use xLASSQ directly
Improve build and installation via CMake
Use CBLAS_INDEX and CBLAS_INT integer types in CBLAS as in previous versions of LAPACK
2.3 All Bug fixes and Improvements
For details please see our Github repository
2.6 Notes about compiler dependency
Some LAPACK routines rely on trustworthy complex division and ABS routines in the FORTRAN compiler. This link lists the LAPACK COMPLEX*16 algorithms that contain compiler dependent complex divisions of the form
REAL / COMPLEX or COMPLEX / COMPLEX
See Issue #575 and Issue #577 for a more complete discussion on this topic.
3. Developer list
-
Weslley da Silva Pereira (University of Colorado Denver, USA)
-
Julie Langou (University of Tennessee, USA)
-
Jim Demmel (University of California, Berkeley, USA)
-
Jack Dongarra (University of Tennessee and ORNL, USA)
-
Julien Langou (University of Colorado Denver, USA)
4. Thanks
-
MathWorks: Penny Anderson, Mary Ann Freeman, Bobby Cheng, Pat Quillen, Christine Tobler, Heiko Weichelt.
-
GitHub Users: angsch, jip, Ajay Panyala, Isuru Fernando, Christoph Conrads Nakata Maho, QuellynSnead, Sebastien Villemot, Ben Boeckel, Keno Fisher, Brian Jackson, Eric Lars
Github contribution details here