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