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 factoriza­
       tion  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  average  of   the
       selected  eigenvalues  (RCONDE); and computes a reciprocal
       condition number for the right invariant  subspace  corre­
       sponding  to the selected eigenvalues (RCONDV).  The lead­
       ing columns of  Z  form  an  orthonormal  basis  for  this
       invariant subspace.

       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.

               Specifies  whether or not to order the eigenvalues
               on the diagonal of the Schur form.  = 'N':  Eigen­
               values 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', SELECT is not refer­
               enced.   An  eigenvalue  W(j)   is   selected   if
               SELECT(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 out­
               put 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  ref­
               erenced.

       LDVS    (input) INTEGER
               The leading dimension of the array VS.  LDVS >= 1,
               and if JOBVS = 'V', LDVS >= N.

               If SENSE = 'E' or 'B', RCONDE contains the  recip­
               rocal  condition  number  for  the  average of the
               selected eigenvalues.  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 per­
               formance, 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 converged Schur form.
               = N+1: the  eigenvalues  could  not  be  reordered
               because  some  eigenvalues were too close to sepa­
               rate (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.


Man(1) output converted with man2html