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

NAME

6       ZGEEVX  -  for an N-by-N complex nonsymmetric matrix A, the eigenvalues
7       and, optionally, the left and/or right eigenvectors
8

SYNOPSIS

10       SUBROUTINE ZGEEVX( BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, W, VL, LDVL,
11                          VR,  LDVR,  ILO,  IHI, SCALE, ABNRM, RCONDE, RCONDV,
12                          WORK, LWORK, RWORK, INFO )
13
14           CHARACTER      BALANC, JOBVL, JOBVR, SENSE
15
16           INTEGER        IHI, ILO, INFO, LDA, LDVL, LDVR, LWORK, N
17
18           DOUBLE         PRECISION ABNRM
19
20           DOUBLE         PRECISION RCONDE( * ), RCONDV(  *  ),  RWORK(  *  ),
21                          SCALE( * )
22
23           COMPLEX*16     A(  LDA,  * ), VL( LDVL, * ), VR( LDVR, * ), W( * ),
24                          WORK( * )
25

PURPOSE

27       ZGEEVX computes for an N-by-N complex nonsymmetric matrix A, the eigen‐
28       values and, optionally, the left and/or right eigenvectors.
29
30       Optionally  also, it computes a balancing transformation to improve the
31       conditioning of the eigenvalues and eigenvectors (ILO, IHI, SCALE,  and
32       ABNRM),  reciprocal condition numbers for the eigenvalues (RCONDE), and
33       reciprocal condition numbers for the right
34       eigenvectors (RCONDV).
35
36       The right eigenvector v(j) of A satisfies
37                        A * v(j) = lambda(j) * v(j)
38       where lambda(j) is its eigenvalue.
39       The left eigenvector u(j) of A satisfies
40                     u(j)**H * A = lambda(j) * u(j)**H
41       where u(j)**H denotes the conjugate transpose of u(j).
42
43       The computed eigenvectors are normalized to have Euclidean  norm  equal
44       to 1 and largest component real.
45
46       Balancing a matrix means permuting the rows and columns to make it more
47       nearly upper triangular, and applying a diagonal similarity transforma‐
48       tion  D  *  A * D**(-1), where D is a diagonal matrix, to make its rows
49       and columns closer in norm and the condition numbers of its eigenvalues
50       and  eigenvectors  smaller.   The computed reciprocal condition numbers
51       correspond to the balanced matrix.  Permuting rows and columns will not
52       change the condition numbers (in exact arithmetic) but diagonal scaling
53       will.  For further explanation of balancing, see section 4.10.2 of  the
54       LAPACK Users' Guide.
55
56

ARGUMENTS

58       BALANC  (input) CHARACTER*1
59               Indicates  how  the  input  matrix  should be diagonally scaled
60               and/or permuted to improve the conditioning of its eigenvalues.
61               = 'N': Do not diagonally scale or permute;
62               =  'P':  Perform  permutations  to  make the matrix more nearly
63               upper triangular. Do not diagonally scale;  =  'S':  Diagonally
64               scale  the  matrix,  ie. replace A by D*A*D**(-1), where D is a
65               diagonal matrix chosen to make the rows and columns of  A  more
66               equal in norm. Do not permute; = 'B': Both diagonally scale and
67               permute A.
68
69               Computed reciprocal condition numbers will be  for  the  matrix
70               after  balancing  and/or  permuting.  Permuting does not change
71               condition numbers (in exact arithmetic), but balancing does.
72
73       JOBVL   (input) CHARACTER*1
74               = 'N': left eigenvectors of A are not computed;
75               = 'V': left eigenvectors of A are computed.  If SENSE = 'E'  or
76               'B', JOBVL must = 'V'.
77
78       JOBVR   (input) CHARACTER*1
79               = 'N': right eigenvectors of A are not computed;
80               = 'V': right eigenvectors of A are computed.  If SENSE = 'E' or
81               'B', JOBVR must = 'V'.
82
83       SENSE   (input) CHARACTER*1
84               Determines which reciprocal condition numbers are computed.   =
85               'N': None are computed;
86               = 'E': Computed for eigenvalues only;
87               = 'V': Computed for right eigenvectors only;
88               = 'B': Computed for eigenvalues and right eigenvectors.
89
90               If  SENSE  =  'E' or 'B', both left and right eigenvectors must
91               also be computed (JOBVL = 'V' and JOBVR = 'V').
92
93       N       (input) INTEGER
94               The order of the matrix A. N >= 0.
95
96       A       (input/output) COMPLEX*16 array, dimension (LDA,N)
97               On entry, the N-by-N matrix A.  On exit, A has  been  overwrit‐
98               ten.   If JOBVL = 'V' or JOBVR = 'V', A contains the Schur form
99               of the balanced version of the matrix A.
100
101       LDA     (input) INTEGER
102               The leading dimension of the array A.  LDA >= max(1,N).
103
104       W       (output) COMPLEX*16 array, dimension (N)
105               W contains the computed eigenvalues.
106
107       VL      (output) COMPLEX*16 array, dimension (LDVL,N)
108               If JOBVL = 'V', the left eigenvectors u(j) are stored one after
109               another in the columns of VL, in the same order as their eigen‐
110               values.  If JOBVL = 'N', VL is not referenced.  u(j) = VL(:,j),
111               the j-th column of VL.
112
113       LDVL    (input) INTEGER
114               The  leading  dimension of the array VL.  LDVL >= 1; if JOBVL =
115               'V', LDVL >= N.
116
117       VR      (output) COMPLEX*16 array, dimension (LDVR,N)
118               If JOBVR = 'V', the right  eigenvectors  v(j)  are  stored  one
119               after  another in the columns of VR, in the same order as their
120               eigenvalues.  If JOBVR = 'N', VR is  not  referenced.   v(j)  =
121               VR(:,j), the j-th column of VR.
122
123       LDVR    (input) INTEGER
124               The  leading  dimension of the array VR.  LDVR >= 1; if JOBVR =
125               'V', LDVR >= N.
126
127       ILO     (output) INTEGER
128               IHI     (output) INTEGER ILO and IHI are integer values  deter‐
129               mined  when  A  was balanced.  The balanced A(i,j) = 0 if I > J
130               and J = 1,...,ILO-1 or I = IHI+1,...,N.
131
132       SCALE   (output) DOUBLE PRECISION array, dimension (N)
133               Details of the permutations and scaling  factors  applied  when
134               balancing A.  If P(j) is the index of the row and column inter‐
135               changed with row and column j, and D(j) is the  scaling  factor
136               applied  to  row and column j, then SCALE(J) = P(J),    for J =
137               1,...,ILO-1 = D(J),    for J = ILO,...,IHI = P(J)     for  J  =
138               IHI+1,...,N.  The order in which the interchanges are made is N
139               to IHI+1, then 1 to ILO-1.
140
141       ABNRM   (output) DOUBLE PRECISION
142               The one-norm of the balanced matrix (the maximum of the sum  of
143               absolute values of elements of any column).
144
145       RCONDE  (output) DOUBLE PRECISION array, dimension (N)
146               RCONDE(j) is the reciprocal condition number of the j-th eigen‐
147               value.
148
149       RCONDV  (output) DOUBLE PRECISION array, dimension (N)
150               RCONDV(j) is the reciprocal condition number of the j-th  right
151               eigenvector.
152
153       WORK    (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
154               On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
155
156       LWORK   (input) INTEGER
157               The  dimension of the array WORK.  If SENSE = 'N' or 'E', LWORK
158               >= max(1,2*N), and if SENSE = 'V' or  'B',  LWORK  >=  N*N+2*N.
159               For good performance, LWORK must generally be larger.
160
161               If  LWORK  = -1, then a workspace query is assumed; the routine
162               only calculates the optimal size of  the  WORK  array,  returns
163               this  value  as the first entry of the WORK array, and no error
164               message related to LWORK is issued by XERBLA.
165
166       RWORK   (workspace) DOUBLE PRECISION array, dimension (2*N)
167
168       INFO    (output) INTEGER
169               = 0:  successful exit
170               < 0:  if INFO = -i, the i-th argument had an illegal value.
171               > 0:  if INFO = i, the QR algorithm failed to compute  all  the
172               eigenvalues, and no eigenvectors or condition numbers have been
173               computed; elements 1:ILO-1 and i+1:N of W  contain  eigenvalues
174               which have converged.
175
176
177
178 LAPACK driver routine (version 3.N1o)vember 2006                       ZGEEVX(1)
Impressum