Developer Reference

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

?tfsm

Solves a matrix equation (one operand is a triangular matrix in RFP format).

Syntax

call stfsm
(
transr
,
side
,
uplo
,
trans
,
diag
,
m
,
n
,
alpha
,
a
,
b
,
ldb
)
call dtfsm
(
transr
,
side
,
uplo
,
trans
,
diag
,
m
,
n
,
alpha
,
a
,
b
,
ldb
)
call ctfsm
(
transr
,
side
,
uplo
,
trans
,
diag
,
m
,
n
,
alpha
,
a
,
b
,
ldb
)
call ztfsm
(
transr
,
side
,
uplo
,
trans
,
diag
,
m
,
n
,
alpha
,
a
,
b
,
ldb
)
Include Files
  • mkl.fi
Description
The
?tfsm
routines solve one of the following matrix equations:
op(
A
)*
X
=
alpha
*
B
,
or
X
*op(
A
) =
alpha
*
B
,
where:
alpha
is a scalar,
X
and
B
are
m
-by-
n
matrices,
A
is a unit, or non-unit, upper or lower triangular matrix in rectangular full packed (RFP) format.
op(
A
)
can be one of the following:
  • op(
    A
    ) =
    A
    or
    op(
    A
    ) =
    A
    T
    for real flavors
  • op(
    A
    ) =
    A
    or
    op(
    A
    ) =
    A
    H
    for complex flavors
The matrix
B
is overwritten by the solution matrix
X
.
Input Parameters
transr
CHARACTER*1
.
if
transr
= 'N'
or
'n'
, the normal form of RFP
A
is stored;
if
transr
= 'T'
or
't'
, the transpose form of RFP
A
is stored;
if
transr
= 'C'
or
'c'
, the conjugate-transpose form of RFP
A
is stored.
side
CHARACTER*1
.
Specifies whether
op(
A
)
appears on the left or right of
X
in the equation:
if
side
=
'L'
or
'l'
, then
op(
A
)*
X
=
alpha
*
B
;
if
side
=
'R'
or
'r'
, then
X
*op(
A
) =
alpha
*
B
.
uplo
CHARACTER*1
.
Specifies whether the RFP matrix
A
is upper or lower triangular:
if
uplo
=
'U'
or
'u'
, then the matrix is upper triangular;
if
uplo
=
'L'
or
'l'
, then the matrix is low triangular.
trans
CHARACTER*1
.
Specifies the form of
op(
A
)
used in the matrix multiplication:
if
trans
= 'N'
or
'n'
, then
op(
A
) =
A
;
if
trans
= 'T'
or
't'
, then
op(