fix bug #410: fix a possible out of range access in EigenSolver

(transplanted from a108216af168730df6e4b69ebe92128cb001f775
)
This commit is contained in:
Gael Guennebaud 2012-01-25 19:02:31 +01:00
parent fd52daae87
commit 2c2b7f4173

View File

@ -339,7 +339,7 @@ typename EigenSolver<MatrixType>::EigenvectorsType EigenSolver<MatrixType>::eige
EigenvectorsType matV(n,n);
for (Index j=0; j<n; ++j)
{
if (internal::isMuchSmallerThan(internal::imag(m_eivalues.coeff(j)), internal::real(m_eivalues.coeff(j))))
if (internal::isMuchSmallerThan(internal::imag(m_eivalues.coeff(j)), internal::real(m_eivalues.coeff(j))) || j+1==n)
{
// we have a real eigen value
matV.col(j) = m_eivec.col(j).template cast<ComplexScalar>();