1ZHGEQZ(1)                LAPACK routine (version 3.2)                ZHGEQZ(1)
2
3
4

NAME

6       ZHGEQZ - computes the eigenvalues of a complex matrix pair (H,T),
7

SYNOPSIS

9       SUBROUTINE ZHGEQZ( JOB,  COMPQ,  COMPZ,  N,  ILO,  IHI, H, LDH, T, LDT,
10                          ALPHA, BETA, Q, LDQ, Z,  LDZ,  WORK,  LWORK,  RWORK,
11                          INFO )
12
13           CHARACTER      COMPQ, COMPZ, JOB
14
15           INTEGER        IHI, ILO, INFO, LDH, LDQ, LDT, LDZ, LWORK, N
16
17           DOUBLE         PRECISION RWORK( * )
18
19           COMPLEX*16     ALPHA(  * ), BETA( * ), H( LDH, * ), Q( LDQ, * ), T(
20                          LDT, * ), WORK( * ), Z( LDZ, * )
21

PURPOSE

23       ZHGEQZ computes the eigenvalues of a complex matrix pair (H,T), where H
24       is an upper Hessenberg matrix and T is upper triangular, using the sin‐
25       gle-shift QZ method.
26       Matrix pairs of this type are produced by the reduction to  generalized
27       upper Hessenberg form of a complex matrix pair (A,B):
28          A = Q1*H*Z1**H,  B = Q1*T*Z1**H,
29       as computed by ZGGHRD.
30       If JOB='S', then the Hessenberg-triangular pair (H,T) is
31       also reduced to generalized Schur form,
32          H = Q*S*Z**H,  T = Q*P*Z**H,
33       where Q and Z are unitary matrices and S and P are upper triangular.
34       Optionally,  the unitary matrix Q from the generalized Schur factoriza‐
35       tion may be postmultiplied into an input matrix  Q1,  and  the  unitary
36       matrix  Z  may be postmultiplied into an input matrix Z1.  If Q1 and Z1
37       are the unitary matrices from ZGGHRD that reduced the matrix pair (A,B)
38       to  generalized Hessenberg form, then the output matrices Q1*Q and Z1*Z
39       are the unitary factors from the  generalized  Schur  factorization  of
40       (A,B):
41          A = (Q1*Q)*S*(Z1*Z)**H,  B = (Q1*Q)*P*(Z1*Z)**H.
42       To avoid overflow, eigenvalues of the matrix pair (H,T)
43       (equivalently,  of  (A,B))  are  computed  as  a pair of complex values
44       (alpha,beta).  If beta is nonzero, lambda = alpha / beta is  an  eigen‐
45       value of the generalized nonsymmetric eigenvalue problem (GNEP)
46          A*x = lambda*B*x
47       and  if  alpha  is  nonzero,  mu = beta / alpha is an eigenvalue of the
48       alternate form of the GNEP
49          mu*A*y = B*y.
50       The values of alpha and beta  for  the  i-th  eigenvalue  can  be  read
51       directly  from  the  generalized  Schur  form:   alpha = S(i,i), beta =
52       P(i,i).
53       Ref: C.B. Moler & G.W. Stewart, "An Algorithm for Generalized Matrix
54            Eigenvalue Problems", SIAM J. Numer. Anal., 10(1973),
55            pp. 241--256.
56

ARGUMENTS

58       JOB     (input) CHARACTER*1
59               = 'E': Compute eigenvalues only;
60               = 'S': Computer eigenvalues and the Schur form.
61
62       COMPQ   (input) CHARACTER*1
63               = 'N': Left Schur vectors (Q) are not computed;
64               = 'I': Q is initialized to the unit matrix and the matrix Q  of
65               left  Schur vectors of (H,T) is returned; = 'V': Q must contain
66               a unitary matrix Q1 on entry and the product Q1*Q is returned.
67
68       COMPZ   (input) CHARACTER*1
69               = 'N': Right Schur vectors (Z) are not computed;
70               = 'I': Q is initialized to the unit matrix and the matrix Z  of
71               right Schur vectors of (H,T) is returned; = 'V': Z must contain
72               a unitary matrix Z1 on entry and the product Z1*Z is returned.
73
74       N       (input) INTEGER
75               The order of the matrices H, T, Q, and Z.  N >= 0.
76
77       ILO     (input) INTEGER
78               IHI     (input) INTEGER ILO and IHI mark the rows  and  columns
79               of  H  which  are  in Hessenberg form.  It is assumed that A is
80               already upper  triangular  in  rows  and  columns  1:ILO-1  and
81               IHI+1:N.   If  N > 0, 1 <= ILO <= IHI <= N; if N = 0, ILO=1 and
82               IHI=0.
83
84       H       (input/output) COMPLEX*16 array, dimension (LDH, N)
85               On entry, the N-by-N upper Hessenberg matrix H.   On  exit,  if
86               JOB  =  'S',  H contains the upper triangular matrix S from the
87               generalized Schur factorization.  If JOB = 'E', the diagonal of
88               H matches that of S, but the rest of H is unspecified.
89
90       LDH     (input) INTEGER
91               The leading dimension of the array H.  LDH >= max( 1, N ).
92
93       T       (input/output) COMPLEX*16 array, dimension (LDT, N)
94               On  entry,  the  N-by-N upper triangular matrix T.  On exit, if
95               JOB = 'S', T contains the upper triangular matrix  P  from  the
96               generalized Schur factorization.  If JOB = 'E', the diagonal of
97               T matches that of P, but the rest of T is unspecified.
98
99       LDT     (input) INTEGER
100               The leading dimension of the array T.  LDT >= max( 1, N ).
101
102       ALPHA   (output) COMPLEX*16 array, dimension (N)
103               The complex scalars alpha that define the eigenvalues of  GNEP.
104               ALPHA(i) = S(i,i) in the generalized Schur factorization.
105
106       BETA    (output) COMPLEX*16 array, dimension (N)
107               The  real non-negative scalars beta that define the eigenvalues
108               of GNEP.  BETA(i) = P(i,i) in the generalized Schur  factoriza‐
109               tion.   Together,  the  quantities  alpha = ALPHA(j) and beta =
110               BETA(j) represent the j-th eigenvalue of the matrix pair (A,B),
111               in  one  of  the  forms lambda = alpha/beta or mu = beta/alpha.
112               Since either lambda or mu may overflow,  they  should  not,  in
113               general, be computed.
114
115       Q       (input/output) COMPLEX*16 array, dimension (LDQ, N)
116               On  entry,  if  COMPZ  = 'V', the unitary matrix Q1 used in the
117               reduction of (A,B) to generalized Hessenberg form.  On exit, if
118               COMPZ = 'I', the unitary matrix of left Schur vectors of (H,T),
119               and if COMPZ = 'V', the unitary matrix of left Schur vectors of
120               (A,B).  Not referenced if COMPZ = 'N'.
121
122       LDQ     (input) INTEGER
123               The  leading dimension of the array Q.  LDQ >= 1.  If COMPQ='V'
124               or 'I', then LDQ >= N.
125
126       Z       (input/output) COMPLEX*16 array, dimension (LDZ, N)
127               On entry, if COMPZ = 'V', the unitary matrix  Z1  used  in  the
128               reduction of (A,B) to generalized Hessenberg form.  On exit, if
129               COMPZ = 'I', the unitary  matrix  of  right  Schur  vectors  of
130               (H,T),  and  if  COMPZ = 'V', the unitary matrix of right Schur
131               vectors of (A,B).  Not referenced if COMPZ = 'N'.
132
133       LDZ     (input) INTEGER
134               The leading dimension of the array Z.  LDZ >= 1.  If  COMPZ='V'
135               or 'I', then LDZ >= N.
136
137       WORK    (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
138               On exit, if INFO >= 0, WORK(1) returns the optimal LWORK.
139
140       LWORK   (input) INTEGER
141               The  dimension of the array WORK.  LWORK >= max(1,N).  If LWORK
142               = -1, then a workspace query is assumed; the routine only  cal‐
143               culates  the optimal size of the WORK array, returns this value
144               as the first entry of the WORK  array,  and  no  error  message
145               related to LWORK is issued by XERBLA.
146
147       RWORK   (workspace) DOUBLE PRECISION array, dimension (N)
148
149       INFO    (output) INTEGER
150               = 0: successful exit
151               < 0: if INFO = -i, the i-th argument had an illegal value
152               =  1,...,N: the QZ iteration did not converge.  (H,T) is not in
153               Schur form, but ALPHA(i) and BETA(i), i=INFO+1,...,N should  be
154               correct.   =  N+1,...,2*N: the shift calculation failed.  (H,T)
155               is not  in  Schur  form,  but  ALPHA(i)  and  BETA(i),  i=INFO-
156               N+1,...,N should be correct.
157

FURTHER DETAILS

159       We  assume  that  complex  ABS  works as long as its value is less than
160       overflow.
161
162
163
164 LAPACK routine (version 3.2)    November 2008                       ZHGEQZ(1)
Impressum