1CTGSYL(1)                LAPACK routine (version 3.2)                CTGSYL(1)
2
3
4

NAME

6       CTGSYL - solves the generalized Sylvester equation
7

SYNOPSIS

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

PURPOSE

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

ARGUMENTS

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

FURTHER DETAILS

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)
Impressum