Contents

# mkl_?trsm_compact

Solves a triangular matrix equation for a set of general, m x n matrices that have been stored in Compact format.

## Syntax

Description
The routine solves one of the following matrix equations for a group of
nm
matrices:
op(A
c
)*X
c
= alpha*B
c
,
or
X
c
*op(A
c
) = alpha*B
c
where:
alpha is a scalar, X
c
and B
c
are
m
-by-
n
matrices that have been stored in compact format, and A
c
is a
m
-by-
m
unit, or non-unit, upper or lower triangular matrix that has been stored in compact format.
op(A
c
) is one of op(A
c
) = A
c
, or op(A
c
) = A
c
T
, or op(A
c
) = A
c
H
,
B
c
is overwritten by the solution matrix X
c
.
Input Parameters
layout
Specifies whether two-dimensional array storage is row-major (
MKL_ROW_MAJOR
) or column-major (
MKL_COL_MAJOR
).
side
Specifies whether op(A
c
) appears on the left or right of X
c
in the equation:
if side = MKL_LEFT, then op(A
c
)*X
c
= alpha*B
c
, if side = MKL_RIGHT, then X
c
*op(A
c
) = alpha*B
c
uplo
Specifies whether matrix A
c
is upper or lower triangular.
If uplo = MKL_UPPER, A
c
is upper triangular.
If uplo = MKL_LOWER, A
c
is lower triangular.
transa
Specifies the operation:
If
transa
=
MKL_NOTRANS
, then op(A
c
) = A
c
;
If
transa
=
MKL_TRANS
, then op(A
c
) = A
c
T
;
If
transa
=
MKL_CONJTRANS
, then op(A
c
) = A
c
H
;
diag
Specifies whether the matrix A
c
is unit triangular:
If
diag
=
MKL_UNIT
, then the matrix is unit triangular;
if
diag
=
MKL_NONUNIT
, then the matrix is not unit triangular.
m
The number of rows of B
c
and the number of rows and columns of A
c
when
side
=
MKL_LEFT
;
m
>= 0.
n
The number of columns of B
c
and the number of rows and columns of A
c
when
side
=
MKL_RIGHT
;
n
>= 0.
alpha
Specifies the scalar
alpha
. When alpha is zero, then ap is not referenced and bp need not be set before entry.
ap
Array, size ldap*k*nm, where k is m when side=
MKL_LEFT
and n when side =
MKL_RIGHT
.
ap
points to the beginning of
nm
A
c
matrices stored in compact format. When uplo = MKL_UPPER, A
c
is assumed to be an upper triangular matrix and the lower triangular part of A
c
is not referenced. With uplo = MKL_LOWER, A
c
is assumed to be a lower triangular matrix and the upper triangular part of A
c
is not referenced. With diag = MKL_UNIT, the diagonal elements of A
c
are not referenced either, but are assumed to be unity.
ldap
Column stride (column-major layout) or row stride (row-major layout) of A
c
.
When
side
=
MKL_LEFT
,
ldap
must be at least max (1,
m
).
When
side
=
MKL_RIGHT
,
ldap
must be at least max (1,
n
).
bp
Array, size ldbp*n*nm when layout = MKL_COL_MAJOR; size ldbp*m*nm when layout = MKL_ROW_MAJOR. Before entry, bp points to the beginning of nm B
c
matrices stored in compact format.
ldbp
Column stride (column-major layout) or row stride (row-major layout) of B
c
.
layout
=
MKL_COL_MAJOR
ldbp
must be at least max (1,
m
).
layout
=
MKL_ROW_MAJOR
*
ldbp
must be at least max (1,
n
).
format
Specifies the format of the compact matrices. See <Compact Format> or mkl_get_format_compact for details.
nm
Total number of matrices stored in Compact format; nm >= 0.
The values of
ldap
and
ldbp
used in
mkl_?trsm_compact
must be consistent with the values used in
mkl_?get_size_compact
,
mkl_?gepack_compact
, and
mkl_?geunpack_compact
.
Output Parameters
bp
On exit, B
c
is overwritten by the solution matrix X
c
.
bp
points to the beginning of nm such X
c
matrices.

#### Product and Performance Information

1

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