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

NAME

6       ZGGEV  -  computes  for  a pair of N-by-N complex nonsymmetric matrices
7       (A,B), the generalized eigenvalues, and  optionally,  the  left  and/or
8       right generalized 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.  A generalized eigenvalue for a pair of
27       matrices (A,B) is a scalar lambda or a ratio alpha/beta = lambda,  such
28       that  A  -  lambda*B is singular. It is usually represented as the pair
29       (alpha,beta), as there is a reasonable interpretation for  beta=0,  and
30       even for both being zero.
31       The right generalized eigenvector v(j) corresponding to the generalized
32       eigenvalue lambda(j) of (A,B) satisfies
33                    A * v(j) = lambda(j) * B * v(j).
34       The left generalized eigenvector u(j) corresponding to the  generalized
35       eigenvalues lambda(j) of (A,B) satisfies
36                    u(j)**H * A = lambda(j) * u(j)**H * B
37       where u(j)**H is the conjugate-transpose of u(j).
38

ARGUMENTS

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