【发布时间】:2015-01-22 23:02:28
【问题描述】:
我对使用 Eigen 求解稀疏矩阵方程很感兴趣。迭代求解器需要许多“临时”向量,这些向量在每次迭代期间用中间值进行更新。据我了解,当使用诸如共轭梯度法之类的迭代求解器时,这些向量通常在开始迭代之前分配一次,然后在每次迭代中重复使用以避免频繁的重新分配。从 ConjugateGradient 类中我可以看出,Eigen 在每次迭代时都会重新分配内存。熟悉Eigen的人能否告诉我我的理解是否正确?似乎有可能在分配过程中进行了某种巧妙的内存节省方案,结果实际上每次都没有重新分配内存,但我挖了下去,找不到这样的东西。或者,如果 Eigen 确实在每次通过循环时重新分配内存,与进行实际计算所需的时间相比,它是否是一个微不足道的负担?
【问题讨论】: