1SSYEVD(1) LAPACK driver routine (version 3.2) SSYEVD(1)
2
3
4
6 SSYEVD - computes all eigenvalues and, optionally, eigenvectors of a
7 real symmetric matrix A
8
10 SUBROUTINE SSYEVD( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, IWORK,
11 LIWORK, INFO )
12
13 CHARACTER JOBZ, UPLO
14
15 INTEGER INFO, LDA, LIWORK, LWORK, N
16
17 INTEGER IWORK( * )
18
19 REAL A( LDA, * ), W( * ), WORK( * )
20
22 SSYEVD computes all eigenvalues and, optionally, eigenvectors of a real
23 symmetric matrix A. If eigenvectors are desired, it uses a divide and
24 conquer algorithm.
25 The divide and conquer algorithm makes very mild assumptions about
26 floating point arithmetic. It will work on machines with a guard digit
27 in add/subtract, or on those binary machines without guard digits which
28 subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2. It could
29 conceivably fail on hexadecimal or decimal machines without guard dig‐
30 its, but we know of none.
31 Because of large use of BLAS of level 3, SSYEVD needs N**2 more
32 workspace than SSYEVX.
33
35 JOBZ (input) CHARACTER*1
36 = 'N': Compute eigenvalues only;
37 = 'V': Compute eigenvalues and eigenvectors.
38
39 UPLO (input) CHARACTER*1
40 = 'U': Upper triangle of A is stored;
41 = 'L': Lower triangle of A is stored.
42
43 N (input) INTEGER
44 The order of the matrix A. N >= 0.
45
46 A (input/output) REAL array, dimension (LDA, N)
47 On entry, the symmetric matrix A. If UPLO = 'U', the leading
48 N-by-N upper triangular part of A contains the upper triangular
49 part of the matrix A. If UPLO = 'L', the leading N-by-N lower
50 triangular part of A contains the lower triangular part of the
51 matrix A. On exit, if JOBZ = 'V', then if INFO = 0, A contains
52 the orthonormal eigenvectors of the matrix A. If JOBZ = 'N',
53 then on exit the lower triangle (if UPLO='L') or the upper tri‐
54 angle (if UPLO='U') of A, including the diagonal, is destroyed.
55
56 LDA (input) INTEGER
57 The leading dimension of the array A. LDA >= max(1,N).
58
59 W (output) REAL array, dimension (N)
60 If INFO = 0, the eigenvalues in ascending order.
61
62 WORK (workspace/output) REAL array,
63 dimension (LWORK) On exit, if INFO = 0, WORK(1) returns the
64 optimal LWORK.
65
66 LWORK (input) INTEGER
67 The dimension of the array WORK. If N <= 1,
68 LWORK must be at least 1. If JOBZ = 'N' and N > 1, LWORK must
69 be at least 2*N+1. If JOBZ = 'V' and N > 1, LWORK must be at
70 least 1 + 6*N + 2*N**2. If LWORK = -1, then a workspace query
71 is assumed; the routine only calculates the optimal sizes of
72 the WORK and IWORK arrays, returns these values as the first
73 entries of the WORK and IWORK arrays, and no error message
74 related to LWORK or LIWORK is issued by XERBLA.
75
76 IWORK (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
77 On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
78
79 LIWORK (input) INTEGER
80 The dimension of the array IWORK. If N <= 1,
81 LIWORK must be at least 1. If JOBZ = 'N' and N > 1, LIWORK
82 must be at least 1. If JOBZ = 'V' and N > 1, LIWORK must be
83 at least 3 + 5*N. If LIWORK = -1, then a workspace query is
84 assumed; the routine only calculates the optimal sizes of the
85 WORK and IWORK arrays, returns these values as the first
86 entries of the WORK and IWORK arrays, and no error message
87 related to LWORK or LIWORK is issued by XERBLA.
88
89 INFO (output) INTEGER
90 = 0: successful exit
91 < 0: if INFO = -i, the i-th argument had an illegal value
92 > 0: if INFO = i and JOBZ = 'N', then the algorithm failed to
93 converge; i off-diagonal elements of an intermediate tridiago‐
94 nal form did not converge to zero; if INFO = i and JOBZ = 'V',
95 then the algorithm failed to compute an eigenvalue while work‐
96 ing on the submatrix lying in rows and columns INFO/(N+1)
97 through mod(INFO,N+1).
98
100 Based on contributions by
101 Jeff Rutter, Computer Science Division, University of California
102 at Berkeley, USA
103 Modified by Francoise Tisseur, University of Tennessee.
104 Modified description of INFO. Sven, 16 Feb 05.
105
106
107
108 LAPACK driver routine (version 3.N2o)vember 2008 SSYEVD(1)