1DGEEV(1) LAPACK driver routine (version 3.1) DGEEV(1)
2
3
4
6 DGEEV - for an N-by-N real nonsymmetric matrix A, the eigenvalues and,
7 optionally, the left and/or right eigenvectors
8
10 SUBROUTINE DGEEV( 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 DOUBLE PRECISION A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
18 WI( * ), WORK( * ), WR( * )
19
21 DGEEV 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) DOUBLE PRECISION 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) DOUBLE PRECISION array, dimension (N)
55 WI (output) DOUBLE PRECISION array, dimension (N) WR and
56 WI contain the real and imaginary parts, respectively, of the
57 computed eigenvalues. Complex conjugate pairs of eigenvalues
58 appear consecutively with the eigenvalue having the positive
59 imaginary part first.
60
61 VL (output) DOUBLE PRECISION 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) DOUBLE PRECISION 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) DOUBLE PRECISION array, dimension
88 (MAX(1,LWORK))
89 On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
90
91 LWORK (input) INTEGER
92 The dimension of the array WORK. LWORK >= max(1,3*N), and if
93 JOBVL = 'V' or JOBVR = 'V', LWORK >= 4*N. For good perfor‐
94 mance, LWORK must generally be larger.
95
96 If LWORK = -1, then a workspace query is assumed; the routine
97 only calculates the optimal size of the WORK array, returns
98 this value as the first entry of the WORK array, and no error
99 message related to LWORK is issued by XERBLA.
100
101 INFO (output) INTEGER
102 = 0: successful exit
103 < 0: if INFO = -i, the i-th argument had an illegal value.
104 > 0: if INFO = i, the QR algorithm failed to compute all the
105 eigenvalues, and no eigenvectors have been computed; elements
106 i+1:N of WR and WI contain eigenvalues which have converged.
107
108
109
110 LAPACK driver routine (version 3.N1o)vember 2006 DGEEV(1)