1ZTGSY2(1)           LAPACK auxiliary routine (version 3.1)           ZTGSY2(1)
2
3
4

NAME

6       ZTGSY2  - the generalized Sylvester equation   A * R - L * B = scale  D
7       * R - L * E = scale * F  using Level 1 and 2 BLAS, where R  and  L  are
8       unknown M-by-N matrices,
9

SYNOPSIS

11       SUBROUTINE ZTGSY2( TRANS,  IJOB,  M, N, A, LDA, B, LDB, C, LDC, D, LDD,
12                          E, LDE, F, LDF, SCALE, RDSUM, RDSCAL, INFO )
13
14           CHARACTER      TRANS
15
16           INTEGER        IJOB, INFO, LDA, LDB, LDC, LDD, LDE, LDF, M, N
17
18           DOUBLE         PRECISION RDSCAL, RDSUM, SCALE
19
20           COMPLEX*16     A( LDA, * ), B( LDB, * ), C( LDC, * ), D( LDD, *  ),
21                          E( LDE, * ), F( LDF, * )
22

PURPOSE

24       ZTGSY2 solves the generalized Sylvester equation (A, D), (B, E) and (C,
25       F) are given matrix pairs of size M-by-M, N-by-N  and  M-by-N,  respec‐
26       tively.  A,  B,  D and E are upper triangular (i.e., (A,D) and (B,E) in
27       generalized Schur form).
28
29       The solution (R, L) overwrites (C, F). 0 <= SCALE <=  1  is  an  output
30       scaling factor chosen to avoid overflow.
31
32       In matrix notation solving equation (1) corresponds to solve Zx = scale
33       * b, where Z is defined as
34
35              Z = [ kron(In, A)  -kron(B', Im) ]             (2)
36                  [ kron(In, D)  -kron(E', Im) ],
37
38       Ik is the identity matrix of size k and  X'  is  the  transpose  of  X.
39       kron(X, Y) is the Kronecker product between the matrices X and Y.
40
41       If  TRANS  = 'C', y in the conjugate transposed system Z'y = scale*b is
42       solved for, which is equivalent to solve for R and L in
43
44                   A' * R  + D' * L   = scale *  C           (3)
45                   R  * B' + L  * E'  = scale * -F
46
47       This case is used to compute an estimate of Dif[(A, D),  (B,  E)]  =  =
48       sigma_min(Z) using reverse communicaton with ZLACON.
49
50       ZTGSY2  also (IJOB >= 1) contributes to the computation in ZTGSYL of an
51       upper bound on the separation between to matrix pairs. Then  the  input
52       (A, D), (B, E) are sub-pencils of two matrix pairs in ZTGSYL.
53
54

ARGUMENTS

56       TRANS   (input) CHARACTER*1
57               =  'N',  solve  the generalized Sylvester equation (1).  = 'T':
58               solve the 'transposed' system (3).
59
60       IJOB    (input) INTEGER
61               Specifies what kind of  functionality  to  be  performed.   =0:
62               solve (1) only.
63               =1:  A  contribution  from  this subsystem to a Frobenius norm-
64               based estimate of the separation between two  matrix  pairs  is
65               computed.  (look  ahead  strategy is used).  =2: A contribution
66               from this subsystem to a Frobenius norm-based estimate  of  the
67               separation  between  two  matrix  pairs is computed. (DGECON on
68               sub-systems is used.)  Not referenced if TRANS = 'T'.
69
70       M       (input) INTEGER
71               On entry, M specifies the order of A and D, and the row  dimen‐
72               sion of C, F, R and L.
73
74       N       (input) INTEGER
75               On  entry,  N  specifies  the  order of B and E, and the column
76               dimension of C, F, R and L.
77
78       A       (input) COMPLEX*16 array, dimension (LDA, M)
79               On entry, A contains an upper triangular matrix.
80
81       LDA     (input) INTEGER
82               The leading dimension of the matrix A. LDA >= max(1, M).
83
84       B       (input) COMPLEX*16 array, dimension (LDB, N)
85               On entry, B contains an upper triangular matrix.
86
87       LDB     (input) INTEGER
88               The leading dimension of the matrix B. LDB >= max(1, N).
89
90       C       (input/output) COMPLEX*16 array, dimension (LDC, N)
91               On entry, C contains the right-hand-side of  the  first  matrix
92               equation  in (1).  On exit, if IJOB = 0, C has been overwritten
93               by the solution R.
94
95       LDC     (input) INTEGER
96               The leading dimension of the matrix C. LDC >= max(1, M).
97
98       D       (input) COMPLEX*16 array, dimension (LDD, M)
99               On entry, D contains an upper triangular matrix.
100
101       LDD     (input) INTEGER
102               The leading dimension of the matrix D. LDD >= max(1, M).
103
104       E       (input) COMPLEX*16 array, dimension (LDE, N)
105               On entry, E contains an upper triangular matrix.
106
107       LDE     (input) INTEGER
108               The leading dimension of the matrix E. LDE >= max(1, N).
109
110       F       (input/output) COMPLEX*16 array, dimension (LDF, N)
111               On entry, F contains the right-hand-side of the  second  matrix
112               equation  in (1).  On exit, if IJOB = 0, F has been overwritten
113               by the solution L.
114
115       LDF     (input) INTEGER
116               The leading dimension of the matrix F. LDF >= max(1, M).
117
118       SCALE   (output) DOUBLE PRECISION
119               On exit, 0 <= SCALE <= 1. If 0 < SCALE < 1, the solutions R and
120               L (C and F on entry) will hold the solutions to a slightly per‐
121               turbed system but the input matrices A, B, D  and  E  have  not
122               been  changed. If SCALE = 0, R and L will hold the solutions to
123               the homogeneous system with C = F = 0.  Normally, SCALE = 1.
124
125       RDSUM   (input/output) DOUBLE PRECISION
126               On entry, the sum of squares of computed contributions  to  the
127               Dif-estimate  under  computation  by  ZTGSYL, where the scaling
128               factor RDSCAL (see below) has been factored out.  On exit,  the
129               corresponding  sum  of  squares  updated with the contributions
130               from the current sub-system.  If  TRANS  =  'T'  RDSUM  is  not
131               touched.  NOTE: RDSUM only makes sense when ZTGSY2 is called by
132               ZTGSYL.
133
134       RDSCAL  (input/output) DOUBLE PRECISION
135               On entry, scaling factor used to prevent overflow in RDSUM.  On
136               exit,  RDSCAL  is  updated  w.r.t. the current contributions in
137               RDSUM.  If TRANS = 'T', RDSCAL is not  touched.   NOTE:  RDSCAL
138               only makes sense when ZTGSY2 is called by ZTGSYL.
139
140       INFO    (output) INTEGER
141               On exit, if INFO is set to =0: Successful exit
142               <0: If INFO = -i, input argument number i is illegal.
143               >0:  The  matrix  pairs  (A,  D) and (B, E) have common or very
144               close eigenvalues.
145

FURTHER DETAILS

147       Based on contributions by
148          Bo Kagstrom and Peter Poromaa, Department of Computing Science,
149          Umea University, S-901 87 Umea, Sweden.
150
151
152
153
154 LAPACK auxiliary routine (versionNo3v.e1m)ber 2006                       ZTGSY2(1)
Impressum