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

Joh*_*iss 30 haskell matrix linear-algebra

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

  • 矩阵乘法
  • 矩阵添加
  • 矩阵换位
  • 排名计算
  • 矩阵求逆是一个优点

并具有以下属性:

  • 任意元素(标量)类型(在那些特定元素类型 Storable实例).我的元素是一个实例Num,另外可以计算乘法逆.元素在数学上形成有限域(2 256).这应该足以实现上述功能.
  • 任意矩阵大小(我可能需要100x100之类的东西,但是矩阵大小将取决于用户的输入,所以除了内存或可用的计算能力之外,它不应受其他任何限制)
  • 尽可能快,但我知道,对于任意元素库可能会不喜欢这样做,因为任意(非的间接的工作(通过FFI接口),一个C/Fortran语言库执行Int,Double或类似的)类型.触摸元素时,至少有一个指针被解除引用
  • (用Haskell编写,这对我来说不是真正的要求,但由于我的元素不是Storable实例,所以库必须用Haskell编写)

我已经非常努力地评估了看起来很有希望的一切(Hackage上的大多数库都直接表明它们不适合我).特别是我用以下方法编写了测试代码

  • hmatrix,假设Storable元素
  • Vec,但文档说明:

    低维度:虽然维度仅受GHC处理的限制,但该库适用于2,3维和4维.对于一般线性代数,请查看优秀的hmatrix库并进行绑定

我查看了更多库的代码和文档,但似乎没有什么能满足我的需求:-(.

更新

由于似乎什么都没有,我在GitHub上开始了一个项目,旨在开发这样一个库.当前状态非常简约,根本没有针对速度进行优化,只有最基本的功能才有测试,因此应该可以工作.但是,如果您有兴趣使用或帮助开发它:联系我(您将在我的网站上找到我的邮件地址)或发送拉取请求.

xhu*_*dik -2

好吧,我确实注意到我的答案有多少相关性,但我在 GNU GSL 库方面拥有良好的经验,并且有一个 Haskel 的包装器:

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

看看吧,也许会对你有帮助