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

NAME

6       CTGSEN  -  reorders  the  generalized  Schur decomposition of a complex
7       matrix pair (A, B) (in terms of an unitary equivalence trans- formation
8       Q'  * (A, B) * Z), so that a selected cluster of eigenvalues appears in
9       the leading diagonal blocks of the pair (A,B)
10

SYNOPSIS

12       SUBROUTINE CTGSEN( IJOB, WANTQ, WANTZ,  SELECT,  N,  A,  LDA,  B,  LDB,
13                          ALPHA,  BETA,  Q, LDQ, Z, LDZ, M, PL, PR, DIF, WORK,
14                          LWORK, IWORK, LIWORK, INFO )
15
16           LOGICAL        WANTQ, WANTZ
17
18           INTEGER        IJOB, INFO, LDA, LDB, LDQ, LDZ, LIWORK, LWORK, M, N
19
20           REAL           PL, PR
21
22           LOGICAL        SELECT( * )
23
24           INTEGER        IWORK( * )
25
26           REAL           DIF( * )
27
28           COMPLEX        A( LDA, * ), ALPHA( * ), B( LDB, * ), BETA( * ),  Q(
29                          LDQ, * ), WORK( * ), Z( LDZ, * )
30

PURPOSE

32       CTGSEN reorders the generalized Schur decomposition of a complex matrix
33       pair (A, B) (in terms of an unitary equivalence trans- formation  Q'  *
34       (A,  B)  * Z), so that a selected cluster of eigenvalues appears in the
35       leading diagonal blocks of the pair (A,B). The leading columns of Q and
36       Z  form  unitary  bases of the corresponding left and right eigenspaces
37       (deflating subspaces). (A, B) must be in  generalized  Schur  canonical
38       form, that is, A and B are both upper triangular.
39       CTGSEN also computes the generalized eigenvalues
40                w(j)= ALPHA(j) / BETA(j)
41       of the reordered matrix pair (A, B).
42       Optionally, the routine computes estimates of reciprocal condition num‐
43       bers  for  eigenvalues  and  eigenspaces.  These  are   Difu[(A11,B11),
44       (A22,B22)]  and  Difl[(A11,B11),  (A22,B22)],  i.e.  the  separation(s)
45       between the matrix pairs (A11, B11) and (A22,B22)  that  correspond  to
46       the  selected  cluster  and the eigenvalues outside the cluster, resp.,
47       and norms of "projections" onto left and right eigenspaces w.r.t.   the
48       selected cluster in the (1,1)-block.
49

ARGUMENTS

51       IJOB    (input) integer
52               Specifies  whether condition numbers are required for the clus‐
53               ter of eigenvalues (PL and PR) or the deflating subspaces (Difu
54               and Difl):
55               =0: Only reorder w.r.t. SELECT. No extras.
56               =1:  Reciprocal  of  norms of "projections" onto left and right
57               eigenspaces w.r.t. the selected cluster (PL and PR).  =2: Upper
58               bounds on Difu and Difl. F-norm-based estimate
59               (DIF(1:2)).
60               =3: Estimate of Difu and Difl. 1-norm-based estimate
61               (DIF(1:2)).   About 5 times as expensive as IJOB = 2.  =4: Com‐
62               pute PL, PR and DIF (i.e. 0, 1 and 2 above):  Economic  version
63               to  get  it  all.   =5: Compute PL, PR and DIF (i.e. 0, 1 and 3
64               above)
65
66       WANTQ   (input) LOGICAL
67
68       WANTZ   (input) LOGICAL
69
70       SELECT  (input) LOGICAL array, dimension (N)
71               SELECT specifies the eigenvalues in the  selected  cluster.  To
72               select an eigenvalue w(j), SELECT(j) must be set to .TRUE..
73
74       N       (input) INTEGER
75               The order of the matrices A and B. N >= 0.
76
77       A       (input/output) COMPLEX array, dimension(LDA,N)
78               On  entry,  the upper triangular matrix A, in generalized Schur
79               canonical form.  On exit, A is  overwritten  by  the  reordered
80               matrix A.
81
82       LDA     (input) INTEGER
83               The leading dimension of the array A. LDA >= max(1,N).
84
85       B       (input/output) COMPLEX array, dimension(LDB,N)
86               On  entry,  the upper triangular matrix B, in generalized Schur
87               canonical form.  On exit, B is  overwritten  by  the  reordered
88               matrix B.
89
90       LDB     (input) INTEGER
91               The leading dimension of the array B. LDB >= max(1,N).
92
93       ALPHA   (output) COMPLEX array, dimension (N)
94               BETA    (output) COMPLEX array, dimension (N) The diagonal ele‐
95               ments of A and B, respectively, when the pair  (A,B)  has  been
96               reduced  to generalized Schur form.  ALPHA(i)/BETA(i) i=1,...,N
97               are the generalized eigenvalues.
98
99       Q       (input/output) COMPLEX array, dimension (LDQ,N)
100               On entry, if WANTQ = .TRUE., Q is an N-by-N matrix.  On exit, Q
101               has  been  postmultiplied  by  the  left unitary transformation
102               matrix which reorder (A, B); The leading M columns  of  Q  form
103               orthonormal  bases  for  the specified pair of left eigenspaces
104               (deflating subspaces).  If WANTQ = .FALSE.,  Q  is  not  refer‐
105               enced.
106
107       LDQ     (input) INTEGER
108               The  leading  dimension  of  the array Q. LDQ >= 1.  If WANTQ =
109               .TRUE., LDQ >= N.
110
111       Z       (input/output) COMPLEX array, dimension (LDZ,N)
112               On entry, if WANTZ = .TRUE., Z is an N-by-N matrix.  On exit, Z
113               has  been  postmultiplied  by  the  left unitary transformation
114               matrix which reorder (A, B); The leading M columns  of  Z  form
115               orthonormal  bases  for  the specified pair of left eigenspaces
116               (deflating subspaces).  If WANTZ = .FALSE.,  Z  is  not  refer‐
117               enced.
118
119       LDZ     (input) INTEGER
120               The  leading  dimension  of  the array Z. LDZ >= 1.  If WANTZ =
121               .TRUE., LDZ >= N.
122
123       M       (output) INTEGER
124               The  dimension  of  the  specified  pair  of  left  and   right
125               eigenspaces, (deflating subspaces) 0 <= M <= N.
126
127       PL      (output) REAL
128             PR       (output)  REAL  If  IJOB  =  1, 4 or 5, PL, PR are lower
129             bounds on the reciprocal  of the norm of "projections" onto  left
130             and  right  eigenspace with respect to the selected cluster.  0 <
131             PL, PR <= 1.  If M = 0 or M = N, PL = PR  = 1.  If IJOB = 0, 2 or
132             3 PL, PR are not referenced.
133
134       DIF     (output) REAL array, dimension (2).
135               If IJOB >= 2, DIF(1:2) store the estimates of Difu and Difl.
136               If IJOB = 2 or 4, DIF(1:2) are F-norm-based upper bounds on
137               Difu  and  Difl.  If  IJOB  = 3 or 5, DIF(1:2) are 1-norm-based
138               estimates of Difu and Difl, computed using reversed  communica‐
139               tion  with  CLACN2.   If M = 0 or N, DIF(1:2) = F-norm([A, B]).
140               If IJOB = 0 or 1, DIF is not referenced.
141
142       WORK    (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
143               IF IJOB = 0, WORK is not referenced.  Otherwise,  on  exit,  if
144               INFO = 0, WORK(1) returns the optimal LWORK.
145
146       LWORK   (input) INTEGER
147               The  dimension of the array WORK. LWORK >=  1 If IJOB = 1, 2 or
148               4, LWORK >=  2*M*(N-M) If IJOB = 3 or 5, LWORK >=  4*M*(N-M) If
149               LWORK = -1, then a workspace query is assumed; the routine only
150               calculates the optimal size of the  WORK  array,  returns  this
151               value  as  the first entry of the WORK array, and no error mes‐
152               sage related to LWORK is issued by XERBLA.
153
154       IWORK   (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
155               IF IJOB = 0, IWORK is not referenced.  Otherwise, on  exit,  if
156               INFO = 0, IWORK(1) returns the optimal LIWORK.
157
158       LIWORK  (input) INTEGER
159               The  dimension of the array IWORK. LIWORK >= 1.  If IJOB = 1, 2
160               or 4, LIWORK >=  N+2; If IJOB = 3  or  5,  LIWORK  >=  MAX(N+2,
161               2*M*(N-M));  If LIWORK = -1, then a workspace query is assumed;
162               the routine only calculates  the  optimal  size  of  the  IWORK
163               array,  returns  this  value  as  the  first entry of the IWORK
164               array, and no error message related  to  LIWORK  is  issued  by
165               XERBLA.
166
167       INFO    (output) INTEGER
168               =0: Successful exit.
169               <0: If INFO = -i, the i-th argument had an illegal value.
170               =1:  Reordering of (A, B) failed because the transformed matrix
171               pair (A, B) would be too far from generalized Schur  form;  the
172               problem  is  very  ill-conditioned.   (A, B) may have been par‐
173               tially reordered.  If requested, 0 is returned  in  DIF(*),  PL
174               and PR.
175

FURTHER DETAILS

177       CTGSEN  first  collects the selected eigenvalues by computing unitary U
178       and W that move them to the top left corner of (A, B). In other  words,
179       the selected eigenvalues are the eigenvalues of (A11, B11) in
180                     U'*(A, B)*W = (A11 A12) (B11 B12) n1
181                                   ( 0  A22),( 0  B22) n2
182                                     n1  n2    n1  n2
183       where N = n1+n2 and U' means the conjugate transpose of U. The first n1
184       columns of  U  and  W  span  the  specified  pair  of  left  and  right
185       eigenspaces (deflating subspaces) of (A, B).
186       If  (A, B) has been obtained from the generalized real Schur decomposi‐
187       tion of a matrix pair (C, D) = Q*(A, B)*Z', then the reordered general‐
188       ized Schur form of (C, D) is given by
189                (C, D) = (Q*U)*(U'*(A, B)*W)*(Z*W)',
190       and  the first n1 columns of Q*U and Z*W span the corresponding deflat‐
191       ing subspaces of (C, D) (Q and Z store Q*U and Z*W, resp.).  Note  that
192       if  the  selected  eigenvalue is sufficiently ill-conditioned, then its
193       value may differ significantly from its value before reordering.
194       The reciprocal condition numbers of  the  left  and  right  eigenspaces
195       spanned  by  the  first  n1  columns of U and W (or Q*U and Z*W) may be
196       returned in DIF(1:2), corresponding to Difu and Difl, resp.   The  Difu
197       and Difl are defined as:
198            Difu[(A11, B11), (A22, B22)] = sigma-min( Zu )
199       and
200            Difl[(A11, B11), (A22, B22)] = Difu[(A22, B22), (A11, B11)], where
201       sigma-min(Zu)   is    the    smallest    singular    value    of    the
202       (2*n1*n2)-by-(2*n1*n2) matrix
203            Zu = [ kron(In2, A11)  -kron(A22', In1) ]
204                 [ kron(In2, B11)  -kron(B22', In1) ].
205       Here,  Inx  is the identity matrix of size nx and A22' is the transpose
206       of A22. kron(X, Y) is the Kronecker product between the matrices X  and
207       Y.
208       When  DIF(2)  is small, small changes in (A, B) can cause large changes
209       in the deflating subspace. An approximate  (asymptotic)  bound  on  the
210       maximum angular error in the computed deflating subspaces is
211            EPS * norm((A, B)) / DIF(2),
212       where EPS is the machine precision.
213       The reciprocal norm of the projectors on the left and right eigenspaces
214       associated with (A11, B11) may be returned in PL and PR.  They are com‐
215       puted  as follows. First we compute L and R so that P*(A, B)*Q is block
216       diagonal, where
217            P = ( I -L ) n1           Q = ( I R ) n1
218                ( 0  I ) n2    and        ( 0 I ) n2
219                  n1 n2                    n1 n2
220       and (L, R) is the solution to the generalized Sylvester equation
221            A11*R - L*A22 = -A12
222            B11*R - L*B22 = -B12
223       Then PL = (F-norm(L)**2+1)**(-1/2) and PR  =  (F-norm(R)**2+1)**(-1/2).
224       An  approximate (asymptotic) bound on the average absolute error of the
225       selected eigenvalues is
226            EPS * norm((A, B)) / PL.
227       There are also global error bounds which valid for perturbations up  to
228       a  certain  restriction:  A lower bound (x) on the smallest F-norm(E,F)
229       for which an eigenvalue of (A11, B11) may move and coalesce with an ei‐
230       genvalue  of (A22, B22) under perturbation (E,F), (i.e. (A + E, B + F),
231       is
232        x  =   min(Difu,Difl)/((1/(PL*PL)+1/(PR*PR))**(1/2)+2*max(1/PL,1/PR)).
233       An approximate bound on x can be computed from DIF(1:2), PL and PR.  If
234       y = ( F-norm(E,F) / x) <= 1, the angles between the perturbed (L',  R')
235       and  unperturbed  (L,  R) left and right deflating subspaces associated
236       with the selected cluster in the (1,1)-blocks can be bounded as
237        max-angle(L, L') <= arctan( y * PL / (1 - y * (1 - PL * PL)**(1/2))
238        max-angle(R, R') <= arctan( y * PR / (1 - y * (1 -  PR  *  PR)**(1/2))
239       See  LAPACK  User's  Guide section 4.11 or the following references for
240       more information.
241       Note that if the default method for computing the Frobenius-norm- based
242       estimate DIF is not wanted (see CLATDF), then the parameter IDIFJB (see
243       below) should be changed from 3 to 4 (routine CLATDF (IJOB = 2 will  be
244       used)). See CTGSYL for more details.
245       Based on contributions by
246          Bo Kagstrom and Peter Poromaa, Department of Computing Science,
247          Umea University, S-901 87 Umea, Sweden.
248       References
249       ==========
250       [1] B. Kagstrom; A Direct Method for Reordering Eigenvalues in the
251           Generalized Real Schur Form of a Regular Matrix Pair (A, B), in
252           M.S. Moonen et al (eds), Linear Algebra for Large Scale and
253           Real-Time  Applications,  Kluwer  Academic  Publ. 1993, pp 195-218.
254       [2] B. Kagstrom and P. Poromaa; Computing Eigenspaces with Specified
255           Eigenvalues of a Regular Matrix Pair (A, B) and Condition
256           Estimation: Theory, Algorithms and Software, Report
257           UMINF - 94.04, Department of Computing Science, Umea University,
258           S-901 87 Umea, Sweden, 1994. Also as LAPACK Working Note 87.
259           To appear in Numerical Algorithms, 1996.
260       [3] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software
261           for Solving the Generalized Sylvester Equation and Estimating the
262           Separation between Regular Matrix Pairs, Report UMINF - 93.23,
263           Department of Computing Science, Umea University, S-901 87 Umea,
264           Sweden, December 1993, Revised April 1994, Also as LAPACK working
265           Note 75. To appear in ACM Trans. on Math. Software, Vol 22, No 1,
266           1996.
267
268
269
270 LAPACK routine (version 3.2)    November 2008                       CTGSEN(1)
Impressum