相結合我正在做大量的科學編程工作,並對Boost.Units提供了非常好的體驗,Boost.Units提供了編譯時間量的量綱分析(即標記數量與單位和從而通過經典的物理尺寸分析捕捉許多誤差)並且使用特徵2作爲線性代數。然而,Eigen沒有單位的概念,雖然你可以在特徵矩陣中設置標量,但它期望兩個量的乘法產生相同的類型,這對於單位來說顯然是不真實的。例如,代碼如:將一個線性代數庫與Boost :: Units
using boost::units::quantity;
namespace si = boost::units::si;
Eigen::Matrix< quantity<si::length>, 2, 1 > meter_vector;
quantity<si::area> norm = meter_vector.squaredNorm();
不起作用,即使它在邏輯上是正確的。
有支持單位的任何矩陣庫嗎?我知道這在過去是很難實現的,C++ 11和decltype
將使這更容易,但它肯定可以用C++ 03和模板特化。
爲了記錄,因爲我必須自己搜索一下:[閃電手冊3.7.1](http://www.oonumerics.org/blitz/docs/blitz_3.html#SEC90)告訴你如何提升用戶 - 定義的類型。感謝提示。 – thiton