1SGEEV(1) LAPACK driver routine (version 3.1) SGEEV(1)
2
3
4
6 SGEEV - for an N-by-N real nonsymmetric matrix A, the eigenvalues and,
7 optionally, the left and/or right eigenvectors
8
10 SUBROUTINE SGEEV( JOBVL, JOBVR, N, A, LDA, WR, WI, VL, LDVL, VR, LDVR,
11 WORK, LWORK, INFO )
12
13 CHARACTER JOBVL, JOBVR
14
15 INTEGER INFO, LDA, LDVL, LDVR, LWORK, N
16
17 REAL A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ), WI( * ),
18 WORK( * ), WR( * )
19
21 SGEEV computes for an N-by-N real nonsymmetric matrix A, the eigenval‐
22 ues and, optionally, the left and/or right eigenvectors.
23
24 The right eigenvector v(j) of A satisfies
25 A * v(j) = lambda(j) * v(j)
26 where lambda(j) is its eigenvalue.
27 The left eigenvector u(j) of A satisfies
28 u(j)**H * A = lambda(j) * u(j)**H
29 where u(j)**H denotes the conjugate transpose of u(j).
30
31 The computed eigenvectors are normalized to have Euclidean norm equal
32 to 1 and largest component real.
33
34
36 JOBVL (input) CHARACTER*1
37 = 'N': left eigenvectors of A are not computed;
38 = 'V': left eigenvectors of A are computed.
39
40 JOBVR (input) CHARACTER*1
41 = 'N': right eigenvectors of A are not computed;
42 = 'V': right eigenvectors of A are computed.
43
44 N (input) INTEGER
45 The order of the matrix A. N >= 0.
46
47 A (input/output) REAL array, dimension (LDA,N)
48 On entry, the N-by-N matrix A. On exit, A has been overwrit‐
49 ten.
50
51 LDA (input) INTEGER
52 The leading dimension of the array A. LDA >= max(1,N).
53
54 WR (output) REAL array, dimension (N)
55 WI (output) REAL array, dimension (N) WR and WI contain
56 the real and imaginary parts, respectively, of the computed ei‐
57 genvalues. Complex conjugate pairs of eigenvalues appear con‐
58 secutively with the eigenvalue having the positive imaginary
59 part first.
60
61 VL (output) REAL array, dimension (LDVL,N)
62 If JOBVL = 'V', the left eigenvectors u(j) are stored one after
63 another in the columns of VL, in the same order as their eigen‐
64 values. If JOBVL = 'N', VL is not referenced. If the j-th ei‐
65 genvalue is real, then u(j) = VL(:,j), the j-th column of VL.
66 If the j-th and (j+1)-st eigenvalues form a complex conjugate
67 pair, then u(j) = VL(:,j) + i*VL(:,j+1) and
68 u(j+1) = VL(:,j) - i*VL(:,j+1).
69
70 LDVL (input) INTEGER
71 The leading dimension of the array VL. LDVL >= 1; if JOBVL =
72 'V', LDVL >= N.
73
74 VR (output) REAL array, dimension (LDVR,N)
75 If JOBVR = 'V', the right eigenvectors v(j) are stored one
76 after another in the columns of VR, in the same order as their
77 eigenvalues. If JOBVR = 'N', VR is not referenced. If the j-
78 th eigenvalue is real, then v(j) = VR(:,j), the j-th column of
79 VR. If the j-th and (j+1)-st eigenvalues form a complex conju‐
80 gate pair, then v(j) = VR(:,j) + i*VR(:,j+1) and
81 v(j+1) = VR(:,j) - i*VR(:,j+1).
82
83 LDVR (input) INTEGER
84 The leading dimension of the array VR. LDVR >= 1; if JOBVR =
85 'V', LDVR >= N.
86
87 WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))
88 On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
89
90 LWORK (input) INTEGER
91 The dimension of the array WORK. LWORK >= max(1,3*N), and if
92 JOBVL = 'V' or JOBVR = 'V', LWORK >= 4*N. For good perfor‐
93 mance, LWORK must generally be larger.
94
95 If LWORK = -1, then a workspace query is assumed; the routine
96 only calculates the optimal size of the WORK array, returns
97 this value as the first entry of the WORK array, and no error
98 message related to LWORK is issued by XERBLA.
99
100 INFO (output) INTEGER
101 = 0: successful exit
102 < 0: if INFO = -i, the i-th argument had an illegal value.
103 > 0: if INFO = i, the QR algorithm failed to compute all the
104 eigenvalues, and no eigenvectors have been computed; elements
105 i+1:N of WR and WI contain eigenvalues which have converged.
106
107
108
109 LAPACK driver routine (version 3.N1o)vember 2006 SGEEV(1)