2
我感興趣的是使用特徵來求解稀疏矩陣方程。迭代求解器需要在每次迭代期間用中間值更新的許多「劃痕」向量。據我所知,當使用迭代求解器如共軛梯度法時,這些向量通常在開始迭代之前分配一次,然後在每次迭代時重複使用以避免頻繁重新分配。就我看到的ConjugateGradient類而言,Eigen可以在每次迭代時重新分配內存。能否熟悉Eigen的人告訴我,我的理解是否正確?看起來有可能在分配過程中出現了某種聰明的節省內存的方案,其結果是內存每次都不會實際重新分配,但是我挖了下來,找不到這樣的東西。或者,如果Eigen確實在每次通過循環時都重新分配內存,那麼與進行實際計算所需的時間相比,這是否是一種無關緊要的負擔?Eigen中的迭代求解器在每次迭代中分配內存嗎?
你說得很對 - 謝謝你讓我變直!我誤解了代碼。我也關注 p = z + beta * p;但我發現Eigen有相當不錯的線性代數表達式模板(http://eigen.tuxfamily.org/dox/group__TutorialMatrixArithmetic.html) – 2014-11-25 22:49:00