Home | History | Annotate | Download | only in Eigenvalues

Lines Matching refs:subdiag

24 ComputationInfo computeFromTridiagonal_impl(DiagType& diag, SubDiagType& subdiag, const Index maxIterations, bool computeEigenvectors, MatrixType& eivec);
230 * \param[in] subdiag The subdiagonal of the matrix.
238 SelfAdjointEigenSolver& computeFromTridiagonal(const RealVectorType& diag, const SubDiagonalType& subdiag , int options=ComputeEigenvectors);
376 * pair of two vectors \a diag and \a subdiag.
379 subdiag the sub-diagonal part of the input selfadjoint tridiagonal matrix
393 static void tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, Index start, Index end, Scalar* matrixQ, Index n);
451 ::computeFromTridiagonal(const RealVectorType& diag, const SubDiagonalType& subdiag , int options)
457 m_subdiag = subdiag;
475 * \param[in,out] subdiag : The subdiagonal part of the matrix (entries are modified during the decomposition)
482 ComputationInfo computeFromTridiagonal_impl(DiagType& diag, SubDiagType& subdiag, const Index maxIterations, bool computeEigenvectors, MatrixType& eivec)
501 if (internal::isMuchSmallerThan(abs(subdiag[i]),(abs(diag[i])+abs(diag[i+1])),precision) || abs(subdiag[i]) <= considerAsZero)
502 subdiag[i] = 0;
505 while (end>0 && subdiag[end-1]==RealScalar(0))
517 while (start>0 && subdiag[start-1]!=0)
520 internal::tridiagonal_qr_step<MatrixType::Flags&RowMajorBit ? RowMajor : ColMajor>(diag.data(), subdiag.data(), start, end, computeEigenvectors ? eivec.data() : (Scalar*)0, n);
808 static void tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, Index start, Index end, Scalar* matrixQ, Index n)
812 RealScalar e = subdiag[end-1];
815 // RealScalar e2 = numext::abs2(subdiag[end-1]);
823 RealScalar e2 = numext::abs2(subdiag[end-1]);
830 RealScalar z = subdiag[start];
837 subdiag[k];
838 RealScalar dkp1 = rot.s() * subdiag[k] + rot.c() * diag[k+1];
840 diag[k] = rot.c() * (rot.c() * diag[k] - rot.s() * subdiag[k]) - rot.s() * (rot.c() * subdiag[k] - rot.s() * diag[k+1]);
842 subdiag[k] = rot.c() * sdk - rot.s() * dkp1;
846 subdiag[k - 1] = rot.c() * subdiag[k-1] - rot.s() * z;
848 x = subdiag[k];
852 z = -rot.s() * subdiag[k+1];
853 subdiag[k + 1] = rot.c() * subdiag[k+1];