diff --git a/Eigen/src/Eigenvalues/RealSchur.h b/Eigen/src/Eigenvalues/RealSchur.h index 54a74e2f5..94bc34dd8 100644 --- a/Eigen/src/Eigenvalues/RealSchur.h +++ b/Eigen/src/Eigenvalues/RealSchur.h @@ -409,7 +409,7 @@ inline void RealSchur::computeShift(Index iu, Index iter, Scalar& ex shiftInfo.coeffRef(2) = m_matT.coeff(iu, iu - 1) * m_matT.coeff(iu - 1, iu); // Alternate exceptional shifting strategy every 16 iterations. - if (iter % 16 == 0) { + if (iter > 0 && iter % 16 == 0) { // Wilkinson's original ad hoc shift if (iter % 32 != 0) { exshift += shiftInfo.coeff(0);