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

NAME

6       DGEES  -  computes for an N-by-N real nonsymmetric matrix A, the eigen‐
7       values, the real Schur form T, and, optionally,  the  matrix  of  Schur
8       vectors Z
9

SYNOPSIS

11       SUBROUTINE DGEES( JOBVS,  SORT,  SELECT,  N,  A, LDA, SDIM, WR, WI, VS,
12                         LDVS, WORK, LWORK, BWORK, INFO )
13
14           CHARACTER     JOBVS, SORT
15
16           INTEGER       INFO, LDA, LDVS, LWORK, N, SDIM
17
18           LOGICAL       BWORK( * )
19
20           DOUBLE        PRECISION A( LDA, * ), VS( LDVS, * ), WI( * ),  WORK(
21                         * ), WR( * )
22
23           LOGICAL       SELECT
24
25           EXTERNAL      SELECT
26

PURPOSE

28       DGEES  computes for an N-by-N real nonsymmetric matrix A, the eigenval‐
29       ues, the real Schur form T, and, optionally, the matrix of  Schur  vec‐
30       tors  Z.   This  gives the Schur factorization A = Z*T*(Z**T).  Option‐
31       ally, it also orders the eigenvalues on the diagonal of the real  Schur
32       form  so  that  selected  eigenvalues are at the top left.  The leading
33       columns of Z then form an orthonormal basis for the invariant  subspace
34       corresponding  to  the selected eigenvalues.  A matrix is in real Schur
35       form if it is upper quasi-triangular with  1-by-1  and  2-by-2  blocks.
36       2-by-2 blocks will be standardized in the form
37               [  a  b  ]
38               [  c  a  ]
39       where b*c < 0. The eigenvalues of such a block are a +- sqrt(bc).
40

ARGUMENTS

42       JOBVS   (input) CHARACTER*1
43               = 'N': Schur vectors are not computed;
44               = 'V': Schur vectors are computed.
45
46       SORT    (input) CHARACTER*1
47               Specifies whether or not to order the eigenvalues on the diago‐
48               nal of the Schur form.  = 'N': Eigenvalues are not ordered;
49               = 'S': Eigenvalues are ordered (see SELECT).
50
51       SELECT  (external procedure) LOGICAL FUNCTION of two  DOUBLE  PRECISION
52       arguments
53               SELECT must be declared EXTERNAL in the calling subroutine.  If
54               SORT = 'S', SELECT is used to select eigenvalues to sort to the
55               top  left of the Schur form.  If SORT = 'N', SELECT is not ref‐
56               erenced.  An eigenvalue  WR(j)+sqrt(-1)*WI(j)  is  selected  if
57               SELECT(WR(j),WI(j))  is  true; i.e., if either one of a complex
58               conjugate pair of eigenvalues is selected,  then  both  complex
59               eigenvalues  are selected.  Note that a selected complex eigen‐
60               value may no longer satisfy SELECT(WR(j),WI(j)) = .TRUE.  after
61               ordering, since ordering may change the value of complex eigen‐
62               values (especially if the eigenvalue  is  ill-conditioned);  in
63               this case INFO is set to N+2 (see INFO below).
64
65       N       (input) INTEGER
66               The order of the matrix A. N >= 0.
67
68       A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
69               On entry, the N-by-N matrix A.  On exit, A has been overwritten
70               by its real Schur form T.
71
72       LDA     (input) INTEGER
73               The leading dimension of the array A.  LDA >= max(1,N).
74
75       SDIM    (output) INTEGER
76               If SORT = 'N', SDIM = 0.  If SORT = 'S', SDIM = number  of  ei‐
77               genvalues  (after  sorting)  for which SELECT is true. (Complex
78               conjugate pairs for which SELECT is true for either  eigenvalue
79               count as 2.)
80
81       WR      (output) DOUBLE PRECISION array, dimension (N)
82               WI       (output)  DOUBLE PRECISION array, dimension (N) WR and
83               WI contain the real and imaginary parts, respectively,  of  the
84               computed  eigenvalues in the same order that they appear on the
85               diagonal of the output Schur form T.  Complex  conjugate  pairs
86               of  eigenvalues  will  appear consecutively with the eigenvalue
87               having the positive imaginary part first.
88
89       VS      (output) DOUBLE PRECISION array, dimension (LDVS,N)
90               If JOBVS = 'V', VS contains the orthogonal matrix  Z  of  Schur
91               vectors.  If JOBVS = 'N', VS is not referenced.
92
93       LDVS    (input) INTEGER
94               The  leading  dimension of the array VS.  LDVS >= 1; if JOBVS =
95               'V', LDVS >= N.
96
97       WORK      (workspace/output)   DOUBLE   PRECISION   array,    dimension
98       (MAX(1,LWORK))
99               On exit, if INFO = 0, WORK(1) contains the optimal LWORK.
100
101       LWORK   (input) INTEGER
102               The  dimension  of  the  array WORK.  LWORK >= max(1,3*N).  For
103               good performance, LWORK must generally be larger.  If  LWORK  =
104               -1,  then a workspace query is assumed; the routine only calcu‐
105               lates the optimal size of the WORK array, returns this value as
106               the first entry of the WORK array, and no error message related
107               to LWORK is issued by XERBLA.
108
109       BWORK   (workspace) LOGICAL array, dimension (N)
110               Not referenced if SORT = 'N'.
111
112       INFO    (output) INTEGER
113               = 0: successful exit
114               < 0: if INFO = -i, the i-th argument had an illegal value.
115               > 0: if INFO = i, and i is
116               <= N: the QR algorithm failed to compute all the
117               eigenvalues; elements 1:ILO-1 and i+1:N of WR  and  WI  contain
118               those eigenvalues which have converged; if JOBVS = 'V', VS con‐
119               tains the matrix which reduces A  to  its  partially  converged
120               Schur  form.   =  N+1:  the  eigenvalues could not be reordered
121               because some eigenvalues were too close to separate (the  prob‐
122               lem is very ill-conditioned); = N+2: after reordering, roundoff
123               changed values of some complex eigenvalues so that leading  ei‐
124               genvalues  in  the  Schur  form no longer satisfy SELECT=.TRUE.
125               This could also be caused by underflow due to scaling.
126
127
128
129 LAPACK driver routine (version 3.N2o)vember 2008                        DGEES(1)
Impressum