我想問一下數組的數學運算。我主要興趣在執行操作,例如:使用C++的矩陣代數
矢量產品:
C=A+B
C=A*B
其中A和B是陣列(或載體),和
矩陣產品:
D=E*F;
其中D [m] [n],E [m] [p],F [p] [n];
有誰能告訴我什麼是操縱大量數字的最有效方法?只有通過遍歷數組的元素纔有可能,或者有其他方法嗎?可以使用矢量和如何?
我想問一下數組的數學運算。我主要興趣在執行操作,例如:使用C++的矩陣代數
矢量產品:
C=A+B
C=A*B
其中A和B是陣列(或載體),和
矩陣產品:
D=E*F;
其中D [m] [n],E [m] [p],F [p] [n];
有誰能告訴我什麼是操縱大量數字的最有效方法?只有通過遍歷數組的元素纔有可能,或者有其他方法嗎?可以使用矢量和如何?
C++沒有附帶任何「數字聚合」處理功能,其中可能的例外是std::valarray
。 (編譯器供應商可能使valarray使用向量化操作,但通常他們不會)
C++規範沒有像描述的那樣具有數學結構。該語言確實提供了人們實施它們所需的所有功能。在那裏有很多圖書館,所以它只是讓你選擇一個符合你的要求的圖書館。
通過堆棧溢出問題的搜索可能會讓你知道從哪裏開始識別這些需求,如果你不知道它們的話。
退房Armadillo,它提供了大量的在C++接口矩陣功能。它支持LAPACK,這是MATLAB用於線性代數計算的。
順便說一句,受C++影響的D編程語言具有開箱即用的功能:) – vines
請參閱[閃電++](http://www.oonumerics.org/blitz/) –
取決於你想獲得的具體平臺。在低速端,您只需編寫一個循環,在您寫入GPGPU代碼的高端。 –