如何通过双向量与特征3有效地乘以布尔矩阵?

时间:2017-05-01 05:55:29

标签: c++ casting matrix-multiplication eigen3

我想计算r = A * b,其中A是包含大约一半0和一半的矩阵,b是双向量。

MatrixXd Ad;
MatrixXb Ab; // bool matrix
VectorXd b, r;

我试过了:

1) Ad * b 
2) r(k)=Ab.row(k).transpose().array().select(b,0).sum()
3) Ab.cast<double>() * b
4) Ab.cast<double>().sparseView() * b

1比2,3和4快,尽管2似乎是最有效的。 A在我的项目中很大(> 10k * 1000k),所以我不想使用1.

是否有更有效的方法来计算A * b而不是1与Eigen 3?

谢谢!

0 个答案:

没有答案