LAPACK 3.12.1
LAPACK: Linear Algebra PACKage
|
subroutine slaed0 | ( | integer | icompq, |
integer | qsiz, | ||
integer | n, | ||
real, dimension( * ) | d, | ||
real, dimension( * ) | e, | ||
real, dimension( ldq, * ) | q, | ||
integer | ldq, | ||
real, dimension( ldqs, * ) | qstore, | ||
integer | ldqs, | ||
real, dimension( * ) | work, | ||
integer, dimension( * ) | iwork, | ||
integer | info ) |
SLAED0 used by SSTEDC. Computes all eigenvalues and corresponding eigenvectors of an unreduced symmetric tridiagonal matrix using the divide and conquer method.
Download SLAED0 + dependencies [TGZ] [ZIP] [TXT]
!> !> SLAED0 computes all eigenvalues and corresponding eigenvectors of a !> symmetric tridiagonal matrix using the divide and conquer method. !>
[in] | ICOMPQ | !> ICOMPQ is INTEGER !> = 0: Compute eigenvalues only. !> = 1: Compute eigenvectors of original dense symmetric matrix !> also. On entry, Q contains the orthogonal matrix used !> to reduce the original matrix to tridiagonal form. !> = 2: Compute eigenvalues and eigenvectors of tridiagonal !> matrix. !> |
[in] | QSIZ | !> QSIZ is INTEGER !> The dimension of the orthogonal matrix used to reduce !> the full matrix to tridiagonal form. QSIZ >= N if ICOMPQ = 1. !> |
[in] | N | !> N is INTEGER !> The dimension of the symmetric tridiagonal matrix. N >= 0. !> |
[in,out] | D | !> D is REAL array, dimension (N) !> On entry, the main diagonal of the tridiagonal matrix. !> On exit, its eigenvalues. !> |
[in] | E | !> E is REAL array, dimension (N-1) !> The off-diagonal elements of the tridiagonal matrix. !> On exit, E has been destroyed. !> |
[in,out] | Q | !> Q is REAL array, dimension (LDQ, N) !> On entry, Q must contain an N-by-N orthogonal matrix. !> If ICOMPQ = 0 Q is not referenced. !> If ICOMPQ = 1 On entry, Q is a subset of the columns of the !> orthogonal matrix used to reduce the full !> matrix to tridiagonal form corresponding to !> the subset of the full matrix which is being !> decomposed at this time. !> If ICOMPQ = 2 On entry, Q will be the identity matrix. !> On exit, Q contains the eigenvectors of the !> tridiagonal matrix. !> |
[in] | LDQ | !> LDQ is INTEGER !> The leading dimension of the array Q. If eigenvectors are !> desired, then LDQ >= max(1,N). In any case, LDQ >= 1. !> |
[out] | QSTORE | !> QSTORE is REAL array, dimension (LDQS, N) !> Referenced only when ICOMPQ = 1. Used to store parts of !> the eigenvector matrix when the updating matrix multiplies !> take place. !> |
[in] | LDQS | !> LDQS is INTEGER !> The leading dimension of the array QSTORE. If ICOMPQ = 1, !> then LDQS >= max(1,N). In any case, LDQS >= 1. !> |
[out] | WORK | !> WORK is REAL array, !> If ICOMPQ = 0 or 1, the dimension of WORK must be at least !> 1 + 3*N + 2*N*lg N + 3*N**2 !> ( lg( N ) = smallest integer k !> such that 2^k >= N ) !> If ICOMPQ = 2, the dimension of WORK must be at least !> 4*N + N**2. !> |
[out] | IWORK | !> IWORK is INTEGER array, !> If ICOMPQ = 0 or 1, the dimension of IWORK must be at least !> 6 + 6*N + 5*N*lg N. !> ( lg( N ) = smallest integer k !> such that 2^k >= N ) !> If ICOMPQ = 2, the dimension of IWORK must be at least !> 3 + 5*N. !> |
[out] | INFO | !> INFO is INTEGER !> = 0: successful exit. !> < 0: if INFO = -i, the i-th argument had an illegal value. !> > 0: The algorithm failed to compute an eigenvalue while !> working on the submatrix lying in rows and columns !> INFO/(N+1) through mod(INFO,N+1). !> |
Definition at line 168 of file slaed0.f.