Lines Matching defs:im
240 void initFrancisQRStep(Index il, Index iu, const Vector3s& shiftInfo, Index& im, Vector3s& firstHouseholderVector);
241 void performFrancisQRStep(Index il, Index im, Index iu, bool computeU, const Vector3s& firstHouseholderVector, Scalar* workspace);
314 Index im;
315 initFrancisQRStep(il, iu, shiftInfo, im, firstHouseholderVector);
316 performFrancisQRStep(il, im, iu, computeU, firstHouseholderVector, workspace);
439 /** \internal Compute index im at which Francis QR step starts and the first Householder vector. */
441 inline void RealSchur<MatrixType>::initFrancisQRStep(Index il, Index iu, const Vector3s& shiftInfo, Index& im, Vector3s& firstHouseholderVector)
446 for (im = iu-2; im >= il; --im)
448 const Scalar Tmm = m_matT.coeff(im,im);
451 v.coeffRef(0) = (r * s - shiftInfo.coeff(2)) / m_matT.coeff(im+1,im) + m_matT.coeff(im,im+1);
452 v.coeffRef(1) = m_matT.coeff(im+1,im+1) - Tmm - r - s;
453 v.coeffRef(2) = m_matT.coeff(im+2,im+1);
454 if (im == il) {
457 const Scalar lhs = m_matT.coeff(im,im-1) * (abs(v.coeff(1)) + abs(v.coeff(2)));
458 const Scalar rhs = v.coeff(0) * (abs(m_matT.coeff(im-1,im-1)) + abs(Tmm) + abs(m_matT.coeff(im+1,im+1)));
466 /** \internal Perform a Francis QR step involving rows il:iu and columns im:iu. */
468 inline void RealSchur<MatrixType>::performFrancisQRStep(Index il, Index im, Index iu, bool computeU, const Vector3s& firstHouseholderVector, Scalar* workspace)
470 eigen_assert(im >= il);
471 eigen_assert(im <= iu-2);
475 for (Index k = im; k <= iu-2; ++k)
477 bool firstIteration = (k == im);
519 for (Index i = im+2; i <= iu; ++i)
522 if (i > im+2)