1CHSEQR(1) LAPACK driver routine (version 3.1) CHSEQR(1)
2
3
4
6 CHSEQR - compute the eigenvalues of a Hessenberg matrix H and, option‐
7 ally, the matrices T and Z from the Schur decomposition H = Z T Z**H,
8 where T is an upper triangular matrix (the Schur form), and Z is the
9 unitary matrix of Schur vectors
10
12 SUBROUTINE CHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, W, Z, LDZ, WORK,
13 LWORK, INFO )
14
15 INTEGER IHI, ILO, INFO, LDH, LDZ, LWORK, N
16
17 CHARACTER COMPZ, JOB
18
19 COMPLEX H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * )
20
22 CHSEQR computes the eigenvalues of a Hessenberg matrix H
23 and, optionally, the matrices T and Z from the Schur decomposition
24 H = Z T Z**H, where T is an upper triangular matrix (the
25 Schur form), and Z is the unitary matrix of Schur vectors.
26
27 Optionally Z may be postmultiplied into an input unitary
28 matrix Q so that this routine can give the Schur factorization
29 of a matrix A which has been reduced to the Hessenberg form H
30 by the unitary matrix Q: A = Q*H*Q**H = (QZ)*H*(QZ)**H.
31
32
34 JOB (input) CHARACTER*1
35 = 'E': compute eigenvalues only;
36 = 'S': compute eigenvalues and the Schur form T.
37
38 COMPZ (input) CHARACTER*1
39 = 'N': no Schur vectors are computed;
40 = 'I': Z is initialized to the unit matrix and the matrix Z of
41 Schur vectors of H is returned; = 'V': Z must contain an unitary
42 matrix Q on entry, and the product Q*Z is returned.
43
44 N (input) INTEGER
45 The order of the matrix H. N .GE. 0.
46
47 ILO (input) INTEGER
48 IHI (input) INTEGER It is assumed that H is already upper tri‐
49 angular in rows and columns 1:ILO-1 and IHI+1:N. ILO and IHI are
50 normally set by a previous call to CGEBAL, and then passed to
51 CGEHRD when the matrix output by CGEBAL is reduced to Hessenberg
52 form. Otherwise ILO and IHI should be set to 1 and N respec‐
53 tively. If N.GT.0, then 1.LE.ILO.LE.IHI.LE.N. If N = 0, then
54 ILO = 1 and IHI = 0.
55
56 H (input/output) COMPLEX array, dimension (LDH,N)
57 On entry, the upper Hessenberg matrix H. On exit, if INFO = 0
58 and JOB = 'S', H contains the upper triangular matrix T from the
59 Schur decomposition (the Schur form). If INFO = 0 and JOB = 'E',
60 the contents of H are unspecified on exit. (The output value of
61 H when INFO.GT.0 is given under the description of INFO below.)
62
63 Unlike earlier versions of CHSEQR, this subroutine may explicitly
64 H(i,j) = 0 for i.GT.j and j = 1, 2, ... ILO-1 or j = IHI+1,
65 IHI+2, ... N.
66
67 LDH (input) INTEGER
68 The leading dimension of the array H. LDH .GE. max(1,N).
69
70 W (output) COMPLEX array, dimension (N)
71 The computed eigenvalues. If JOB = 'S', the eigenvalues are
72 stored in the same order as on the diagonal of the Schur form
73 returned in H, with W(i) = H(i,i).
74
75 Z (input/output) COMPLEX array, dimension (LDZ,N)
76 If COMPZ = 'N', Z is not referenced. If COMPZ = 'I', on entry Z
77 need not be set and on exit, if INFO = 0, Z contains the unitary
78 matrix Z of the Schur vectors of H. If COMPZ = 'V', on entry Z
79 must contain an N-by-N matrix Q, which is assumed to be equal to
80 the unit matrix except for the submatrix Z(ILO:IHI,ILO:IHI). On
81 exit, if INFO = 0, Z contains Q*Z. Normally Q is the unitary
82 matrix generated by CUNGHR after the call to CGEHRD which formed
83 the Hessenberg matrix H. (The output value of Z when INFO.GT.0 is
84 given under the description of INFO below.)
85
86 LDZ (input) INTEGER
87 The leading dimension of the array Z. if COMPZ = 'I' or COMPZ =
88 'V', then LDZ.GE.MAX(1,N). Otherwize, LDZ.GE.1.
89
90 WORK (workspace/output) COMPLEX array, dimension (LWORK)
91 On exit, if INFO = 0, WORK(1) returns an estimate of the optimal
92 value for LWORK.
93
94 LWORK (input) INTEGER The dimension of the array WORK. LWORK
95 .GE. max(1,N) is sufficient, but LWORK typically as large as 6*N
96 may be required for optimal performance. A workspace query to
97 determine the optimal workspace size is recommended.
98
99 If LWORK = -1, then CHSEQR does a workspace query. In this case,
100 CHSEQR checks the input parameters and estimates the optimal
101 workspace size for the given values of N, ILO and IHI. The esti‐
102 mate is returned in WORK(1). No error message related to LWORK
103 is issued by XERBLA. Neither H nor Z are accessed.
104
105 INFO (output) INTEGER
106 = 0: successful exit
107 value
108 the eigenvalues. Elements 1:ilo-1 and i+1:n of WR and WI contain
109 those eigenvalues which have been successfully computed. (Fail‐
110 ures are rare.)
111
112 If INFO .GT. 0 and JOB = 'E', then on exit, the remaining uncon‐
113 verged eigenvalues are the eigen- values of the upper Hessenberg
114 matrix rows and columns ILO through INFO of the final, output
115 value of H.
116
117 If INFO .GT. 0 and JOB = 'S', then on exit
118
119 (*) (initial value of H)*U = U*(final value of H)
120
121 where U is a unitary matrix. The final value of H is upper Hes‐
122 senberg and triangular in rows and columns INFO+1 through IHI.
123
124 If INFO .GT. 0 and COMPZ = 'V', then on exit
125
126 (final value of Z) = (initial value of Z)*U
127
128 where U is the unitary matrix in (*) (regard- less of the value of
129 JOB.)
130
131 If INFO .GT. 0 and COMPZ = 'I', then on exit (final value of Z) =
132 U where U is the unitary matrix in (*) (regard- less of the value
133 of JOB.)
134
135 If INFO .GT. 0 and COMPZ = 'N', then Z is not accessed.
136
137
138
139 LAPACK driver routine (version 3.N1o)vember 2006 CHSEQR(1)