发布日期:06/28/21。

本材料基于国家科学基金会支持的工作和能源部。

LAPACK是田纳西大学提供的软件包加利福尼亚、伯克利、科罗拉多大学丹佛分校和NAG有限公司。。

1.支持和问题:

2.LAPACK 3.10.0:新增功能

这是一个主要版本,也解决了多个错误修复。

2.1. 安全缩放算法

Ed Anderson的贡献

添加SRC/la_constants.f90添加了SRC/la_xisnan。90层
删除BLAS/SRC/dnrm2.f添加BLAS/SRC/dnrm2.f90删除了BLAS/SRC/dznrm2.f添加了BLAS/SRC/dznrm2.f90删除BLAS/SRC/scnrm2.f添加BLAS/SRC/scnrm2.f90删除BLAS/SRC/snrm2.f添加BLAS/SRC/snrm2.f90删除BLAS/SRC/drotg.f添加BLAS/SRC/drotg.f90删除BLAS/SRC/zrotg.f添加BLAS/SRC/zrot.f90删除BLAS/SRC/crotg.f添加BLAS/SRC/crotg.f90删除了BLAS/SRC/srotg.f添加了BLAS/SRC/srogg.f90删除SRC/dlassq.f添加SRC/dlasq.f90删除SRC/zlassq.f添加SRC/zclassq.f90删除SRC/classq.f添加SRC/classesq.f90删除SRC/slassq.f添加SRC/slassq.f90删除SRC/dlartg.f添加SRC/dlartg.f90删除SRC/zlartg.f添加SRC/zlartg.f90删除SRC/clartg.f添加SRC/clartg.f90删除SRC/slartg.f添加SRC/slartg.f90

爱德华·安德森在他的论文中说https://doi.org/10.1145/3061665:

众所周知,平方和的平方根容易溢出和下溢。特别缩放中间结果,如在BLAS和LAPACK等数值软件中所做的,主要是避免了这个问题,但它仍然可能发生在可表示数字范围内的极值。更多正如最近版本的标准算法中所实现的那样,仔细缩放可能会出现在性能或清晰度的损失。这项工作重新实现了向量2-范数和Givens的生成1级BLAS的旋转以提高其性能和设计。此外,支持消极增量扩展到单个向量上的1级BLAS操作,以及综合测试套件包括所有1级BLAS。

此贡献用Edward的安全缩放代码和一些小修改替换了原来的xNRM2、xROTG、xLARTG、xLASSQ例程。

注意:此代码遵循Fortran90标准。

  • 新的Fortran90模块SRC/la_常量.f90扩展的功能安装/x灯具。(f)通过添加安全的缩放常数。

  • 新的Fortran90模块SRC/la_xisnan。90层扩展的功能SRC/xISNAN。(f)SRC/xLAISNAN公司。(f)通过添加使用ieee_is_nan(ieee_iss_nan)例行程序。

2.2. 多移位QZ算法的AED实现

出资人thijsteel钢

它大致基于我的有理QZ算法(https://github.com/thijsteel/multishift-multipole-rqz).

它的特点是:

  • 农业早期通货紧缩

  • 使用凸起的最佳填充进行多移位QZ扫描

  • 一种新的启发式算法,用于选择扫描窗口中的位置数

它没有以下特点:

  • 无限特征值的加窗压缩(只有当要压缩许多无限特征值时才有用,在这种情况下,您可能需要进行一些预处理)。

阿尔索xtgex2的两项精度改进:

  • Daan Camps在他的论文中已经证明,在交换1x1块时替换xtgex2中的条件可以提高准确性。已更改此条件和相应的误差公差以反映它。

  • Daan Camps的“在SCHUR和广义SCHUR形式中交换2×2个块”也表明,通过迭代细化和用基于SVD的方法代替QR分解,可以提高交换2x2个块的准确性。由于论文没有提到如何避免溢出,因此只实现了第一个改进。

2.3住户重建

新文件:SRC/sorhr_col.f新文件:SRC/dorhr_col.f新文件:SRC/cunhr_col.f新文件:SRC/zunhr_col.f新文件:SRC/dorgtsqr.f新文件:SRC/sorgtsqr。(f)
新文件:SRC/dgetsqrhrt.f新文件:SRC/dlarfb_gett.f新文件:SRC/dorgtsqr_row.f新文件:SRC/sgetsqrhrt.f新文件:SRC/slarfb_gett.f新文件:SRC/sorgtsqr_row.f新文件:SRC/cgetsqrhrt.f新文件:SRC/clarfb_gett.f新文件:SRC/cungtsqr_row.f新文件:SRC/zgetsqrhrt.f新文件:SRC/zlarfb_gett.f新文件:SRC/zungtsqr_row。(f)

GETSQRHRT是一个用于体态矩阵的QR分解例程。它基于LATSQR,但以与GEQRT相同的格式返回Q和R因子,即使用Q的紧凑WY表示。

这与其他依赖QR分解的LAPACK例程使用的格式相同。GETSQRRT使用ORGTSQR_ROW(它又称为LARFB_GETT)从TSQR因式分解构造正交矩阵,这是ORGTSQR的一个更有效的版本。

2.4 GESDD退货行为的变化

如果A有NaN条目,GESDD现在返回INFO=-4。

在3.9.0版和主版本中,GESDD将调用退出(0)而不是返回一些矩阵的错误代码。请参见第469期

2.5错误修复

有关详细信息,请参阅我们的Github存储库

2.6关于编译器依赖性的说明

一些LAPACK例程依赖于FORTRAN编译器中值得信赖的复数除法和ABS例程。此[链接](https://github.com/Reference-LAPACK/LAPACK/files/6672436/complexDivisionFound.txt)列出了LAPACK COMPLEX*16算法,这些算法包含与编译器相关的表单复数除法

真实/复杂或复杂/复杂

请参见第575期第577期以获得关于此主题的更完整的讨论。

3.开发者列表

本版本中涉及的LAPACK开发人员
  • 韦斯利·达·席尔瓦·佩雷拉(美国科罗拉多丹佛大学)

  • Julie Langou(美国田纳西大学)

  • Igor Kozachenko(美国加州大学伯克利分校)

主要研究人员
  • Jim Demmel(美国加州大学伯克利分校)

  • Jack Dongarra(美国田纳西大学和ORNL)

  • 朱利安·兰古(美国科罗拉多丹佛大学)

4.谢谢

Github供款明细在这里

5.错误修复