Lines Matching refs:subdiag
367 * pair of two vectors \a diag and \a subdiag.
380 static void tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, Index start, Index end, Scalar* matrixQ, Index n);
740 static void tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, Index start, Index end, Scalar* matrixQ, Index n)
744 RealScalar e = subdiag[end-1];
747 // RealScalar e2 = numext::abs2(subdiag[end-1]);
755 RealScalar e2 = numext::abs2(subdiag[end-1]);
762 RealScalar z = subdiag[start];
769 RealScalar sdk = rot.s() * diag[k] + rot.c() * subdiag[k];
770 RealScalar dkp1 = rot.s() * subdiag[k] + rot.c() * diag[k+1];
772 diag[k] = rot.c() * (rot.c() * diag[k] - rot.s() * subdiag[k]) - rot.s() * (rot.c() * subdiag[k] - rot.s() * diag[k+1]);
774 subdiag[k] = rot.c() * sdk - rot.s() * dkp1;
778 subdiag[k - 1] = rot.c() * subdiag[k-1] - rot.s() * z;
780 x = subdiag[k];
784 z = -rot.s() * subdiag[k+1];
785 subdiag[k + 1] = rot.c() * subdiag[k+1];