我習慣了Eigen幾乎所有的數學線性代數工作。 最近,我發現Boost還提供了一個C++模板類庫,它提供了基本線性代數庫(Boost::uBLAS)。這讓我想知道我是否能夠僅僅基於boost來獲得我所有的工作,因爲它已經是我的代碼的主要庫。Boost :: uBLAS vs Eigen
在兩個仔細一看真的沒有讓我他們之間的明確區分:
- 的boost :: uBLAS庫:
的uBLAS提供密集,單元模板C++類和稀疏矢量,密集,身份,三角形,帶狀,對稱,厄密和稀疏矩陣。可以通過範圍,切片,適配器類和間接陣列構建向量和矩陣的視圖。該庫涵蓋了關於向量和矩陣的常用基本線性代數運算:像不同規範的減法,向量和矩陣的加法和減法,以及與向量的內積和外積,矩陣向量和矩陣矩陣乘積以及三角求解器的乘積。
...
- 徵:
它支持所有的矩陣大小,從小型固定大小的矩陣來任意大的密集矩陣,甚至稀疏矩陣。它支持所有標準數字類型,包括std :: complex,整數,並且可以輕鬆擴展到自定義數字類型。
它支持各種矩陣分解和幾何特徵。
其不支持模塊的生態系統提供了許多專業功能,如非線性優化,矩陣函數,多項式求解器,FFT等等。
...
有誰對他們的主要差別,並在此基礎上更好的主意,我們可以在它們之間進行選擇?
Eigen也使用表達模板。 –
@quant_dev我說得更清楚了。 – kangshiyin
請注意,這些基準很舊(從2011年開始),而不是獨立的。 –