Computes the symmetric eigenvalue decomposition of a symmetric matrix, \(X=U.D.U'\), where \(U\) is a matrix of orthogonal eigenvectors and \(D\) is a diagonal matrix of eigenvalues. The result is similar to that of eigen(.,symmetric=TRUE)
but its evaluation uses the SelfAdjointEigenSolver
function from the Eigen
C++ library. No symmetry check is performed.
This function was introduced to circumvent a bug in LAPACK (bug 113 in http://www.netlib.org/lapack/bug_list.html; originally https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=15211). However, this bug has been fixed, and sym_eigen
may be less accurate than the LAPACK one. It is no longer used is spaMM
with default options (only the superseded functiondesignL.from.Corr
) may still call it). The structure of its return value was changed in spaMM version 2.4.123.