Lines Matching refs:subdiag
372 * pair of two vectors \a diag and \a subdiag.
385 static void tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, Index start, Index end, Scalar* matrixQ, Index n);
736 static void tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, Index start, Index end, Scalar* matrixQ, Index n)
740 RealScalar e = subdiag[end-1];
743 // RealScalar e2 = numext::abs2(subdiag[end-1]);
751 RealScalar e2 = numext::abs2(subdiag[end-1]);
758 RealScalar z = subdiag[start];
765 RealScalar sdk = rot.s() * diag[k] + rot.c() * subdiag[k];
766 RealScalar dkp1 = rot.s() * subdiag[k] + rot.c() * diag[k+1];
768 diag[k] = rot.c() * (rot.c() * diag[k] - rot.s() * subdiag[k]) - rot.s() * (rot.c() * subdiag[k] - rot.s() * diag[k+1]);
770 subdiag[k] = rot.c() * sdk - rot.s() * dkp1;
774 subdiag[k - 1] = rot.c() * subdiag[k-1] - rot.s() * z;
776 x = subdiag[k];
780 z = -rot.s() * subdiag[k+1];
781 subdiag[k + 1] = rot.c() * subdiag[k+1];