1STRSEN(1)                LAPACK routine (version 3.2)                STRSEN(1)
2
3
4

NAME

6       STRSEN  -  reorders  the  real Schur factorization of a real matrix A =
7       Q*T*Q**T, so that a selected cluster  of  eigenvalues  appears  in  the
8       leading diagonal blocks of the upper quasi-triangular matrix T,
9

SYNOPSIS

11       SUBROUTINE STRSEN( JOB, COMPQ, SELECT, N, T, LDT, Q, LDQ, WR, WI, M, S,
12                          SEP, WORK, LWORK, IWORK, LIWORK, INFO )
13
14           CHARACTER      COMPQ, JOB
15
16           INTEGER        INFO, LDQ, LDT, LIWORK, LWORK, M, N
17
18           REAL           S, SEP
19
20           LOGICAL        SELECT( * )
21
22           INTEGER        IWORK( * )
23
24           REAL           Q( LDQ, * ), T( LDT, * ), WI( * ), WORK( * ), WR(  *
25                          )
26

PURPOSE

28       STRSEN  reorders  the  real  Schur  factorization  of a real matrix A =
29       Q*T*Q**T, so that a selected cluster  of  eigenvalues  appears  in  the
30       leading diagonal blocks of the upper quasi-triangular matrix T, and the
31       leading columns of Q form an orthonormal  basis  of  the  corresponding
32       right invariant subspace.
33       Optionally the routine computes the reciprocal condition numbers of the
34       cluster of eigenvalues and/or the invariant subspace.   T  must  be  in
35       Schur canonical form (as returned by SHSEQR), that is, block upper tri‐
36       angular with 1-by-1 and 2-by-2 diagonal blocks;  each  2-by-2  diagonal
37       block  has  its diagonal elemnts equal and its off-diagonal elements of
38       opposite sign.
39

ARGUMENTS

41       JOB     (input) CHARACTER*1
42               Specifies whether condition numbers are required for the  clus‐
43               ter of eigenvalues (S) or the invariant subspace (SEP):
44               = 'N': none;
45               = 'E': for eigenvalues only (S);
46               = 'V': for invariant subspace only (SEP);
47               = 'B': for both eigenvalues and invariant subspace (S and SEP).
48
49       COMPQ   (input) CHARACTER*1
50               = 'V': update the matrix Q of Schur vectors;
51               = 'N': do not update Q.
52
53       SELECT  (input) LOGICAL array, dimension (N)
54               SELECT  specifies  the  eigenvalues in the selected cluster. To
55               select a real eigenvalue w(j), SELECT(j) must be set to .TRUE..
56               To  select  a  complex  conjugate  pair of eigenvalues w(j) and
57               w(j+1),  corresponding  to  a  2-by-2  diagonal  block,  either
58               SELECT(j)  or SELECT(j+1) or both must be set to .TRUE.; a com‐
59               plex conjugate pair of eigenvalues must be either both included
60               in the cluster or both excluded.
61
62       N       (input) INTEGER
63               The order of the matrix T. N >= 0.
64
65       T       (input/output) REAL array, dimension (LDT,N)
66               On entry, the upper quasi-triangular matrix T, in Schur canoni‐
67               cal form.  On exit, T is overwritten by the reordered matrix T,
68               again in Schur canonical form, with the selected eigenvalues in
69               the leading diagonal blocks.
70
71       LDT     (input) INTEGER
72               The leading dimension of the array T. LDT >= max(1,N).
73
74       Q       (input/output) REAL array, dimension (LDQ,N)
75               On entry, if COMPQ = 'V', the matrix Q of  Schur  vectors.   On
76               exit, if COMPQ = 'V', Q has been postmultiplied by the orthogo‐
77               nal transformation matrix which reorders T; the leading M  col‐
78               umns of Q form an orthonormal basis for the specified invariant
79               subspace.  If COMPQ = 'N', Q is not referenced.
80
81       LDQ     (input) INTEGER
82               The leading dimension of the array Q.  LDQ >= 1; and if COMPQ =
83               'V', LDQ >= N.
84
85       WR      (output) REAL array, dimension (N)
86               WI       (output) REAL array, dimension (N) The real and imagi‐
87               nary parts, respectively, of the reordered  eigenvalues  of  T.
88               The eigenvalues are stored in the same order as on the diagonal
89               of T, with WR(i) = T(i,i) and, if T(i:i+1,i:i+1)  is  a  2-by-2
90               diagonal  block, WI(i) > 0 and WI(i+1) = -WI(i). Note that if a
91               complex eigenvalue is sufficiently  ill-conditioned,  then  its
92               value  may  differ significantly from its value before reorder‐
93               ing.
94
95       M       (output) INTEGER
96               The dimension of the specified invariant subspace.  0 < = M  <=
97               N.
98
99       S       (output) REAL
100               If  JOB = 'E' or 'B', S is a lower bound on the reciprocal con‐
101               dition number for the selected cluster of eigenvalues.  S  can‐
102               not  underestimate the true reciprocal condition number by more
103               than a factor of sqrt(N). If M = 0 or N, S = 1.  If JOB  =  'N'
104               or 'V', S is not referenced.
105
106       SEP     (output) REAL
107               If  JOB = 'V' or 'B', SEP is the estimated reciprocal condition
108               number of the specified invariant subspace. If M = 0 or N,  SEP
109               = norm(T).  If JOB = 'N' or 'E', SEP is not referenced.
110
111       WORK    (workspace/output) REAL array, dimension (MAX(1,LWORK))
112               On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
113
114       LWORK   (input) INTEGER
115               The  dimension  of  the  array  WORK.   If  JOB = 'N', LWORK >=
116               max(1,N); if JOB = 'E', LWORK >= max(1,M*(N-M)); if JOB  =  'V'
117               or  'B',  LWORK  >=  max(1,2*M*(N-M)).   If  LWORK = -1, then a
118               workspace query is assumed; the  routine  only  calculates  the
119               optimal size of the WORK array, returns this value as the first
120               entry of the WORK array, and no error message related to  LWORK
121               is issued by XERBLA.
122
123       IWORK   (workspace) INTEGER array, dimension (MAX(1,LIWORK))
124               On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
125
126       LIWORK  (input) INTEGER
127               The  dimension of the array IWORK.  If JOB = 'N' or 'E', LIWORK
128               >= 1; if JOB = 'V' or 'B', LIWORK >= max(1,M*(N-M)).  If LIWORK
129               =  -1, then a workspace query is assumed; the routine only cal‐
130               culates the optimal size of the IWORK array, returns this value
131               as  the  first  entry  of the IWORK array, and no error message
132               related to LIWORK is issued by XERBLA.
133
134       INFO    (output) INTEGER
135               = 0: successful exit
136               < 0: if INFO = -i, the i-th argument had an illegal value
137               = 1: reordering of T failed because some  eigenvalues  are  too
138               close  to separate (the problem is very ill-conditioned); T may
139               have been partially reordered, and WR and WI contain the eigen‐
140               values  in the same order as in T; S and SEP (if requested) are
141               set to zero.
142

FURTHER DETAILS

144       STRSEN first collects the selected eigenvalues by computing an orthogo‐
145       nal  transformation  Z  to  move  them to the top left corner of T.  In
146       other words, the selected eigenvalues are the eigenvalues of T11 in:
147                     Z'*T*Z = ( T11 T12 ) n1
148                              (  0  T22 ) n2
149                                 n1  n2
150       where N = n1+n2 and Z' means the transpose of Z. The first  n1  columns
151       of Z span the specified invariant subspace of T.
152       If  T has been obtained from the real Schur factorization of a matrix A
153       = Q*T*Q', then the reordered real Schur factorization of A is given  by
154       A  =  (Q*Z)*(Z'*T*Z)*(Q*Z)',  and  the first n1 columns of Q*Z span the
155       corresponding invariant subspace of A.
156       The reciprocal condition number of the average of  the  eigenvalues  of
157       T11 may be returned in S. S lies between 0 (very badly conditioned) and
158       1 (very well conditioned). It is computed as follows. First we  compute
159       R so that
160                              P = ( I  R ) n1
161                                  ( 0  0 ) n2
162                                    n1 n2
163       is  the  projector on the invariant subspace associated with T11.  R is
164       the solution of the Sylvester equation:
165                             T11*R - R*T22 = T12.
166       Let F-norm(M) denote the Frobenius-norm of M and 2-norm(M)  denote  the
167       two-norm of M. Then S is computed as the lower bound
168                           (1 + F-norm(R)**2)**(-1/2)
169       on  the  reciprocal of 2-norm(P), the true reciprocal condition number.
170       S cannot underestimate 1 / 2-norm(P) by more than a factor of sqrt(N).
171       An approximate error bound for the computed average of the  eigenvalues
172       of T11 is
173                              EPS * norm(T) / S
174       where EPS is the machine precision.
175       The reciprocal condition number of the right invariant subspace spanned
176       by the first n1 columns of Z (or of Q*Z) is returned in  SEP.   SEP  is
177       defined as the separation of T11 and T22:
178                          sep( T11, T22 ) = sigma-min( C )
179       where sigma-min(C) is the smallest singular value of the
180       n1*n2-by-n1*n2 matrix
181          C  = kprod( I(n2), T11 ) - kprod( transpose(T22), I(n1) ) I(m) is an
182       m by m identity matrix, and kprod denotes  the  Kronecker  product.  We
183       estimate sigma-min(C) by the reciprocal of an estimate of the 1-norm of
184       inverse(C). The true reciprocal 1-norm of inverse(C) cannot differ from
185       sigma-min(C)  by more than a factor of sqrt(n1*n2).  When SEP is small,
186       small changes in T can cause large changes in the  invariant  subspace.
187       An approximate bound on the maximum angular error in the computed right
188       invariant subspace is
189                           EPS * norm(T) / SEP
190
191
192
193 LAPACK routine (version 3.2)    November 2008                       STRSEN(1)
Impressum