是否有四对偶算术稀疏矩阵包?


10

我正在研究一些病态的大型稀疏线性方程组。我想使用双精度双精度算术或四进制双精度算术来解决它们。我知道有一个由Nakata Maho开发的名为MPACK的程序包,它可以在四对偶算术下执行数值线性代数计算。但是,它是为密集矩阵而不是稀疏矩阵设计的。您是否知道是否有四重对偶算术稀疏矩阵包?


您正在使用哪种矩阵?是Hermetian的symmetrc,是肯定的吗?您要执行稀疏LU还是使用迭代方法?
维克多·刘

Answers:


3

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

您将需要一个四精度BLAS和LAPACK,PETSc可以使用以下(部分)configure命令向您提供这些精度:

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

有关更多信息,请参阅FAQ

另外,我也同意nOOb,如果可能的话,请尝试使系统规范化,然后再切换到四精度模式。


1
这是四精度(128位实数),而不是四双精度(256位实数)。也就是说,四精度通常足以理解双精度遇到的稳定性问题,并且通常您需要缩放系统并离散化,以便双精度足以满足生产需求。
杰德·布朗

2

通过正则化比通过增加数值精度更好地解决病态系统。搜索“正规化不适定”以获取详细信息。


2

我可以尝试Trilinos库。他们在Tpetra下建立了模板化的稀疏矩阵库(应该替代其最初的稀疏矩阵库Epetra)。您可以模板化double,complex,quad等,它们可能是PETSc旁边最多的求解器选择(直接求解和迭代求解)。

编辑:阅读评论后,Tpetra的即时实用性似乎对wrt quad精度有点可疑...


不幸的是,大多数求解器尚未与Tpetra一起使用:-(
Wolfgang Bangerth 2013年

那真不幸。我满怀希望,但不确定Tpetra的发展已经走了多大(因此“应该取代Epetra”:P)。我认为至少Belos库(即Trilinos解算器不基于第三方代码包装器)支持Tpetra吗?
陈慧娴

我认为这里有Belos2。可以肯定的是,Trilinos项目将他们的资源放在Tpetra的后面,它将成为将来的标准软件包。我认为他们还不在那里。
Wolfgang Bangerth,2013年

我什至没有意识到__float128Tpetra的支持,更不用说四重了。Tpetra不是独立的也不是全部标题,即使这样,诸如此类也std::complex只能与floatand一起使用double
杰德·布朗

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.