Developer Reference

  • 0.9
  • 09/09/2020
  • Public Content
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

mkl_strsm_compact
(
MKL_LAYOUT
layout
,
MKL_SIDE
side
,
MKL_UPLO
uplo
,
MKL_TRANSPOSE
transa
,
MKL_DIAG
diag
,
MKL_INT
m
,
MKL_INT
n
,
float
alpha
,
const
float
*ap
,
MKL_INT
a_stride
,
float
*bp
,
MKL_INT
b_stide
,
MKL_COMPACT_PACK
format
,
MKL_INT
nm
);
mkl_dtrsm_compact
(
MKL_LAYOUT
layout
,
MKL_SIDE
side
,
MKL_UPLO
uplo
,
MKL_TRANSPOSE
transa
,
MKL_DIAG
diag
,
MKL_INT
m
,
MKL_INT
n
,
double
alpha
,
const
double
*ap
,
MKL_INT
a_stride
,
double
*bp
,
MKL_INT
b_stride
,
MKL_COMPACT_PACK
format
,
MKL_INT
nm
);
mkl_ctrsm_compact
(
MKL_LAYOUT
layout
,
MKL_SIDE
side
,
MKL_UPLO
uplo
,
MKL_TRANSPOSE
transa
,
MKL_DIAG
diag
,
MKL_INT
m
,
MKL_INT
n
,
mkl_compact_complex_float
*alpha
,
const
float
*ap
,
MKL_INT
a_stride
,
float
*bp
,
MKL_INT
b_stride
,
MKL_COMPACT_PACK
format
,
MKL_INT
nm
);
mkl_ztrsm_compact
(
MKL_LAYOUT
layout
,
MKL_SIDE
side
,
MKL_UPLO
uplo
,
MKL_TRANSPOSE
transa
,
MKL_DIAG
diag
,
MKL_INT
m
,
MKL_INT
n
,
mkl_compact_complex_double
*alpha
,
const
double
*ap
,
MKL_INT
a_stride
,
double
*bp
,
MKL_INT
b_stride
,
MKL_COMPACT_PACK
format
,
MKL_INT
nm
);
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

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804