ZGEES(1) LAPACK driver routine (version 3.2) ZGEES(1)NAME
ZGEES - computes for an N-by-N complex nonsymmetric matrix A, the ei‐
genvalues, the Schur form T, and, optionally, the matrix of Schur vec‐
tors Z
SYNOPSIS
SUBROUTINE ZGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS, LDVS,
WORK, LWORK, RWORK, BWORK, INFO )
CHARACTER JOBVS, SORT
INTEGER INFO, LDA, LDVS, LWORK, N, SDIM
LOGICAL BWORK( * )
DOUBLE PRECISION RWORK( * )
COMPLEX*16 A( LDA, * ), VS( LDVS, * ), W( * ), WORK( * )
LOGICAL SELECT
EXTERNAL SELECT
PURPOSE
ZGEES computes for an N-by-N complex nonsymmetric matrix A, the eigen‐
values, the Schur form T, and, optionally, the matrix of Schur vectors
Z. This gives the Schur factorization A = Z*T*(Z**H). Optionally, it
also orders the eigenvalues on the diagonal of the Schur form so that
selected eigenvalues are at the top left. The leading columns of Z
then form an orthonormal basis for the invariant subspace corresponding
to the selected eigenvalues. A complex matrix is in Schur form if it
is upper triangular.
ARGUMENTS
JOBVS (input) CHARACTER*1
= 'N': Schur vectors are not computed;
= 'V': Schur vectors are computed.
SORT (input) CHARACTER*1
Specifies whether or not to order the eigenvalues on the diago‐
nal of the Schur form. = 'N': Eigenvalues are not ordered:
= 'S': Eigenvalues are ordered (see SELECT).
SELECT (external procedure) LOGICAL FUNCTION of one COMPLEX*16 argu‐
ment
SELECT must be declared EXTERNAL in the calling subroutine. If
SORT = 'S', SELECT is used to select eigenvalues to order to
the top left of the Schur form. IF SORT = 'N', SELECT is not
referenced. The eigenvalue W(j) is selected if SELECT(W(j)) is
true.
N (input) INTEGER
The order of the matrix A. N >= 0.
A (input/output) COMPLEX*16 array, dimension (LDA,N)
On entry, the N-by-N matrix A. On exit, A has been overwritten
by its Schur form T.
LDA (input) INTEGER
The leading dimension of the array A. LDA >= max(1,N).
SDIM (output) INTEGER
If SORT = 'N', SDIM = 0. If SORT = 'S', SDIM = number of ei‐
genvalues for which SELECT is true.
W (output) COMPLEX*16 array, dimension (N)
W contains the computed eigenvalues, in the same order that
they appear on the diagonal of the output Schur form T.
VS (output) COMPLEX*16 array, dimension (LDVS,N)
If JOBVS = 'V', VS contains the unitary matrix Z of Schur vec‐
tors. If JOBVS = 'N', VS is not referenced.
LDVS (input) INTEGER
The leading dimension of the array VS. LDVS >= 1; if JOBVS =
'V', LDVS >= N.
WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
LWORK (input) INTEGER
The dimension of the array WORK. LWORK >= max(1,2*N). For
good performance, LWORK must generally be larger. If LWORK =
-1, then a workspace query is assumed; the routine only calcu‐
lates the optimal size of the WORK array, returns this value as
the first entry of the WORK array, and no error message related
to LWORK is issued by XERBLA.
RWORK (workspace) DOUBLE PRECISION array, dimension (N)
BWORK (workspace) LOGICAL array, dimension (N)
Not referenced if SORT = 'N'.
INFO (output) INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value.
> 0: if INFO = i, and i is
<= N: the QR algorithm failed to compute all the
eigenvalues; elements 1:ILO-1 and i+1:N of W contain those ei‐
genvalues which have converged; if JOBVS = 'V', VS contains the
matrix which reduces A to its partially converged Schur form.
= N+1: the eigenvalues could not be reordered because some ei‐
genvalues were too close to separate (the problem is very ill-
conditioned); = N+2: after reordering, roundoff changed values
of some complex eigenvalues so that leading eigenvalues in the
Schur form no longer satisfy SELECT = .TRUE.. This could also
be caused by underflow due to scaling.
LAPACK driver routine (version 3November 2008 ZGEES(1)