Release date: 11/24/23.
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..
Support and questions:
LAPACK 3.12.0: What’s new
-
Download: lapack-3.12.0.tar.gz
This is a major release and also addressing multiple bug fixes.
Dynamic Mode Decomposition (DMD)
-
xGEDMD computes the Dynamic Mode Decomposition (DMD) for a pair of data snapshot matrices. For the input matrices X and Y such that Y = A*X with an inaccessible matrix A, xGEDMD computes a certain number of Ritz pairs of A using the standard Rayleigh-Ritz extraction from a subspace of range(X) that is determined using the leading left singular vectors of X. Optionally, xGEDMD returns the residuals of the computed Ritz pairs, the information needed for a refinement of the Ritz vectors, or the eigenvectors of the Exact DMD.
-
xGEDMDQ does the same as xGEDMD but uses a QR factorization based compression of the data.
-
See: Z. Drmac: A LAPACK implementation of the Dynamic Mode Decomposition I. Technical report. AIMDyn Inc. and LAPACK Working Note 298.
-
Developed and coded by Zlatko Drmac, Faculty of Science, University of Zagreb. In cooperation with AIMdyn Inc., Santa Barbara, CA. And supported by (1) DARPA SBIR project "Koopman Operator-Based Forecasting for Nonstationary Processes from Near-Term, Limited Observational Data", Contract No: W31P4Q-21-C-0007; (2) DARPA PAI project "Physics-Informed Machine Learning Methodologies", Contract No: HR0011-18-9-0033; (3) DARPA MoDyL project "A Data-Driven, Operator-Theoretic Framework for Space-Time Analysis of Process Dynamics", Contract No: HR0011-16-C-0116. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author and do not necessarily reflect the views of the DARPA SBIR Program Office. Distribution Statement A: Approved for Public Release, Distribution Unlimited. Cleared by DARPA on September 29, 2022
-
Adding Dynamic Mode Decomposition (DMD) into LAPACK by @dbielich in PR 736
-
Update C prototypes and LAPACKE interfaces for ?GEDMD/?GEDMDQ by @martin-frbg in PR 880
Truncated QR with Column Pivoting
-
The routine computes a truncated (rank K) or full rank Householder QR factorization with column pivoting of a real M-by-N matrix A using Level 3 BLAS.
-
The truncation criteria (i.e. when to stop the factorization) can be any of the following: (1) The input parameter KMAX, the maximum number of columns KMAX to factorize; (2) The input parameter ABSTOL, the absolute tolerance for the maximum column 2-norm of the residual matrix R22(K); (3) The input parameter RELTOL, the tolerance for the maximum column 2-norm matrix of the residual matrix R22(K) divided by the maximum column 2-norm of the original matrix A, which is equal to abs(R(1,1)). The algorithm stops when any of these conditions is first satisfied, otherwise the whole matrix A is factorized.
Reciprocal Scaling of complex vectors
-
[C/Z]RSCL multiplies an n-element complex vector x by the complex scalar 1/a. This is done without overflow or underflow as long as the final result x/a does not overflow or underflow.
-
See: "An algorithm for scaling vectors by the reciprocal of a complex number", Weslley da Silva Pereira, [arXiv:2311.05736](https://arxiv.org/abs/2311.05736)
-
Adds CRSCL by @weslleyspereira in PR 839
Improvements in the 64-bit API
-
Fix CBLAS tests with 64-bit indexing by @svillemot in PR 767
-
Add Index-64 API as extended API with _64 suffix for CBLAS by @mkrainiuk in PR 846
-
Revert "Add Index-64 API as extended API with _64 suffix for CBLAS" by @langou in PR 856
-
Add Index-64 API as extended API with _64 suffix for CBLAS by @mkrainiuk in PR 867
-
Create DOCS/CBLAS.md by @mkrainiuk in PR 863
-
Reduce number of macros in fortran compilation line for BLAS _64 API by @mkrainiuk in PR 861
Bug fixes and other changes
-
Windows build fix by @ACSimon33 in PR 760
-
Added option to enable flat namespace on macOS by @ACSimon33 in PR 762
-
Fix bug in new test case for LAPACK 3.11 SLATRS3 by @dklyuchinskiy in PR 755
-
Check for NaNs in *GECON by @weslleyspereira in PR 765
-
Fixed bug in array bounds in complex syl01 test by @dklyuchinskiyin PR 758
-
Fix uninitialized M when quick return in DLARRD and SLARRD by @akobotov in PR 769
-
In LAPACKE tgsen, allocate iwork when ijob = 0. Fixes #772. by @mgates3 in PR 773
-
Fix SLATRS3 and CLATRS3 tests by @bartoldeman in PR 764
-
Fix uninitialized out variables in LARR functions by @echeresh in PR 775
-
Warnings supression in some LAPACKE functions by @jgpallero in PR 780
-
Revert "Warnings supression in some LAPACKE functions" by @langou in PR 781
-
Warnings supression and deletion of unnecessary check in some LAPACKE xLARFB functions by @jgpallero in PR 782
-
remove redundant space from xerbla call sbgv/hbgv by @dklyuchinskiy in PR 792
-
don’t subtract N_DEFLATED from istop twice by @thijssteel in PR 794
-
fix rfp test for DIAG = U by @dklyuchinskiy in PR 796
-
fix bug in complex precision tests (c|z)het21 by @EduardFedorenkov in PR 798
-
CMake: Disable TEST_FORTRAN_COMPILER by @jschueller in PR 761
-
Add minimum permissions to workflows by @gabibguti in PR 804
-
cmake: allow setting a prefix for the library names by @joseeroman in PR 810
-
Replace the (partially defined) constant index variable INDIBL in ?SBGVX and related by @martin-frbg in PR 807
-
CTGEVC, ZTGEVC: fix typo in description of VR argument by @svillemot in PR 812
-
Add Security Policy by @gabibguti in PR 819
-
extend tests for error exit sysv sytd2 gehd2 by @dklyuchinskiy in PR 795
-
CMake: avoid "make" in blas++ and lapack++ by @nim65s in PR 821
-
Reference actions by commit SHA by @gabibguti in PR 829
-
LAPACKE interfaces for [cz]unhr_col and [sd]orhr_col by @sknepper in PR 827
-
fix segfault problem when executing LAPACKE_*geqrt on row major #766 by @sbite0138 in PR 768
-
Adds comment related to zero-sized matrix B in GELSY by @weslleyspereira in PR 833
-
update brief descriptions of function purpose, Closes #230 by @weslleyspereira in PR 831
-
Fix scaling in (S/D)TGSNA, fix #103, thanks to @elivanova by @weslleyspereira in PR 830
-
Exits xLARUV when N < 1 by @weslleyspereira in PR 837
-
Create GitHub action to test CMake build system on Windows by @weslleyspereira in PR 524
-
Fix bug in lapacke_[s,d]geesx by @weslleyspereira in PR 836
-
Removes unused SMIN from bdsqr by @weslleyspereira in PR 832
-
Use a better (more informative) message when we say the compiler intr… by @weslleyspereira in PR 845
-
fix dlasd0 / slasd0 documentation issue by @mtowara in PR 855
-
Remove legacy warning for non IEEE 754 compliant machines by @angsch in PR 852
-
Add verbose build to CI by @mkrainiuk in PR 858
-
[cz]hetrd_hb2st.F, [sd]sytrd_sb2st.F OpenMP fixes by @chrwarm in PR 860
-
Correct the order of returned eigenvalue and eigenvectors for 2x2 matrices with IL=IU in C/D/S/Z/STEMR by @aravindh-krishnamoorthy in PR 867
-
fix nrhs=0 case in ?gelss by @eaberendeev in PR 876
-
Fix computation of uplo in LAPACKE_xlarfb by @vladimir-ch in PR 878
-
Fix actual arguments in some procedure calls by @mjacobse in PR 885
-
Removes usage of Experimental (interactive) mode in ctest by @weslleyspereira in PR 892
-
Updates the documentation of xGEMV and xGBMV related to when M=0 and N=0 by @weslleyspereira in PR 843
-
Add Scorecard by @gabibguti in PR 895
-
CMake config for IntelLLVM (ifx) and NVIDIA HPC SDK (nvfortran) by @ACSimon33 in PR 898
-
Fix build for CMake >= 3.27 by @scivision in PR 910
-
dtgex2: add 2 to iwork length to prevent OOB interaction in Dtgsy2 by @soypat in PR 907
-
Adds OpenSSF Scorecard badge by @weslleyspereira in PR 896
-
Fix issue #908 related to accumulation in xLASSQ by @weslleyspereira in PR 909
-
Apply ROUNDUP_LWORK function in lapack by @kleineLi in PR 904
-
Compilation of LAPACKE possibly independent from Fortran by @weslleyspereira in PR 834
-
Always use C as linker language for CBLAS by @weslleyspereira in PR 920
-
Uses Valgrind for ExperimentalMemCheck in ctest by @weslleyspereira in PR 844
-
Adding in quotes in cmake for Intel ifx and linux build by @colleeneb in PR 922
-
Fix complex BDSQR maxit by @pleshkovvli in PR 927
-
xORBDB6/xUNBDB6: fix a constant by @christoph-conrads in PR 928
-
Fixed Fortran preprocessor flag for NAG Fortran compiler by @ACSimon33 in PR 939
-
Fixed void main() for AppleClang by @ACSimon33 in PR 940
Developer list
-
Weslley da Silva Pereira (University of Colorado Denver, USA)
-
Igor Kozachenko (University of California, Berkeley, 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)
New Contributors
-
@dklyuchinskiy made their first contribution in PR 755
-
@bartoldeman made their first contribution in PR 764
-
@jgpallero made their first contribution in PR 780
-
@EduardFedorenkov made their first contribution in PR 798
-
@gabibguti made their first contribution in PR 804
-
@joseeroman made their first contribution in PR 810
-
@sbite0138 made their first contribution in PR 768
-
@mkrainiuk made their first contribution in PR 846
-
@aravindh-krishnamoorthy made their first contribution in PR 867
-
@eaberendeev made their first contribution in PR 876
-
@colleeneb made their first contribution in PR 922
-
@pleshkovvli made their first contribution in PR 927
Thanks to all our contributors!
-
Special Thanks to the Mathworks team: Penny Anderson, Mary Ann Freeman, Bobby Cheng, Pat Quillen, Christine Tobler, Heiko Weichelt.
-
Special Thanks to the AIMdyn Inc. team Igor Mezic and Maria Fonoberova.
The LAPACK team
Thanks you all!