1CGEES(1) LAPACK driver routine (version 3.1) CGEES(1)
2
3
4
6 CGEES - for an N-by-N complex nonsymmetric matrix A, the eigenvalues,
7 the Schur form T, and, optionally, the matrix of Schur vectors Z
8
10 SUBROUTINE CGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS, LDVS,
11 WORK, LWORK, RWORK, BWORK, INFO )
12
13 CHARACTER JOBVS, SORT
14
15 INTEGER INFO, LDA, LDVS, LWORK, N, SDIM
16
17 LOGICAL BWORK( * )
18
19 REAL RWORK( * )
20
21 COMPLEX A( LDA, * ), VS( LDVS, * ), W( * ), WORK( * )
22
23 LOGICAL SELECT
24
25 EXTERNAL SELECT
26
28 CGEES computes for an N-by-N complex nonsymmetric matrix A, the eigen‐
29 values, the Schur form T, and, optionally, the matrix of Schur vectors
30 Z. This gives the Schur factorization A = Z*T*(Z**H).
31
32 Optionally, it also orders the eigenvalues on the diagonal of the Schur
33 form so that selected eigenvalues are at the top left. The leading
34 columns of Z then form an orthonormal basis for the invariant subspace
35 corresponding to the selected eigenvalues.
36
37 A complex matrix is in Schur form if it is upper triangular.
38
39
41 JOBVS (input) CHARACTER*1
42 = 'N': Schur vectors are not computed;
43 = 'V': Schur vectors are computed.
44
45 SORT (input) CHARACTER*1
46 Specifies whether or not to order the eigenvalues on the diago‐
47 nal of the Schur form. = 'N': Eigenvalues are not ordered:
48 = 'S': Eigenvalues are ordered (see SELECT).
49
50 SELECT (external procedure) LOGICAL FUNCTION of one COMPLEX argument
51 SELECT must be declared EXTERNAL in the calling subroutine. If
52 SORT = 'S', SELECT is used to select eigenvalues to order to
53 the top left of the Schur form. IF SORT = 'N', SELECT is not
54 referenced. The eigenvalue W(j) is selected if SELECT(W(j)) is
55 true.
56
57 N (input) INTEGER
58 The order of the matrix A. N >= 0.
59
60 A (input/output) COMPLEX array, dimension (LDA,N)
61 On entry, the N-by-N matrix A. On exit, A has been overwritten
62 by its Schur form T.
63
64 LDA (input) INTEGER
65 The leading dimension of the array A. LDA >= max(1,N).
66
67 SDIM (output) INTEGER
68 If SORT = 'N', SDIM = 0. If SORT = 'S', SDIM = number of ei‐
69 genvalues for which SELECT is true.
70
71 W (output) COMPLEX array, dimension (N)
72 W contains the computed eigenvalues, in the same order that
73 they appear on the diagonal of the output Schur form T.
74
75 VS (output) COMPLEX array, dimension (LDVS,N)
76 If JOBVS = 'V', VS contains the unitary matrix Z of Schur vec‐
77 tors. If JOBVS = 'N', VS is not referenced.
78
79 LDVS (input) INTEGER
80 The leading dimension of the array VS. LDVS >= 1; if JOBVS =
81 'V', LDVS >= N.
82
83 WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
84 On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
85
86 LWORK (input) INTEGER
87 The dimension of the array WORK. LWORK >= max(1,2*N). For
88 good performance, LWORK must generally be larger.
89
90 If LWORK = -1, then a workspace query is assumed; the routine
91 only calculates the optimal size of the WORK array, returns
92 this value as the first entry of the WORK array, and no error
93 message related to LWORK is issued by XERBLA.
94
95 RWORK (workspace) REAL array, dimension (N)
96
97 BWORK (workspace) LOGICAL array, dimension (N)
98 Not referenced if SORT = 'N'.
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, and i is
104 <= N: the QR algorithm failed to compute all the
105 eigenvalues; elements 1:ILO-1 and i+1:N of W contain those ei‐
106 genvalues which have converged; if JOBVS = 'V', VS contains the
107 matrix which reduces A to its partially converged Schur form.
108 = N+1: the eigenvalues could not be reordered because some ei‐
109 genvalues were too close to separate (the problem is very ill-
110 conditioned); = N+2: after reordering, roundoff changed values
111 of some complex eigenvalues so that leading eigenvalues in the
112 Schur form no longer satisfy SELECT = .TRUE.. This could also
113 be caused by underflow due to scaling.
114
115
116
117 LAPACK driver routine (version 3.N1o)vember 2006 CGEES(1)