1DTRSYL(1) LAPACK routine (version 3.2) DTRSYL(1)
2
3
4
6 DTRSYL - solves the real Sylvester matrix equation
7
9 SUBROUTINE DTRSYL( TRANA, TRANB, ISGN, M, N, A, LDA, B, LDB, C, LDC,
10 SCALE, INFO )
11
12 CHARACTER TRANA, TRANB
13
14 INTEGER INFO, ISGN, LDA, LDB, LDC, M, N
15
16 DOUBLE PRECISION SCALE
17
18 DOUBLE PRECISION A( LDA, * ), B( LDB, * ), C( LDC, * )
19
21 DTRSYL solves the real Sylvester matrix equation:
22 op(A)*X + X*op(B) = scale*C or
23 op(A)*X - X*op(B) = scale*C,
24 where op(A) = A or A**T, and A and B are both upper quasi- triangular.
25 A is M-by-M and B is N-by-N; the right hand side C and the solution X
26 are M-by-N; and scale is an output scale factor, set <= 1 to avoid
27 overflow in X.
28 A and B must be in Schur canonical form (as returned by DHSEQR), that
29 is, block upper triangular with 1-by-1 and 2-by-2 diagonal blocks; each
30 2-by-2 diagonal block has its diagonal elements equal and its off-diag‐
31 onal elements of opposite sign.
32
34 TRANA (input) CHARACTER*1
35 Specifies the option op(A):
36 = 'N': op(A) = A (No transpose)
37 = 'T': op(A) = A**T (Transpose)
38 = 'C': op(A) = A**H (Conjugate transpose = Transpose)
39
40 TRANB (input) CHARACTER*1
41 Specifies the option op(B):
42 = 'N': op(B) = B (No transpose)
43 = 'T': op(B) = B**T (Transpose)
44 = 'C': op(B) = B**H (Conjugate transpose = Transpose)
45
46 ISGN (input) INTEGER
47 Specifies the sign in the equation:
48 = +1: solve op(A)*X + X*op(B) = scale*C
49 = -1: solve op(A)*X - X*op(B) = scale*C
50
51 M (input) INTEGER
52 The order of the matrix A, and the number of rows in the matri‐
53 ces X and C. M >= 0.
54
55 N (input) INTEGER
56 The order of the matrix B, and the number of columns in the
57 matrices X and C. N >= 0.
58
59 A (input) DOUBLE PRECISION array, dimension (LDA,M)
60 The upper quasi-triangular matrix A, in Schur canonical form.
61
62 LDA (input) INTEGER
63 The leading dimension of the array A. LDA >= max(1,M).
64
65 B (input) DOUBLE PRECISION array, dimension (LDB,N)
66 The upper quasi-triangular matrix B, in Schur canonical form.
67
68 LDB (input) INTEGER
69 The leading dimension of the array B. LDB >= max(1,N).
70
71 C (input/output) DOUBLE PRECISION array, dimension (LDC,N)
72 On entry, the M-by-N right hand side matrix C. On exit, C is
73 overwritten by the solution matrix X.
74
75 LDC (input) INTEGER
76 The leading dimension of the array C. LDC >= max(1,M)
77
78 SCALE (output) DOUBLE PRECISION
79 The scale factor, scale, set <= 1 to avoid overflow in X.
80
81 INFO (output) INTEGER
82 = 0: successful exit
83 < 0: if INFO = -i, the i-th argument had an illegal value
84 = 1: A and B have common or very close eigenvalues; perturbed
85 values were used to solve the equation (but the matrices A and
86 B are unchanged).
87
88
89
90 LAPACK routine (version 3.2) November 2008 DTRSYL(1)