如何使用hmatrix乘以稀疏矩阵

时间:2016-11-19 12:05:06

标签: haskell matrix-multiplication

我有一个维度m的矩阵3329×3329,其中包含许多零字段,我想计算m^9。 在使用matrix包(Data.Matrix易于使用)尝试此操作后,我认为稀疏矩阵可以在内存使用方面以及可能的计算速度方面更好地表示这一点。所以我试图弄清楚如何使用hmatrix包。我已经设法创建了一个稀疏矩阵:

module Example where

import Numeric.LinearAlgebra as LA

assocExample :: AssocMatrix
assocExample = [((0,0), 1),((3329,5),1)]

sparseExample :: GMatrix
sparseExample = LA.mkSparse assocExample

此时我的问题似乎是我有GMatrix,但对于乘法运算符(<>),我需要Matrix t。 通过查看关于hackage的hmatrix文档,我没有设法弄清楚如何在这里获得Matrix t

我也很快注视introduction to hmatrix,但是sparse这个词甚至没有被提及。

我的预感是这应该很容易做到,但我错过了一些简单的事情。

1 个答案:

答案 0 :(得分:1)

据我所知,稀疏矩阵在hmatrix中相当年轻。通过文档查看,似乎没有稀疏矩阵的产物。你必须自己实现它。

编辑:如果您这样做,请在此处发表评论:https://github.com/albertoruiz/hmatrix/issues/162(也证实了我上面的陈述)