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