1CTGSYL(1) LAPACK routine (version 3.1.1) CTGSYL(1)
2
3
4
6 CTGSYL - the generalized Sylvester equation
7
9 SUBROUTINE CTGSYL( TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD,
10 E, LDE, F, LDF, SCALE, DIF, WORK, LWORK, IWORK, INFO
11 )
12
13 CHARACTER TRANS
14
15 INTEGER IJOB, INFO, LDA, LDB, LDC, LDD, LDE, LDF, LWORK, M,
16 N
17
18 REAL DIF, SCALE
19
20 INTEGER IWORK( * )
21
22 COMPLEX A( LDA, * ), B( LDB, * ), C( LDC, * ), D( LDD, * ),
23 E( LDE, * ), F( LDF, * ), WORK( * )
24
26 CTGSYL solves the generalized Sylvester equation:
27
28 A * R - L * B = scale * C (1)
29 D * R - L * E = scale * F
30
31 where R and L are unknown m-by-n matrices, (A, D), (B, E) and (C, F)
32 are given matrix pairs of size m-by-m, n-by-n and m-by-n, respectively,
33 with complex entries. A, B, D and E are upper triangular (i.e., (A,D)
34 and (B,E) in generalized Schur form).
35
36 The solution (R, L) overwrites (C, F). 0 <= SCALE <= 1
37 is an output scaling factor chosen to avoid overflow.
38
39 In matrix notation (1) is equivalent to solve Zx = scale*b, where Z is
40 defined as
41
42 Z = [ kron(In, A) -kron(B', Im) ] (2)
43 [ kron(In, D) -kron(E', Im) ],
44
45 Here Ix is the identity matrix of size x and X' is the conjugate trans‐
46 pose of X. Kron(X, Y) is the Kronecker product between the matrices X
47 and Y.
48
49 If TRANS = 'C', y in the conjugate transposed system Z'*y = scale*b is
50 solved for, which is equivalent to solve for R and L in
51
52 A' * R + D' * L = scale * C (3)
53 R * B' + L * E' = scale * -F
54
55 This case (TRANS = 'C') is used to compute an one-norm-based estimate
56 of Dif[(A,D), (B,E)], the separation between the matrix pairs (A,D) and
57 (B,E), using CLACON.
58
59 If IJOB >= 1, CTGSYL computes a Frobenius norm-based estimate of
60 Dif[(A,D),(B,E)]. That is, the reciprocal of a lower bound on the
61 reciprocal of the smallest singular value of Z.
62
63 This is a level-3 BLAS algorithm.
64
65
67 TRANS (input) CHARACTER*1
68 = 'N': solve the generalized sylvester equation (1).
69 = 'C': solve the "conjugate transposed" system (3).
70
71 IJOB (input) INTEGER
72 Specifies what kind of functionality to be performed. =0:
73 solve (1) only.
74 =1: The functionality of 0 and 3.
75 =2: The functionality of 0 and 4.
76 =3: Only an estimate of Dif[(A,D), (B,E)] is computed. (look
77 ahead strategy is used). =4: Only an estimate of Dif[(A,D),
78 (B,E)] is computed. (CGECON on sub-systems is used). Not ref‐
79 erenced if TRANS = 'C'.
80
81 M (input) INTEGER
82 The order of the matrices A and D, and the row dimension of the
83 matrices C, F, R and L.
84
85 N (input) INTEGER
86 The order of the matrices B and E, and the column dimension of
87 the matrices C, F, R and L.
88
89 A (input) COMPLEX array, dimension (LDA, M)
90 The upper triangular matrix A.
91
92 LDA (input) INTEGER
93 The leading dimension of the array A. LDA >= max(1, M).
94
95 B (input) COMPLEX array, dimension (LDB, N)
96 The upper triangular matrix B.
97
98 LDB (input) INTEGER
99 The leading dimension of the array B. LDB >= max(1, N).
100
101 C (input/output) COMPLEX array, dimension (LDC, N)
102 On entry, C contains the right-hand-side of the first matrix
103 equation in (1) or (3). On exit, if IJOB = 0, 1 or 2, C has
104 been overwritten by the solution R. If IJOB = 3 or 4 and TRANS
105 = 'N', C holds R, the solution achieved during the computation
106 of the Dif-estimate.
107
108 LDC (input) INTEGER
109 The leading dimension of the array C. LDC >= max(1, M).
110
111 D (input) COMPLEX array, dimension (LDD, M)
112 The upper triangular matrix D.
113
114 LDD (input) INTEGER
115 The leading dimension of the array D. LDD >= max(1, M).
116
117 E (input) COMPLEX array, dimension (LDE, N)
118 The upper triangular matrix E.
119
120 LDE (input) INTEGER
121 The leading dimension of the array E. LDE >= max(1, N).
122
123 F (input/output) COMPLEX array, dimension (LDF, N)
124 On entry, F contains the right-hand-side of the second matrix
125 equation in (1) or (3). On exit, if IJOB = 0, 1 or 2, F has
126 been overwritten by the solution L. If IJOB = 3 or 4 and TRANS
127 = 'N', F holds L, the solution achieved during the computation
128 of the Dif-estimate.
129
130 LDF (input) INTEGER
131 The leading dimension of the array F. LDF >= max(1, M).
132
133 DIF (output) REAL
134 On exit DIF is the reciprocal of a lower bound of the recipro‐
135 cal of the Dif-function, i.e. DIF is an upper bound of
136 Dif[(A,D), (B,E)] = sigma-min(Z), where Z as in (2). IF IJOB =
137 0 or TRANS = 'C', DIF is not referenced.
138
139 SCALE (output) REAL
140 On exit SCALE is the scaling factor in (1) or (3). If 0 <
141 SCALE < 1, C and F hold the solutions R and L, resp., to a
142 slightly perturbed system but the input matrices A, B, D and E
143 have not been changed. If SCALE = 0, R and L will hold the
144 solutions to the homogenious system with C = F = 0.
145
146 WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
147 On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
148
149 LWORK (input) INTEGER
150 The dimension of the array WORK. LWORK > = 1. If IJOB = 1 or 2
151 and TRANS = 'N', LWORK >= max(1,2*M*N).
152
153 If LWORK = -1, then a workspace query is assumed; the routine
154 only calculates the optimal size of the WORK array, returns
155 this value as the first entry of the WORK array, and no error
156 message related to LWORK is issued by XERBLA.
157
158 IWORK (workspace) INTEGER array, dimension (M+N+2)
159
160 INFO (output) INTEGER
161 =0: successful exit
162 <0: If INFO = -i, the i-th argument had an illegal value.
163 >0: (A, D) and (B, E) have common or very close eigenvalues.
164
166 Based on contributions by
167 Bo Kagstrom and Peter Poromaa, Department of Computing Science,
168 Umea University, S-901 87 Umea, Sweden.
169
170 [1] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software
171 for Solving the Generalized Sylvester Equation and Estimating the
172 Separation between Regular Matrix Pairs, Report UMINF - 93.23,
173 Department of Computing Science, Umea University, S-901 87 Umea,
174 Sweden, December 1993, Revised April 1994, Also as LAPACK Working
175 Note 75. To appear in ACM Trans. on Math. Software, Vol 22,
176 No 1, 1996.
177
178 [2] B. Kagstrom, A Perturbation Analysis of the Generalized Sylvester
179 Equation (AR - LB, DR - LE ) = (C, F), SIAM J. Matrix Anal.
180 Appl., 15(4):1045-1060, 1994.
181
182 [3] B. Kagstrom and L. Westin, Generalized Schur Methods with
183 Condition Estimators for Solving the Generalized Sylvester
184 Equation, IEEE Transactions on Automatic Control, Vol. 34, No. 7,
185 July 1989, pp 745-751.
186
187
188
189
190 LAPACK routine (version 3.1.1) February 2007 CTGSYL(1)