Developer Reference

  • 2021.1
  • 12/04/2020
  • Public Content
Contents

?tfsm

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

Syntax

lapack_int
LAPACKE_stfsm
(
int
matrix_layout
,
char
transr
,
char
side
,
char
uplo
,
char
trans
,
char
diag
,
lapack_int
m
,
lapack_int
n
,
float
alpha
,
const
float
*
a
,
float
*
b
,
lapack_int
ldb
);
lapack_int
LAPACKE_dtfsm
(
int
matrix_layout
,
char
transr
,
char
side
,
char
uplo
,
char
trans
,
char
diag
,
lapack_int
m
,
lapack_int
n
,
double
alpha
,
const
double
*
a
,
double
*
b
,
lapack_int
ldb
);
lapack_int
LAPACKE_ctfsm
(
int
matrix_layout
,
char
transr
,
char
side
,
char
uplo
,
char
trans
,
char
diag
,
lapack_int
m
,
lapack_int
n
,
lapack_complex_float
alpha
,
const
lapack_complex_float
*
a
,
lapack_complex_float
*
b
,
lapack_int
ldb
);
lapack_int
LAPACKE_ztfsm
(
int
matrix_layout
,
char
transr
,
char
side
,
char
uplo
,
char
trans
,
char
diag
,
lapack_int
m
,
lapack_int
n
,
lapack_complex_double
alpha
,
const
lapack_complex_double
*
a
,
lapack_complex_double
*
b
,
lapack_int
ldb
);
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.
Before entry, the leading
m
-by-
n
part of the array
b
must contain the right-hand side matrix
B
.
ldb
Specifies the leading dimension of
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.