のは、私は一定である4つの行列、および変数である1人の行列があるとしましょう:再利用固有式テンプレート
Eigen::MatrixXf M,N,O,P; // Fixed
Eigen::MatrixXf Q; // Value changes
をそして私は評価したい式を持っている:
auto myExpression = M*N*O*P*Q;
私は、次の操作を実行した場合:
for (int i = 0; i<5; ++i) {
Q = MatrixXf::Random(SomeSize,SomeSize);
MatrixXf result = myExpression.eval();
}
予想通り、この作品は、でしょうか? Qの新しい値から正しい結果が得られますか?それらはすぐに評価されるため
auto expr = M.lu().solve(O+P)+N*Q;
がアイゲン3.2では、あなたはほかに行列積と注意する必要があります:あなたの式のような行列分解を伴わない場合は、固有3.3では
3.3で動作するという事実から独立していますが、意図的にあなたのコードを難読化し、Eigen 3.2と互換性がないようにしたい場合を除き、悪い考えです... – chtz