【问题标题】:C API Library for Solving Sparse Systems of Linear Equations?用于求解线性方程的稀疏系统的 C API 库?
【发布时间】:2011-12-30 17:35:36
【问题描述】:

我需要从一个用 D 编写的程序求解一个大型、稀疏的线性方程组。理想情况下,我想要一个具有 D 风格界面的库,但我怀疑是否存在。但是,D 可以直接访问 C API。因此,请推荐一些解决大型稀疏线性方程组的库,具有以下特点:

  1. 公开 C API。

  2. 免费/开源。最好也是非 copyleft,但这不是硬性要求。

  3. 经过充分测试和调试。易于安装和使用。不是由学者写的,只是为了获得一篇关于他们的方法的论文,然后完全无人维护。

【问题讨论】:

    标签: c linear-algebra sparse-matrix equations


    【解决方案1】:

    稀疏问题的经典库是suite-sparse。您在许多系统上都有软件包。 Matlab 内部使用它。

    【讨论】:

    • 我还不能评论你的帖子(没有足够的代表......)。但我特别欣赏你对学术成果的印象。顺便说一句,套件稀疏已由学者制作并维护。
    • 我个人可以担保这段代码。我在我的应用程序中使用它,我从 Tim Davis 那里看到的一切都是最高质量的。
    • 我要指出 Tim Davis 的代码不能免费用于商业用途。如果您自己有商业产品,那么您会发现他的价格非常合理。我个人使用的 CSparse 非常物有所值。
    • @David:我刚看了。 CSparse 实际上是 LGPL。
    • 好的,那么你必须提供一个共享库,或者放弃你的代码。
    【解决方案2】:

    我的错,我把以前用的 LAPACK 和以前用的比较多的 ARPACK 纠结在一起了。

    这里是 arpack http://www.caam.rice.edu/~kristyn/parpack_home.html 的链接: 该软件包旨在计算一般 n × n 矩阵 A 的一些特征值和相应的特征向量。它最适合大型稀疏或结构化矩阵。

    这里是线性代数库比较的链接:

    http://www.netlib.org/utk/people/JackDongarra/la-sw.html

    你可以在那里找到 SparseLib++,这里提到了 arpack 和更多矩阵形式的库。

    【讨论】:

    • 如果没有在巨大的 LAPACK 中调用稀疏代码,这是一个非答案。您可以编辑以提供缺失的详细信息吗?
    • @David:好点子。我现在实际上正在使用 LAPACK(虽然是一个包装器,而不是直接使用),我的印象是它没有任何稀疏的支持。如果我错了,我很乐意得到纠正,因为这会让我的生活更轻松。
    • LAPACK 本身不做稀疏矩阵。 netlib 存储库有很多不错的选择。
    【解决方案3】:

    有一个专门的包叫CSPARSE,是用C写的,好像是基于[david2006direct]实现的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-13
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多