Optimization 特征3:按系数适当乘法

Optimization 特征3:按系数适当乘法,optimization,eigen,eigen3,Optimization,Eigen,Eigen3,如何使用Eigen3就地执行元素乘法 做 运行到位?或者是 a.array() *= b.array(); 就风格和性能而言,更好的解决方案是什么?这两个表达式应该生成相同的代码(使用合理优化的编译器),因此这更像是一个品味问题 如果您主要使用a和b执行元素操作,则应将它们声明为Eigen::Array(而不是Eigen::Matrix),只需写入a*=b。如果以后需要以矩阵方式访问a或b,您仍然可以使用a.matrix() a.array() *= b.array();

如何使用Eigen3就地执行元素乘法

运行到位?或者是

a.array() *= b.array();

就风格和性能而言,更好的解决方案是什么?

这两个表达式应该生成相同的代码(使用合理优化的编译器),因此这更像是一个品味问题

如果您主要使用
a
b
执行元素操作,则应将它们声明为
Eigen::Array
(而不是
Eigen::Matrix
),只需写入
a*=b。如果以后需要以矩阵方式访问
a
b
,您仍然可以使用
a.matrix()

a.array() *= b.array();