diff --git a/Eigen/src/Eigenvalues/ComplexSchur.h b/Eigen/src/Eigenvalues/ComplexSchur.h index 8874aa257..52d0fc661 100644 --- a/Eigen/src/Eigenvalues/ComplexSchur.h +++ b/Eigen/src/Eigenvalues/ComplexSchur.h @@ -352,16 +352,16 @@ void ComplexSchur::compute(const MatrixType& matrix, bool skipU) ComplexScalar shift = computeShift(iu, iter); PlanarRotation rot; rot.makeGivens(m_matT.coeff(il,il) - shift, m_matT.coeff(il+1,il)); - m_matT.block(0,il,n,n-il).applyOnTheLeft(il, il+1, rot.adjoint()); - m_matT.block(0,0,std::min(il+2,iu)+1,n).applyOnTheRight(il, il+1, rot); + m_matT.rightCols(n-il).applyOnTheLeft(il, il+1, rot.adjoint()); + m_matT.topRows(std::min(il+2,iu)+1).applyOnTheRight(il, il+1, rot); if(!skipU) m_matU.applyOnTheRight(il, il+1, rot); for(int i=il+1 ; i::splitOffTwoRows(int iu, Scalar exshift) else rot.makeGivens(p - z, m_matT.coeff(iu, iu-1)); - m_matT.block(0, iu-1, size, size-iu+1).applyOnTheLeft(iu-1, iu, rot.adjoint()); - m_matT.block(0, 0, iu+1, size).applyOnTheRight(iu-1, iu, rot); + m_matT.rightCols(size-iu+1).applyOnTheLeft(iu-1, iu, rot.adjoint()); + m_matT.topRows(iu+1).applyOnTheRight(iu-1, iu, rot); m_matT.coeffRef(iu, iu-1) = Scalar(0); m_matU.applyOnTheRight(iu-1, iu, rot); }