【问题标题】:Sparse Matrix Libraries for RubyRuby 的稀疏矩阵库
【发布时间】:2011-10-07 11:41:54
【问题描述】:

我正在寻找可以从 Ruby 中使用的稀疏矩阵库。我目前正在使用“gsl”gem 提供的GNU Scientific Library bindings,但如果我使用专用的稀疏矩阵库,我的应用程序会得到更好的优化。我调查了linalgNArray 库。这三个库都不支持稀疏矩阵优化存储或操作。

有没有我遗漏的东西 - 或者现有的 C 库可以为其编写绑定?我更喜欢前者而不是后者,因为我以前没有在 Ruby 中编写过 C 绑定,但我愿意尝试。

【问题讨论】:

    标签: ruby math linear-algebra scientific-computing sparse-matrix


    【解决方案1】:

    就像上面提到的比尔一样,纯 ruby​​ 解释会比你想要的慢,但可能有利于原型设计。我一直在 https://github.com/hmcfletch/sparse-matrix 上开发这样一个库@

    我还没有将它作为 gem 发布,还有更多工作要做,但是看看你是否还有需要。

    【讨论】:

    • 太棒了,谢谢。我以前看过你的图书馆,但似乎你做了一些相当大的改变。非常感谢!
    • @HMCFletch,对合并到 SciRuby 有兴趣吗?我们正在进行 narray 重写,我正要开始编写稀疏矩阵。
    【解决方案2】:

    纯红宝石解决方案会非常缓慢。我很想选择 MTJ (http://code.google.com/p/matrix-toolkits-java/) 之类的东西并在 JRuby 下使用它。

    那里有一堆 java 代码;其中大部分都非常成熟,尽管我对空间的了解不足以推荐特定的库。我可以告诉你,我经常使用 jruby 中的 java,使用起来很愉快。

    【讨论】:

    • 这看起来很合适,谢谢。我仍然对使用 FFI 绑定的东西感兴趣,以便它可以与不同的 ruby​​ 版本一起使用,但这看起来是一个好方法。我会看看这个库,看看我是否可以让它与 JRuby 一起工作。
    【解决方案3】:

    你见过SciRuby吗?

    我们目前没有实现稀疏矩阵,但我们正在努力。在 Masahiro Tanaka 的支持下,我们也在重写 NArray。

    一个目标是让一切都在纯 Ruby、C(通常通过 GSL 绑定)和 Java for JRuby 中运行。 (如果 GSL 等不可用,则纯 Ruby 将成为后备。)

    旁注:这个问题的答案很糟糕。我把它贴在这里主要是为了让其他碰巧从事此类工作的人知道在哪里可以找到我们。 =)

    【讨论】:

    • 哇,不,我没有 - 很久以前有一个科学红宝石项目,但我没有意识到它仍然活跃。谢谢!
    • 您是否一直在了解最新情况? NMatrix 的第一个 alpha 版本已经发布。 gem install nmatrix。它是 SciRuby 的一部分,支持 list-of-list 和 yale sparse。
    猜你喜欢
    • 2015-03-19
    • 1970-01-01
    • 2018-01-19
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多