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

NAME

6       STRSYL - the real Sylvester matrix equation
7

SYNOPSIS

9       SUBROUTINE STRSYL( 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           REAL           SCALE
17
18           REAL           A( LDA, * ), B( LDB, * ), C( LDC, * )
19

PURPOSE

21       STRSYL solves the real Sylvester matrix equation:
22
23          op(A)*X + X*op(B) = scale*C or
24          op(A)*X - X*op(B) = scale*C,
25
26       where op(A) = A or A**T, and  A and B are both upper quasi- triangular.
27       A  is  M-by-M and B is N-by-N; the right hand side C and the solution X
28       are M-by-N; and scale is an output scale factor,  set  <=  1  to  avoid
29       overflow in X.
30
31       A  and  B must be in Schur canonical form (as returned by SHSEQR), that
32       is, block upper triangular with 1-by-1 and 2-by-2 diagonal blocks; each
33       2-by-2 diagonal block has its diagonal elements equal and its off-diag‐
34       onal elements of opposite sign.
35
36

ARGUMENTS

38       TRANA   (input) CHARACTER*1
39               Specifies the option op(A):
40               = 'N': op(A) = A    (No transpose)
41               = 'T': op(A) = A**T (Transpose)
42               = 'C': op(A) = A**H (Conjugate transpose = Transpose)
43
44       TRANB   (input) CHARACTER*1
45               Specifies the option op(B):
46               = 'N': op(B) = B    (No transpose)
47               = 'T': op(B) = B**T (Transpose)
48               = 'C': op(B) = B**H (Conjugate transpose = Transpose)
49
50       ISGN    (input) INTEGER
51               Specifies the sign in the equation:
52               = +1: solve op(A)*X + X*op(B) = scale*C
53               = -1: solve op(A)*X - X*op(B) = scale*C
54
55       M       (input) INTEGER
56               The order of the matrix A, and the number of rows in the matri‐
57               ces X and C. M >= 0.
58
59       N       (input) INTEGER
60               The  order  of  the  matrix B, and the number of columns in the
61               matrices X and C. N >= 0.
62
63       A       (input) REAL array, dimension (LDA,M)
64               The upper quasi-triangular matrix A, in Schur canonical form.
65
66       LDA     (input) INTEGER
67               The leading dimension of the array A. LDA >= max(1,M).
68
69       B       (input) REAL array, dimension (LDB,N)
70               The upper quasi-triangular matrix B, in Schur canonical form.
71
72       LDB     (input) INTEGER
73               The leading dimension of the array B. LDB >= max(1,N).
74
75       C       (input/output) REAL array, dimension (LDC,N)
76               On entry, the M-by-N right hand side matrix C.  On exit,  C  is
77               overwritten by the solution matrix X.
78
79       LDC     (input) INTEGER
80               The leading dimension of the array C. LDC >= max(1,M)
81
82       SCALE   (output) REAL
83               The scale factor, scale, set <= 1 to avoid overflow in X.
84
85       INFO    (output) INTEGER
86               = 0: successful exit
87               < 0: if INFO = -i, the i-th argument had an illegal value
88               =  1:  A and B have common or very close eigenvalues; perturbed
89               values were used to solve the equation (but the matrices A  and
90               B are unchanged).
91
92
93
94 LAPACK routine (version 3.1)    November 2006                       STRSYL(1)
Impressum