Contents

# ?tfsm

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

## Syntax

Include Files
• mkl.h
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
matrix_layout
Specifies whether matrix storage layout is row major (
LAPACK_ROW_MAJOR
) or column major (
LAPACK_COL_MAJOR
).
transr
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
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
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
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(
A
) =
A
'
;
if
trans
= 'C'
or
'c'
, then
op(
A
) = conjg(
A
')
.
diag
Specifies whether the RFP matrix
A
is unit triangular:
if
diag
=
'U'
or
'u'
then the matrix is unit triangular;
if
diag
=
'N'
or
'n'
, then the matrix is not unit triangular.
m
Specifies the number of rows of
B
. The value of
m
must be at least zero.
n
Specifies the number of columns of
B
. The value of
n
must be at least zero.
alpha
Specifies the scalar
alpha
.
When
alpha
is zero, then
a
is not referenced and
b
need not be set before entry.
a
Array, size
(
n
*(
n
+1)/2)
. Contains the matrix
A
in RFP format.
b
Array, size
max(1,
ldb
*
n
)
for column major and
max(1,
ldb
*m
)
for row major.
m
-by-
n
part of the array
b
must contain the right-hand side matrix
B
.
ldb
b
as declared in the calling (sub)program. The value of
ldb
must be at least
max(1,
m
)
for column major and
max(1,
n
)
for row major
.
Output Parameters
b
Overwritten by the solution matrix
X
.
Return Values
This function returns a value
info
.
If
info
= 0
, the execution is successful.
If
info
< 0
, the
i
-th parameter had an illegal value.
If
info
= -1011
, memory allocation error occurred.

#### Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.