diff --git a/Eigen/src/SVD/SVD.h b/Eigen/src/SVD/SVD.h index 9b7d955c7..acc567f94 100644 --- a/Eigen/src/SVD/SVD.h +++ b/Eigen/src/SVD/SVD.h @@ -393,8 +393,9 @@ void SVD::compute(const MatrixType& matrix) { int k; W.end(n-i).minCoeff(&k); - if (k != i) + if (k != 0) { + k += i; std::swap(W[k],W[i]); A.col(i).swap(A.col(k)); V.col(i).swap(V.col(k));