有没有四双算术稀疏矩阵包?

计算科学 稀疏矩阵 矩阵 条件数
2021-12-09 06:06:33

我正在研究一些病态的大型稀疏线性方程组。我想用双双算术或四双算术来解决它们。我知道有一个名为 MPACK 的包是 Nakata Maho 开发的,它可以在 quad-double 算术下进行数值线性代数计算。但是,它是为密集矩阵设计的,而不是稀疏矩阵。你知道是否有任何四倍算术稀疏矩阵包吗?

4个回答

3.2版开始,PETSc 支持 gcc/gfortran 4.6 和更高版本上的稀疏四精度计算。

您将需要四精度 BLAS 和 LAPACK,PETSc 可以通过以下(部分)配置命令为您提供(以及四精度支持):

./configure --with-precision=__float128 --download-f2cblaslapack

有关更多信息,请参阅常见问题解答。

另外,我同意nOOb,如果可能的话,在切换到四精度之前尝试对系统进行正则化。

病态系统通过正则化比通过增加数值精度更好地解决。搜索“regularisation ill-posed”以获取血腥细节。

我可以试试 Trilinos 库。他们在 Tpetra 下有模板化的稀疏矩阵库(应该替换 Epetra,他们原来的稀疏矩阵库)。您可以模板化 double、complex、quad 等,它们可能拥有仅次于 PETSc 的最大求解器选择(直接和迭代)。

编辑:阅读评论后,Tpetra 的直接用途似乎有点可疑 wrt 四精度...

MATLAB 的多精度计算工具箱支持稀疏矩阵,并专门针对四倍精度计算进行了优化。

以下是四精度稀疏求解器的时序细节: 稀疏矩阵的直接求解器

(我是工具箱的作者)。