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