您對N維數組使用哪個庫?用於數組,矩陣,向量和經典線性代數運算的C++庫
我在工作中使用閃電++,我真的不喜歡它的某些方面。 它的某些方面甚至是危險的。需要在使用operator =之前調整大小 。 A(Range :: all(),Range :: all())會爲(0,0) 矩陣等投射,線性代數運算將通過clapack完成 。
我用過並且愛過eigen。我很欣賞它的「全頭」的實施, C++的語法糖,和所有的線性代數運算 我需要的存在(矩陣乘法,系統分辨率,喬萊斯基...)
你在使用?
您對N維數組使用哪個庫?用於數組,矩陣,向量和經典線性代數運算的C++庫
我在工作中使用閃電++,我真的不喜歡它的某些方面。 它的某些方面甚至是危險的。需要在使用operator =之前調整大小 。 A(Range :: all(),Range :: all())會爲(0,0) 矩陣等投射,線性代數運算將通過clapack完成 。
我用過並且愛過eigen。我很欣賞它的「全頭」的實施, C++的語法糖,和所有的線性代數運算 我需要的存在(矩陣乘法,系統分辨率,喬萊斯基...)
你在使用?
boost::array還有boost::MultiArray。還有一個相當不錯的線性代數包在提升叫uBLAS
也有armadillo我在某些項目中使用。從他們的網站:
犰狳是一個C++線性代數庫(矩陣數學)瞄向 和速度之間的良好平衡易用性 。作爲三角函數和 統計函數的一個子集,支持整數,浮點數和 複數以及 。各種矩陣 分解提供通過 可選與LAPACK和 ATLAS庫集成。
採用延遲評估方法(編譯期間)至 將幾個操作合併爲一個 ,並減少(或消除)臨時對象的需求。這通過遞歸模板和 模板元編程完成 。如果C++已被確定爲選擇 的語言
該庫是有用(由於速度和/或整合 能力),而不是另一種語言 像Matlab®或倍頻。它的 是在 的許可證下分發的,在開放源代碼和 商業上下文中都是有用的。
犰狳主要在NICTA(澳大利亞)開發, 貢獻於世界各地。
+1看起來不錯,「平衡性好」。 有沒有人比較它的速度突擊,numpy ... 在www.scipy.org/PerformancePython laplace.py? – denis 2009-12-14 14:26:43
+1爲經驗比較的需要。我們需要某種類型的庫,以便可以開始爲不同的編譯器,操作系統收集結果...... – 2009-12-14 14:30:06
我們多年來成功地使用了TNT。然而,我們正在向內部開發的解決方案轉變,但有足夠的問題。對我們來說最大的兩個問題是:
如果這些都不是問題,那麼它們對於很多常見陣列任務來說都相當方便。
我明白你在問什麼庫人們用於數學數組,而不是「C++數組」?如果是這樣,你應該考慮在你的問題更具體:) – larsmoa 2009-12-07 14:52:23
爲什麼你想要數組的基本矩陣操作?或許你的問題應該是關於* matrix *類的。 – jalf 2009-12-07 14:54:45
clapack有什麼問題? (或爲什麼它太「鈍」?)真的不清楚你在找什麼。 – jalf 2009-12-07 14:59:45