Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

?trsyl

Solves Sylvester equation for real quasi-triangular or complex triangular matrices.

Syntax

call strsyl
(
trana
,
tranb
,
isgn
,
m
,
n
,
a
,
lda
,
b
,
ldb
,
c
,
ldc
,
scale
,
info
)
call dtrsyl
(
trana
,
tranb
,
isgn
,
m
,
n
,
a
,
lda
,
b
,
ldb
,
c
,
ldc
,
scale
,
info
)
call ctrsyl
(
trana
,
tranb
,
isgn
,
m
,
n
,
a
,
lda
,
b
,
ldb
,
c
,
ldc
,
scale
,
info
)
call ztrsyl
(
trana
,
tranb
,
isgn
,
m
,
n
,
a
,
lda
,
b
,
ldb
,
c
,
ldc
,
scale
,
info
)
call trsyl
(
a
,
b
,
c
,
scale
[
,
trana
]
[
,
tranb
]
[
,
isgn
]
[
,
info
]
)
Include Files
  • mkl.fi
    ,
    lapack.f90
Description
The routine solves the Sylvester matrix equation
op(
A
)*
X
±
X
*op(
B
) =
α
*
C
, where
op(
A
) =
A
or
A
H
, and the matrices
A
and
B
are upper triangular (or, for real flavors, upper quasi-triangular in canonical Schur form);
α
1
is a scale factor determined by the routine to avoid overflow in
X
;
A
is
m
-by-
m
,
B
is
n
-by-
n
, and
C
and
X
are both
m
-by-
n
. The matrix
X
is obtained by a straightforward process of back substitution.
The equation has a unique solution if and only if
α
i
±
β
i
0
, where {
α
i
} and {
β
i
} are the eigenvalues of
A
and
B
, respectively, and the sign (+ or -) is the same as that used in the equation to be solved.
Input Parameters
trana
CHARACTER*1
.
Must be
'N'
or
'T'
or
'C'
.
If
trana
=
'N'
, then
op(
A
) =
A
.
If
trana
=
'T'
, then
op(
A
) =
A
T
(real flavors only).
If