2011-11-03 62 views
2

我使用動態編程閱讀了一篇關於矩陣嵌套乘積優化的文章,我想看看它是如何在boost :: uBLAS中實現的。boost :: uBLAS如何處理矩陣的嵌套產品?

我不知道我的理解the documentation(他們談論它在頁面的最末端),但似乎他們處理這個問題。當你寫R = prod(A, prod(B,C));,圖書館計算A x (B x C)(A x B) x C取決於ABC大小。

如何實現?圖書館如何「移動括號」?在編寫這樣的代碼行時,我認爲prod的參數將被評估,然後運行該函數。

FAQ提到表達模板的概念。它是鏈接的嗎?

回答

1

是,表達模板(你可以在名稱爲「表達式樹」找到)參與。

基本上,prod不會返回結果,而是包含操作(矩陣乘法)的包裝器對象和指向兩個輸入的指針。如果prod被這種包裝器作爲輸入調用,它可以應用重新排序優化。

但是,從我的那個頁面的閱讀,沒有這樣的優化應用(它說,它的榮譽包圍結構)。