1DTGSYL(1)                LAPACK routine (version 3.1)                DTGSYL(1)
2
3
4

NAME

6       DTGSYL - the generalized Sylvester equation
7

SYNOPSIS

9       SUBROUTINE DTGSYL( 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           DOUBLE         PRECISION DIF, SCALE
19
20           INTEGER        IWORK( * )
21
22           DOUBLE         PRECISION A( LDA, * ), B( LDB, * ), C( LDC, * ),  D(
23                          LDD, * ), E( LDE, * ), F( LDF, * ), WORK( * )
24

PURPOSE

26       DTGSYL 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', DTGSYL 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 DLACON.
58
59       If  IJOB  >=  1,  DTGSYL  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

ARGUMENTS

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.  ( DGECON 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) DOUBLE PRECISION 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) DOUBLE PRECISION 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) DOUBLE PRECISION 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) DOUBLE PRECISION 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) DOUBLE PRECISION 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) DOUBLE PRECISION 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) DOUBLE PRECISION
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) DOUBLE PRECISION
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)   DOUBLE   PRECISION   array,   dimension
149       (MAX(1,LWORK))
150               On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
151
152       LWORK   (input) INTEGER
153               The dimension of the array WORK. LWORK > = 1.  If IJOB = 1 or 2
154               and TRANS = 'N', LWORK >= max(1,2*M*N).
155
156               If  LWORK  = -1, then a workspace query is assumed; the routine
157               only calculates the optimal size of  the  WORK  array,  returns
158               this  value  as the first entry of the WORK array, and no error
159               message related to LWORK is issued by XERBLA.
160
161       IWORK   (workspace) INTEGER array, dimension (M+N+6)
162
163       INFO    (output) INTEGER
164               =0: successful exit
165               <0: If INFO = -i, the i-th argument had an illegal value.
166               >0: (A, D) and (B, E) have common or close eigenvalues.
167

FURTHER DETAILS

169       Based on contributions by
170          Bo Kagstrom and Peter Poromaa, Department of Computing Science,
171          Umea University, S-901 87 Umea, Sweden.
172
173       [1] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software
174           for Solving the Generalized Sylvester Equation and Estimating the
175           Separation between Regular Matrix Pairs, Report UMINF - 93.23,
176           Department of Computing Science, Umea University, S-901 87 Umea,
177           Sweden, December 1993, Revised April 1994, Also as LAPACK Working
178           Note 75.  To appear in ACM Trans. on Math. Software, Vol 22,
179           No 1, 1996.
180
181       [2] B. Kagstrom, A Perturbation Analysis of the Generalized Sylvester
182           Equation (AR - LB, DR - LE ) = (C, F), SIAM J. Matrix Anal.
183           Appl., 15(4):1045-1060, 1994
184
185       [3] B. Kagstrom and L. Westin, Generalized Schur Methods with
186           Condition Estimators for Solving the Generalized Sylvester
187           Equation, IEEE Transactions on Automatic Control, Vol. 34, No. 7,
188           July 1989, pp 745-751.
189
190
191
192
193 LAPACK routine (version 3.1)    November 2006                       DTGSYL(1)
Impressum