LAPACK 3.12.1
LAPACK: Linear Algebra PACKage
|
subroutine sstedc | ( | character | compz, |
integer | n, | ||
real, dimension( * ) | d, | ||
real, dimension( * ) | e, | ||
real, dimension( ldz, * ) | z, | ||
integer | ldz, | ||
real, dimension( * ) | work, | ||
integer | lwork, | ||
integer, dimension( * ) | iwork, | ||
integer | liwork, | ||
integer | info ) |
SSTEDC
Download SSTEDC + dependencies [TGZ] [ZIP] [TXT]
!> !> SSTEDC computes all eigenvalues and, optionally, eigenvectors of a !> symmetric tridiagonal matrix using the divide and conquer method. !> The eigenvectors of a full or band real symmetric matrix can also be !> found if SSYTRD or SSPTRD or SSBTRD has been used to reduce this !> matrix to tridiagonal form. !> !>
[in] | COMPZ | !> COMPZ is CHARACTER*1 !> = 'N': Compute eigenvalues only. !> = 'I': Compute eigenvectors of tridiagonal matrix also. !> = 'V': Compute eigenvectors of original dense symmetric !> matrix also. On entry, Z contains the orthogonal !> matrix used to reduce the original matrix to !> tridiagonal form. !> |
[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 diagonal elements of the tridiagonal matrix. !> On exit, if INFO = 0, the eigenvalues in ascending order. !> |
[in,out] | E | !> E is REAL array, dimension (N-1) !> On entry, the subdiagonal elements of the tridiagonal matrix. !> On exit, E has been destroyed. !> |
[in,out] | Z | !> Z is REAL array, dimension (LDZ,N) !> On entry, if COMPZ = 'V', then Z contains the orthogonal !> matrix used in the reduction to tridiagonal form. !> On exit, if INFO = 0, then if COMPZ = 'V', Z contains the !> orthonormal eigenvectors of the original symmetric matrix, !> and if COMPZ = 'I', Z contains the orthonormal eigenvectors !> of the symmetric tridiagonal matrix. !> If COMPZ = 'N', then Z is not referenced. !> |
[in] | LDZ | !> LDZ is INTEGER !> The leading dimension of the array Z. LDZ >= 1. !> If eigenvectors are desired, then LDZ >= max(1,N). !> |
[out] | WORK | !> WORK is REAL array, dimension (MAX(1,LWORK)) !> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. !> |
[in] | LWORK | !> LWORK is INTEGER !> The dimension of the array WORK. !> If COMPZ = 'N' or N <= 1 then LWORK must be at least 1. !> If COMPZ = 'V' and N > 1 then LWORK must be at least !> ( 1 + 3*N + 2*N*lg N + 4*N**2 ), !> where lg( N ) = smallest integer k such !> that 2**k >= N. !> If COMPZ = 'I' and N > 1 then LWORK must be at least !> ( 1 + 4*N + N**2 ). !> Note that for COMPZ = 'I' or 'V', then if N is less than or !> equal to the minimum divide size, usually 25, then LWORK need !> only be max(1,2*(N-1)). !> !> If LWORK = -1, then a workspace query is assumed; the routine !> only calculates the optimal size of the WORK array, returns !> this value as the first entry of the WORK array, and no error !> message related to LWORK is issued by XERBLA. !> |
[out] | IWORK | !> IWORK is INTEGER array, dimension (MAX(1,LIWORK)) !> On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK. !> |
[in] | LIWORK | !> LIWORK is INTEGER !> The dimension of the array IWORK. !> If COMPZ = 'N' or N <= 1 then LIWORK must be at least 1. !> If COMPZ = 'V' and N > 1 then LIWORK must be at least !> ( 6 + 6*N + 5*N*lg N ). !> If COMPZ = 'I' and N > 1 then LIWORK must be at least !> ( 3 + 5*N ). !> Note that for COMPZ = 'I' or 'V', then if N is less than or !> equal to the minimum divide size, usually 25, then LIWORK !> need only be 1. !> !> If LIWORK = -1, then a workspace query is assumed; the !> routine only calculates the optimal size of the IWORK array, !> returns this value as the first entry of the IWORK array, and !> no error message related to LIWORK is issued by XERBLA. !> |
[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 178 of file sstedc.f.