【发布时间】:2016-12-14 19:56:18
【问题描述】:
我正在将 Eigen 用于我正在进行的项目,其中运行时性能绝对是至关重要的(需要满足实时约束)。
到目前为止,Eigen 给了我相当不错的表现。但是,我需要评估 Kronecker 产品。我正在使用 Eigen 不受支持的 KroneckerProduct 模块,但我认为它不适合我的需求。
我用来计算 Kronecker 乘积的两个矩阵具有固定大小(在编译时已知)和结构。一个矩阵是正方形和对角线,让我们假设它是一个单位矩阵。另一种是小方阵。在代码中,像这样:
MatrixXf I = MatrixXf::Identity(4,4);
MatrixXf X = MatrixXf::Random(8,8);
MatrixXf P = kroneckerProduct(I,X);
由于 I 是对角线,我猜我们可以加快速度,因为我们只需要通过标量乘法计算 4 个矩阵即可计算所有元素(因为许多元素将为零)。
使用 Eigen 最快、最有效的方法是什么?
【问题讨论】: