2012-04-10 173 views
1

我正在寻找一个快速库来计算Java中的SVD(奇异值分解)。 我已经尝试了一些我发现的库,并且我已经做了一些基准测试(这些值显示了我的基准测试平均运行时间......)这不是一个真正有效的基准测试,但是它已经在我需要的数据上进行了测试过程,所以对我来说足够..快速SVD算法

  1. Jama - 152 102ms
  2. ujmp - 156 603ms
  3. Commons Math - 183 877ms
  4. colt - 203 866ms
  5. jblas - 方法要慢...

我真的不希望找到比贾马更快的东西,但我可以试试看......你能推荐我一些其他的图书馆吗?谢谢!

编辑: 我发现用线性代数库的基准测试中nice page,所以我想这结束这个问题... EJML看起来很有希望...

+0

你希望有什么魔力?为什么你认为使用另一个图书馆可以提高一个数量级? – duffymo 2012-04-10 00:36:19

+0

我不希望有魔法,我只是想找到最快的解决方案... – 2012-04-10 00:44:17

+0

我很好奇我自己。我会抛出http://arma.sourceforge.net/进行比较 - 应该是最快的C++库之一。如果你发现一些与此相当的东西,那么我会说你处于“足够好”的范畴。但请确保在基准测试之前预热JVM。 JIT(重新)编译可以真正加快速度。 – 2012-04-10 02:59:23

回答

2

我找到了线性代数库的this page with benchmark,所以我想这个问题的结论是... EJML看起来很有前途......我找到了一个线性代数库的基准的好页面,所以我想这个问题结束了。 .. EJML看起来非常好,它的工作速度比我的数据快了近2倍......