Lines Matching defs:im

242     void initFrancisQRStep(Index il, Index iu, const Vector3s& shiftInfo, Index& im, Vector3s& firstHouseholderVector);
243 void performFrancisQRStep(Index il, Index im, Index iu, bool computeU, const Vector3s& firstHouseholderVector, Scalar* workspace);
335 Index im;
336 initFrancisQRStep(il, iu, shiftInfo, im, firstHouseholderVector);
337 performFrancisQRStep(il, im, iu, computeU, firstHouseholderVector, workspace);
458 /** \internal Compute index im at which Francis QR step starts and the first Householder vector. */
460 inline void RealSchur<MatrixType>::initFrancisQRStep(Index il, Index iu, const Vector3s& shiftInfo, Index& im, Vector3s& firstHouseholderVector)
465 for (im = iu-2; im >= il; --im)
467 const Scalar Tmm = m_matT.coeff(im,im);
470 v.coeffRef(0) = (r * s - shiftInfo.coeff(2)) / m_matT.coeff(im+1,im) + m_matT.coeff(im,im+1);
471 v.coeffRef(1) = m_matT.coeff(im+1,im+1) - Tmm - r - s;
472 v.coeffRef(2) = m_matT.coeff(im+2,im+1);
473 if (im == il) {
476 const Scalar lhs = m_matT.coeff(im,im-1) * (abs(v.coeff(1)) + abs(v.coeff(2)));
477 const Scalar rhs = v.coeff(0) * (abs(m_matT.coeff(im-1,im-1)) + abs(Tmm) + abs(m_matT.coeff(im+1,im+1)));
483 /** \internal Perform a Francis QR step involving rows il:iu and columns im:iu. */
485 inline void RealSchur<MatrixType>::performFrancisQRStep(Index il, Index im, Index iu, bool computeU, const Vector3s& firstHouseholderVector, Scalar* workspace)
487 eigen_assert(im >= il);
488 eigen_assert(im <= iu-2);
492 for (Index k = im; k <= iu-2; ++k)
494 bool firstIteration = (k == im);
536 for (Index i = im+2; i <= iu; ++i)
539 if (i > im+2)