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