2010-08-09 69 views
4

在C++中代表稀疏測試者的適當數據結構是什麼? 想到的第一個選項是boost::unordered_map,因爲它允許的元素等類似下面的快速設置和檢索操作:表示稀疏張量的數據結構?

A(i,j,k,l) = 5 

不過,我也希望能夠在一個單一的指標做收縮,這將涉及在指數

C(i,j,k,m) = A(i,j,k,l)*B(l,m) 

的一個總和,它是多麼容易將是實現該操作符與boost::unordered_map?有更合適的數據結構嗎?

+1

每個維度都稀疏嗎? 你可以在ublas :: sparse_matrix的數組或者地圖上實現包裝。 – Anycorn 2010-08-09 22:29:43

回答

0

有張庫中可用,如:

http://www.codeproject.com/KB/recipes/tensor.aspx 

http://cadadr.org/fm/package/ftensor.html 

任何問題與那些?您可以通過使用地圖獲得更多的張量操作。

+0

您提到的庫都使用稠密張量,並且我需要使用稀疏張量,因爲張量的尺寸太大而無法有效地表示爲密集張量。 – dzhelil 2010-08-09 22:13:56