我有一个肯定的矩阵,我想用Cholesky来解决它。我使用Eigen并执行此操作:
VectorXd x1 =A1.ldlt().solve(B1); //35.7ms
超过100次运行,平均为35.7ms。这是正常的吗?我自己的代码可以在10ms内执行,使用Red Hat和Intel i7-3770 3.4 GHz。
如何加快速度?矩阵大小为241x241,矢量为241。
答案 0 :(得分:3)
确保您启用了编译器的优化。例如,对于gcc或clang,您可以使用:
-O2 -msse2 -DNDEBUG
对于这样的矩阵大小,在i7 @ 2.6 GHz核心上,Eigen需要0.8ms。