1ZGGEV(1)              LAPACK driver routine (version 3.1)             ZGGEV(1)
2
3
4

NAME

6       ZGGEV  -  for a pair of N-by-N complex nonsymmetric matrices (A,B), the
7       generalized eigenvalues, and optionally, the left and/or right general‐
8       ized eigenvectors
9

SYNOPSIS

11       SUBROUTINE ZGGEV( JOBVL,  JOBVR,  N,  A,  LDA, B, LDB, ALPHA, BETA, VL,
12                         LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO )
13
14           CHARACTER     JOBVL, JOBVR
15
16           INTEGER       INFO, LDA, LDB, LDVL, LDVR, LWORK, N
17
18           DOUBLE        PRECISION RWORK( * )
19
20           COMPLEX*16    A( LDA, * ), ALPHA( * ), B( LDB, * ), BETA( * ),  VL(
21                         LDVL, * ), VR( LDVR, * ), WORK( * )
22

PURPOSE

24       ZGGEV  computes  for  a  pair  of  N-by-N complex nonsymmetric matrices
25       (A,B), the generalized eigenvalues, and  optionally,  the  left  and/or
26       right generalized eigenvectors.
27
28       A  generalized  eigenvalue  for  a  pair  of matrices (A,B) is a scalar
29       lambda or a ratio alpha/beta = lambda, such that A - lambda*B is singu‐
30       lar.  It is usually represented as the pair (alpha,beta), as there is a
31       reasonable interpretation for beta=0, and even for both being zero.
32
33       The right generalized eigenvector v(j) corresponding to the generalized
34       eigenvalue lambda(j) of (A,B) satisfies
35
36                    A * v(j) = lambda(j) * B * v(j).
37
38       The  left generalized eigenvector u(j) corresponding to the generalized
39       eigenvalues lambda(j) of (A,B) satisfies
40
41                    u(j)**H * A = lambda(j) * u(j)**H * B
42
43       where u(j)**H is the conjugate-transpose of u(j).
44
45

ARGUMENTS

47       JOBVL   (input) CHARACTER*1
48               = 'N':  do not compute the left generalized eigenvectors;
49               = 'V':  compute the left generalized eigenvectors.
50
51       JOBVR   (input) CHARACTER*1
52               = 'N':  do not compute the right generalized eigenvectors;
53               = 'V':  compute the right generalized eigenvectors.
54
55       N       (input) INTEGER
56               The order of the matrices A, B, VL, and VR.  N >= 0.
57
58       A       (input/output) COMPLEX*16 array, dimension (LDA, N)
59               On entry, the matrix A in the pair (A,B).  On exit, A has  been
60               overwritten.
61
62       LDA     (input) INTEGER
63               The leading dimension of A.  LDA >= max(1,N).
64
65       B       (input/output) COMPLEX*16 array, dimension (LDB, N)
66               On  entry, the matrix B in the pair (A,B).  On exit, B has been
67               overwritten.
68
69       LDB     (input) INTEGER
70               The leading dimension of B.  LDB >= max(1,N).
71
72       ALPHA   (output) COMPLEX*16 array, dimension (N)
73               BETA    (output)  COMPLEX*16  array,  dimension  (N)  On  exit,
74               ALPHA(j)/BETA(j),  j=1,...,N, will be the generalized eigenval‐
75               ues.
76
77               Note: the quotients ALPHA(j)/BETA(j) may easily over- or under‐
78               flow,  and  BETA(j)  may  even  be zero.  Thus, the user should
79               avoid naively computing the ratio alpha/beta.   However,  ALPHA
80               will be always less than and usually comparable with norm(A) in
81               magnitude, and BETA always less  than  and  usually  comparable
82               with norm(B).
83
84       VL      (output) COMPLEX*16 array, dimension (LDVL,N)
85               If  JOBVL  =  'V',  the  left generalized eigenvectors u(j) are
86               stored one after another in the columns  of  VL,  in  the  same
87               order  as their eigenvalues.  Each eigenvector is scaled so the
88               largest component has abs(real part) +  abs(imag.  part)  =  1.
89               Not referenced if JOBVL = 'N'.
90
91       LDVL    (input) INTEGER
92               The leading dimension of the matrix VL. LDVL >= 1, and if JOBVL
93               = 'V', LDVL >= N.
94
95       VR      (output) COMPLEX*16 array, dimension (LDVR,N)
96               If JOBVR = 'V', the right  generalized  eigenvectors  v(j)  are
97               stored  one  after  another  in  the columns of VR, in the same
98               order as their eigenvalues.  Each eigenvector is scaled so  the
99               largest  component  has  abs(real  part) + abs(imag. part) = 1.
100               Not referenced if JOBVR = 'N'.
101
102       LDVR    (input) INTEGER
103               The leading dimension of the matrix VR. LDVR >= 1, and if JOBVR
104               = 'V', LDVR >= N.
105
106       WORK    (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
107               On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
108
109       LWORK   (input) INTEGER
110               The  dimension  of  the  array WORK.  LWORK >= max(1,2*N).  For
111               good performance, LWORK must generally be larger.
112
113               If LWORK = -1, then a workspace query is assumed;  the  routine
114               only  calculates  the  optimal  size of the WORK array, returns
115               this value as the first entry of the WORK array, and  no  error
116               message related to LWORK is issued by XERBLA.
117
118       RWORK   (workspace/output) DOUBLE PRECISION array, dimension (8*N)
119
120       INFO    (output) INTEGER
121               = 0:  successful exit
122               < 0:  if INFO = -i, the i-th argument had an illegal value.
123               =1,...,N:  The  QZ iteration failed.  No eigenvectors have been
124               calculated, but ALPHA(j) and  BETA(j)  should  be  correct  for
125               j=INFO+1,...,N.   > N:  =N+1: other then QZ iteration failed in
126               DHGEQZ,
127               =N+2: error return from DTGEVC.
128
129
130
131 LAPACK driver routine (version 3.N1o)vember 2006                        ZGGEV(1)
Impressum