用于任意元素类型的 Haskell 线性代数矩阵库

标签 haskell matrix linear-algebra

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。




9年前关闭。




我正在寻找具有以下功能的 Haskell 线性代数库:

  • 矩阵乘法
  • 矩阵加法
  • 矩阵转置
  • 排名计算
  • 矩阵反转是一个加号

  • 并具有以下属性:
  • 任意元素(标量)类型(特别是不是 Storable 实例的元素类型)。我的元素是 Num 的一个实例,另外可以计算乘法逆。这些元素在数学上形成一个有限域 (𝔽2256)。这应该足以实现上述功能。
  • 任意矩阵大小(我可能需要 100x100 之类的东西,但矩阵大小将取决于用户的输入,因此它不应受内存或可用计算能力的限制)
  • 尽可能快,但我知道,由于任意(非 IntDouble或类似)类型。触摸元素时,至少有一个指针被取消引用
  • (用 Haskell 编写,这对我来说不是真正的要求,但由于我的元素不是 Storable 实例,所以库必须用 Haskell 编写)

  • 我已经非常努力地尝试并评估了所有看起来很有希望的东西(Hackage 上的大多数库都直接声明它们不会为我工作)。特别是我使用以下方法编写了测试代码:
  • hmatrix , 假设 Storable元素
  • Vec ,但 documentation状态:

    Low Dimension : Although the dimensionality is limited only by what GHC will handle, the library is meant for 2,3 and 4 dimensions. For general linear algebra, check out the excellent hmatrix library and blas bindings


  • 我查看了更多库的代码和文档,但似乎没有什么适合我的需求:-(。

    更新

    既然好像什么都没有,就开始了project on GitHub旨在开发这样的图书馆。当前状态非常简约,根本没有针对速度进行优化,只有最基本的功能有测试,因此应该可以工作。但是如果您有兴趣使用或帮助开发它:联系我(您可以在我的 web site 上找到我的邮件地址)或发送拉取请求。

    最佳答案

    好吧,我确实很确定我的答案有多大的相关性,但我对 GNU GSL 库有很好的经验,并且有一个 haskel 的包装器:

    http://hackage.haskell.org/package/bindings-gsl

    看看吧,也许对你有帮助

    关于用于任意元素类型的 Haskell 线性代数矩阵库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12288548/

    相关文章:

    Haskell 多行 Lambda 表达式

    haskell - Haskell 中可靠的立方根

    string - 在网格中查找一系列字符以形成字符串(一次向下或向右移动一步)

    java - 需要矩阵搜索算法

    c++ - c++ 中是否有任何免费的 ITERATIVE 线性系统求解器允许我输入任意初始猜测?

    list - 替换 Haskell 中的单个列表元素?

    haskell - optparse-applicative : Require at least one argument

    matlab - 删除包含 NaN 的列以及其他矩阵中的相应列

    python - 如何为Python准备方程组

    java - 更改 Apache Commons Math 中数字系统的基数