This bugzilla service is closed. All entries have been migrated to
Bug 1394 - 'diagonal': is not a member of 'Eigen::Product<Derived,Eigen::SparseMatrix<double,1,int>,2>'
Summary: 'diagonal': is not a member of 'Eigen::Product<Derived,Eigen::SparseMatrix<do...
Alias: None
Product: Eigen
Classification: Unclassified
Component: Core - general (show other bugs)
Version: 3.3 (current stable)
Hardware: All All
: Normal Compilation Problem
Assignee: Nobody
Depends on:
Reported: 2017-02-17 19:12 UTC by cDc
Modified: 2019-12-04 16:49 UTC (History)
3 users (show)


Description cDc 2017-02-17 19:12:39 UTC
In SelfAdjointEigenSolver::compute() I get this error at compile time when used with:

typedef Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> Matrix;
typedef Eigen::SparseMatrix<double, Eigen::RowMajor> SparseMatrix;
SparseMatrix A(m, n);
const Eigen::SelfAdjointEigenSolver<Matrix> es(A.transpose()*A, Eigen::ComputeEigenvectors);

This used to work in 3.2.x
Comment 1 cDc 2017-02-17 19:20:20 UTC
If it helps, though it seems just a product of the original error, for the same line (417):

m_eivalues.coeffRef(0,0) = numext::real(matrix.diagonal()[0]);

I get also this error:

error C2672: 'Eigen::numext::real': no matching overloaded function found
Comment 3 Nobody 2019-12-04 16:49:54 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance:

Note You need to log in before you can comment on or make changes to this bug.