我需要找到提供计算舒尔补码功能的 C/C++ 库。我知道 MUMPS 和 Pastix,但我需要更多它们来在我的研究中比较它们。
你有其他图书馆的经验吗?
我需要找到提供计算舒尔补码功能的 C/C++ 库。我知道 MUMPS 和 Pastix,但我需要更多它们来在我的研究中比较它们。
你有其他图书馆的经验吗?
我的第一个建议是看看LAPACK(线性代数包)。它定义了一组接口,并且有几种优化的实现可用于不同的机器。就个人而言,我在ATLAS方面有很好的经验,这是一个提供大量自动调整的 LAPACK 实现。不过,这是前一段时间的事了,现在可能有更好的替代品。
请注意,在 LAPACK 网站上有指向其他项目的链接,例如 MAGMA,它类似于 LAPACK,但适用于具有多核节点和 GPU 的系统(不过,我自己从未尝试过那个)。
LAPACK 本身基于BLAS(基本线性代数),它本身就是一组接口,用于基本线性代数例程(矩阵-向量积、向量-向量积、矩阵-矩阵积等)。这里的优势再次是 BLAS 本身就是一组接口,并且可以使用不同的实现,其中一些经过高度优化(例如GOTO-BLAS)
我假设人们也可以直接使用 BLAS 来计算 Schur 补码使用矩阵乘积和反演的例程。
附录: Jack Dongarra 编制了一长串不同的 LA 图书馆,请参见此处。该列表还显示了库具有的功能(语言、密集/稀疏、真实/复杂等)。