2012-04-10 205 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倍......