zgeesx(3)
NAME
- ZGEESX - compute for an N-by-N complex nonsymmetric matrix
- A, the eigenvalues, the Schur form T, and, optionally, the matrix
- of Schur vectors Z
SYNOPSIS
SUBROUTINE ZGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA,
SDIM, W, VS, LDVS, RCONDE, RCONDV, WORK, LWORK, RWORK, BWORK, INFO )
CHARACTER JOBVS, SENSE, SORT
INTEGER INFO, LDA, LDVS, LWORK, N, SDIM
DOUBLE PRECISION RCONDE, RCONDV
LOGICAL BWORK( * )
DOUBLE PRECISION RWORK( * )
COMPLEX*16 A( LDA, * ), VS( LDVS, * ), W( * ),
WORK( * )
LOGICAL SELECT
EXTERNAL SELECT
PURPOSE
- ZGEESX computes for an N-by-N complex nonsymmetric matrix
- A, the eigenvalues, 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; computes a reciprocal condition number for the av
- erage of the selected eigenvalues (RCONDE); and computes a recip
- rocal condition number for the right invariant subspace corre
- sponding to the selected eigenvalues (RCONDV). The leading
- columns of Z form an orthonormal basis for this invariant sub
- space.
- For further explanation of the reciprocal condition num
- bers RCONDE and RCONDV, see Section 4.10 of the LAPACK Users'
- Guide (where these quantities are called s and sep respectively).
- A complex matrix is in Schur form if it is upper triangu
- lar.
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 diagonal of the Schur form. = 'N': Eigenvalues are not
- ordered;
= 'S': Eigenvalues are ordered (see SELECT).
- SELECT (input) 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', SE
- LECT is not referenced. An eigenvalue W(j) is selected if SE
- LECT(W(j)) is true.
- SENSE (input) CHARACTER*1
- Determines which reciprocal condition numbers are
- computed. = 'N': None are computed;
= 'E': Computed for average of selected eigenval
- ues only;
= 'V': Computed for selected right invariant sub
- space only;
= 'B': Computed for both. If SENSE = 'E', 'V' or
- 'B', SORT must equal 'S'.
- 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 is
- 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 eigenvalues 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 vectors. If JOBVS = 'N', VS is not referenced.
- LDVS (input) INTEGER
- The leading dimension of the array VS. LDVS >= 1,
- and if JOBVS = 'V', LDVS >= N.
- RCONDE (output) DOUBLE PRECISION
- If SENSE = 'E' or 'B', RCONDE contains the recip
- rocal condition number for the average of the selected eigenval
- ues. Not referenced if SENSE = 'N' or 'V'.
- RCONDV (output) DOUBLE PRECISION
- If SENSE = 'V' or 'B', RCONDV contains the recip
- rocal condition number for the selected right invariant subspace.
- Not referenced if SENSE = 'N' or 'E'.
- WORK (workspace/output) COMPLEX*16 array, dimension
- (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). Also, if SENSE = 'E' or 'V' or 'B', LWORK >=
- 2*SDIM*(N-SDIM), where SDIM is the number of selected eigenvalues
- computed by this routine. Note that 2*SDIM*(N-SDIM) <= N*N/2.
- For good performance, LWORK must generally be larger.
- 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 ille
- gal 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 con
- tain those eigenvalues which have converged; if JOBVS = 'V', VS
- contains the transformation which reduces A to its partially con
- verged Schur form. = N+1: the eigenvalues could not be reordered
- because some eigenvalues 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 eigen
- values in the Schur form no longer satisfy SELECT=.TRUE. This
- could also be caused by underflow due to scaling.
- LAPACK version 3.0 15 June 2000