NaN在Eigen的BDCSVD中

时间:2018-01-23 14:53:26

标签: c++ matrix eigen svd

我在我的C ++程序中使用Eigen来实现高效的Tensor-Storage并出现错误。

如果我使用BDCSVD-Module计算(非常简单的)奇异值分解,一切都会崩溃。 当我尝试计算

时出现错误
int n = 512;
Eigen::MatrixXd A = n * Eigen::MatrixXd::Ones(n, n);
Eigen::BDCSVD<Eigen::MatrixXd> SVD(A, Eigen::ComputeThinU | Eigen::ComputeThinV);

这应该给我奇异值和稀U和V矩阵。由于矩阵由一大堆512组成,因此矩阵仅具有等级1。 JacobiSVD模块给出了正确的结果,BDCSVD给了我一堆纳米值。他们来自哪里?

我在版本14.0.25431.01中使用Visual Studio 15并根据Eigen IDE-Page设置了所有内容,这种情况发生在调试或发布模式,32位或64位。

在更多&#34;随机&#34; - 类似大小的示例中,BCD的表现优于Jacobi 30倍或更多,所以我真的很想使用BCD。

0 个答案:

没有答案