文章预览
以下内容来自知乎,计算机视觉life整理,如有侵权联系删除 https://www.zhihu.com/question/28571059/answer/3057795309 作者 Sisyphus 欢迎来到C++数值优化的世界!Eigen能写的快和它的设计思路有关,涵盖了算法加速的几个方法。Eigen的设计思路,是把所有能优化的步骤放在编译时去优化。要想运行时变快,写Eigen代码的工程师需要显式地告诉Eigen矩阵的特性,告诉的越多,越能提供空间让编译器在编译时加速算法 比如一个矩阵乘法+ # include Eigen:: Matrixxd Jacobian_i = Eigen:: MatrixXd:: Random(10, 10); Eigen:: Matrixxd Jacobian_j = Eigen:: Matrixxd:: Random(10, 10); Eigen:: MatrixXd Hessian = Eigen:: Matrixxd:: Zero(10, 10); Hessian += Jacobian_i. transpose() * Jacobian_j; 这个是一个稠密矩阵相乘。首先需要知道的是Eigen并不是一步一步地先做转置,再去乘,而是使用lazy evaluation的方法。Lazy evaluti
………………………………