This bugzilla service is closed. All entries have been migrated to
Bug 865 - SelfAdjointEigenSolver::compute() should work with C++11 move semantics when available.
Summary: SelfAdjointEigenSolver::compute() should work with C++11 move semantics when ...
Alias: None
Product: Eigen
Classification: Unclassified
Component: Eigenvalues (show other bugs)
Version: unspecified
Hardware: All All
: Normal Feature Request
Assignee: Nobody
Keywords: JuniorJob
Depends on:
Reported: 2014-08-26 06:50 UTC by Jim Garrison
Modified: 2019-12-04 13:38 UTC (History)
4 users (show)


Description Jim Garrison 2014-08-26 06:50:46 UTC
Currently, SelfAdjointEigenSolver::compute() takes a matrix by const reference.  It then copies this matrix (or, rather, a lower triangular view of it if not using MKL) to m_eivec, and operates only on m_eivec throughout the remainder of the calculation.  This is suboptimal, as it means that the original matrix must be stored in memory for the duration of the calculation, even if it is to be thrown away immediately afterward.  If SelfAdjointEigenSolver were to support C++11 move semantics, the user could avoid this inefficiency, saving nearly a factor of two on the amount of memory needed to diagonalize a matrix.
Comment 1 Gael Guennebaud 2014-08-26 13:14:12 UTC
Patch welcome. Note that we already have the macro EIGEN_HAVE_RVALUE_REFERENCES to detect whether rvalue references can be used.
Comment 2 Nobody 2019-12-04 13:38:45 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.