[eigen] bug in the Eigen solver |
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
Hello all, I found a bug in EigenSolver.h, when you want to use the pseudo eigen vectors (some of them are computed correctly, some not). Here is a a code snippet that triggers the bug: const int N=14; const int M=7; Eigen::IOFormat fmt(10, Eigen::AlignCols, ", ", ";\n", "", "", "[", "]"); MatrixXd H=MatrixXd::Random(N,N); Eigen::EigenSolver<MatrixXd> es(H); cout<<"REVal = "<<es.pseudoEigenvalueMatrix().format(fmt)<<"\n"; cout<<"REVec = "<<es.pseudoEigenvectors().format(fmt)<<"\n"; const MatrixXd & realEigenVecs = es.pseudoEigenvectors(); const MatrixXd & realEigenVals = es.pseudoEigenvalueMatrix(); cout<<"EVDiff = "<<(H*realEigenVecs-realEigenVecs*realEigenVals).eval().format(fmt)<<endl; I will be extremely happy if you could take some time to fix it. Thanks! Also, there is a method for extracting the real part of a matrix (.real()). Can you add a .imag() to do the same with the imaginary part? Best regards Tim Hunter -- Timothy Hunter Student (Stanford University) T. 404 421 3075 |
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |