1CHGEQZ(1)                LAPACK routine (version 3.1)                CHGEQZ(1)
2
3
4

NAME

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

SYNOPSIS

9       SUBROUTINE CHGEQZ( 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           REAL           RWORK( * )
18
19           COMPLEX        ALPHA(  * ), BETA( * ), H( LDH, * ), Q( LDQ, * ), T(
20                          LDT, * ), WORK( * ), Z( LDZ, * )
21

PURPOSE

23       CHGEQZ 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
29          A = Q1*H*Z1**H,  B = Q1*T*Z1**H,
30
31       as computed by CGGHRD.
32
33       If JOB='S', then the Hessenberg-triangular pair (H,T) is
34       also reduced to generalized Schur form,
35
36          H = Q*S*Z**H,  T = Q*P*Z**H,
37
38       where Q and Z are unitary matrices and S and P are upper triangular.
39
40       Optionally,  the unitary matrix Q from the generalized Schur factoriza‐
41       tion may be postmultiplied into an input matrix  Q1,  and  the  unitary
42       matrix  Z  may be postmultiplied into an input matrix Z1.  If Q1 and Z1
43       are the unitary matrices from CGGHRD that reduced the matrix pair (A,B)
44       to  generalized Hessenberg form, then the output matrices Q1*Q and Z1*Z
45       are the unitary factors from the  generalized  Schur  factorization  of
46       (A,B):
47
48          A = (Q1*Q)*S*(Z1*Z)**H,  B = (Q1*Q)*P*(Z1*Z)**H.
49
50       To avoid overflow, eigenvalues of the matrix pair (H,T)
51       (equivalently,  of  (A,B))  are  computed  as  a pair of complex values
52       (alpha,beta).  If beta is nonzero, lambda = alpha / beta is  an  eigen‐
53       value of the generalized nonsymmetric eigenvalue problem (GNEP)
54          A*x = lambda*B*x
55       and  if  alpha  is  nonzero,  mu = beta / alpha is an eigenvalue of the
56       alternate form of the GNEP
57          mu*A*y = B*y.
58       The values of alpha and beta  for  the  i-th  eigenvalue  can  be  read
59       directly  from  the  generalized  Schur  form:   alpha = S(i,i), beta =
60       P(i,i).
61
62       Ref: C.B. Moler & G.W. Stewart, "An Algorithm for Generalized Matrix
63            Eigenvalue Problems", SIAM J. Numer. Anal., 10(1973),
64            pp. 241--256.
65
66

ARGUMENTS

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

FURTHER DETAILS

172       We assume that complex ABS works as long as  its  value  is  less  than
173       overflow.
174
175
176
177
178 LAPACK routine (version 3.1)    November 2006                       CHGEQZ(1)
Impressum