| stevd(3) | Library Functions Manual | stevd(3) |
NAME
stevd - stevd: eig, divide and conquer
SYNOPSIS
Functions
subroutine dstevd (jobz, n, d, e, z, ldz, work, lwork,
iwork, liwork, info)
DSTEVD computes the eigenvalues and, optionally, the left and/or right
eigenvectors for OTHER matrices subroutine sstevd (jobz, n, d, e,
z, ldz, work, lwork, iwork, liwork, info)
SSTEVD computes the eigenvalues and, optionally, the left and/or right
eigenvectors for OTHER matrices
Detailed Description
Function Documentation
subroutine dstevd (character jobz, integer n, double precision, dimension( * ) d, double precision, dimension( * ) e, double precision, dimension( ldz, * ) z, integer ldz, double precision, dimension( * ) work, integer lwork, integer, dimension( * ) iwork, integer liwork, integer info)
DSTEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices
Purpose:
!> !> DSTEVD computes all eigenvalues and, optionally, eigenvectors of a !> real symmetric tridiagonal matrix. If eigenvectors are desired, it !> uses a divide and conquer algorithm. !> !>
Parameters
!> JOBZ is CHARACTER*1 !> = 'N': Compute eigenvalues only; !> = 'V': Compute eigenvalues and eigenvectors. !>
N
!> N is INTEGER !> The order of the matrix. N >= 0. !>
D
!> D is DOUBLE PRECISION array, dimension (N) !> On entry, the n diagonal elements of the tridiagonal matrix !> A. !> On exit, if INFO = 0, the eigenvalues in ascending order. !>
E
!> E is DOUBLE PRECISION array, dimension (N-1) !> On entry, the (n-1) subdiagonal elements of the tridiagonal !> matrix A, stored in elements 1 to N-1 of E. !> On exit, the contents of E are destroyed. !>
Z
!> Z is DOUBLE PRECISION array, dimension (LDZ, N) !> If JOBZ = 'V', then if INFO = 0, Z contains the orthonormal !> eigenvectors of the matrix A, with the i-th column of Z !> holding the eigenvector associated with D(i). !> If JOBZ = 'N', then Z is not referenced. !>
LDZ
!> LDZ is INTEGER !> The leading dimension of the array Z. LDZ >= 1, and if !> JOBZ = 'V', LDZ >= max(1,N). !>
WORK
!> WORK is DOUBLE PRECISION array, !> dimension (LWORK) !> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. !>
LWORK
!> LWORK is INTEGER !> The dimension of the array WORK. !> If JOBZ = 'N' or N <= 1 then LWORK must be at least 1. !> If JOBZ = 'V' and N > 1 then LWORK must be at least !> ( 1 + 4*N + N**2 ). !> !> If LWORK = -1, then a workspace query is assumed; the routine !> only calculates the optimal sizes of the WORK and IWORK !> arrays, returns these values as the first entries of the WORK !> and IWORK arrays, and no error message related to LWORK or !> LIWORK is issued by XERBLA. !>
IWORK
!> IWORK is INTEGER array, dimension (MAX(1,LIWORK)) !> On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK. !>
LIWORK
!> LIWORK is INTEGER !> The dimension of the array IWORK. !> If JOBZ = 'N' or N <= 1 then LIWORK must be at least 1. !> If JOBZ = 'V' and N > 1 then LIWORK must be at least 3+5*N. !> !> If LIWORK = -1, then a workspace query is assumed; the !> routine only calculates the optimal sizes of the WORK and !> IWORK arrays, returns these values as the first entries of !> the WORK and IWORK arrays, and no error message related to !> LWORK or LIWORK is issued by XERBLA. !>
INFO
!> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !> > 0: if INFO = i, the algorithm failed to converge; i !> off-diagonal elements of E did not converge to zero. !>
Author
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 155 of file dstevd.f.
subroutine sstevd (character jobz, 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)
SSTEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices
Purpose:
!> !> SSTEVD computes all eigenvalues and, optionally, eigenvectors of a !> real symmetric tridiagonal matrix. If eigenvectors are desired, it !> uses a divide and conquer algorithm. !> !>
Parameters
!> JOBZ is CHARACTER*1 !> = 'N': Compute eigenvalues only; !> = 'V': Compute eigenvalues and eigenvectors. !>
N
!> N is INTEGER !> The order of the matrix. N >= 0. !>
D
!> D is REAL array, dimension (N) !> On entry, the n diagonal elements of the tridiagonal matrix !> A. !> On exit, if INFO = 0, the eigenvalues in ascending order. !>
E
!> E is REAL array, dimension (N-1) !> On entry, the (n-1) subdiagonal elements of the tridiagonal !> matrix A, stored in elements 1 to N-1 of E. !> On exit, the contents of E are destroyed. !>
Z
!> Z is REAL array, dimension (LDZ, N) !> If JOBZ = 'V', then if INFO = 0, Z contains the orthonormal !> eigenvectors of the matrix A, with the i-th column of Z !> holding the eigenvector associated with D(i). !> If JOBZ = 'N', then Z is not referenced. !>
LDZ
!> LDZ is INTEGER !> The leading dimension of the array Z. LDZ >= 1, and if !> JOBZ = 'V', LDZ >= max(1,N). !>
WORK
!> WORK is REAL array, !> dimension (LWORK) !> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. !>
LWORK
!> LWORK is INTEGER !> The dimension of the array WORK. !> If JOBZ = 'N' or N <= 1 then LWORK must be at least 1. !> If JOBZ = 'V' and N > 1 then LWORK must be at least !> ( 1 + 4*N + N**2 ). !> !> If LWORK = -1, then a workspace query is assumed; the routine !> only calculates the optimal sizes of the WORK and IWORK !> arrays, returns these values as the first entries of the WORK !> and IWORK arrays, and no error message related to LWORK or !> LIWORK is issued by XERBLA. !>
IWORK
!> IWORK is INTEGER array, dimension (MAX(1,LIWORK)) !> On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK. !>
LIWORK
!> LIWORK is INTEGER !> The dimension of the array IWORK. !> If JOBZ = 'N' or N <= 1 then LIWORK must be at least 1. !> If JOBZ = 'V' and N > 1 then LIWORK must be at least 3+5*N. !> !> If LIWORK = -1, then a workspace query is assumed; the !> routine only calculates the optimal sizes of the WORK and !> IWORK arrays, returns these values as the first entries of !> the WORK and IWORK arrays, and no error message related to !> LWORK or LIWORK is issued by XERBLA. !>
INFO
!> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !> > 0: if INFO = i, the algorithm failed to converge; i !> off-diagonal elements of E did not converge to zero. !>
Author
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 155 of file sstevd.f.
Author
Generated automatically by Doxygen for LAPACK from the source code.
| Version 3.12.0 | LAPACK |