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

NAME

6       DGEES  - for an N-by-N real nonsymmetric matrix A, the eigenvalues, the
7       real Schur form T, and, optionally, the matrix of Schur vectors Z
8

SYNOPSIS

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

PURPOSE

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

ARGUMENTS

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