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

NAME

6       DTRSYL - solves the real Sylvester matrix equation
7

SYNOPSIS

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

PURPOSE

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

ARGUMENTS

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