Developer Reference

  • 0.9
  • 09/09/2020
  • Public Content
Contents

cblas_?trsm_batch_strided

Solves groups of triangular matrix equations.

Syntax

void cblas_strsm_batch_strided(const CBLAS_LAYOUT layout, const CBLAS_SIDE side, const CBLAS_UPLO uplo, const CBLAS_TRANSPOSE transa, const CBLAS_DIAG diag, const MKL_INT m, const MKL_INT n, const float alpha, const float *a, const MKL_INT lda, const MKL_INT stridea, float *b, const MKL_INT ldb, const MKL_INT strideb, MKL_INT batch_size);
void cblas_dtrsm_batch_strided(const CBLAS_LAYOUT layout, const CBLAS_SIDE side, const CBLAS_UPLO uplo, const CBLAS_TRANSPOSE transa, const CBLAS_DIAG diag, const MKL_INT m, const MKL_INT n, const double alpha, const double *a, const MKL_INT lda, const MKL_INT stridea, double *b, const MKL_INT ldb, const MKL_INT strideb, const MKL_INT batch_size);
void cblas_ctrsm_batch_strided(const CBLAS_LAYOUT layout, const CBLAS_SIDE side, const CBLAS_UPLO uplo, const CBLAS_TRANSPOSE transa, const CBLAS_DIAG diag, const MKL_INT m, const MKL_INT n, const void *alpha, const void *a, const MKL_INT lda, const MKL_INT stridea, void *b, const MKL_INT ldb, const MKL_INT strideb, const MKL_INT batch_size);
void zblas_ctrsm_batch_strided(const CBLAS_LAYOUT layout, const CBLAS_SIDE side, const CBLAS_UPLO uplo, const CBLAS_TRANSPOSE transa, const CBLAS_DIAG diag, const MKL_INT m, const MKL_INT n, const void *alpha, const void *a, const MKL_INT lda, const MKL_INT stridea, void *b, const MKL_INT ldb, const MKL_INT strideb, const MKL_INT batch_size);
Include Files
  • mkl.h
Description
The
cblas_?trsm_batch_strided
routines solve a series of triangular matrix equations. They are similar to the
cblas_?trsm
routine counterparts, but the
cblas_?trsm_batch_strided
routines solve triangular matrix equations with groups of matrices. All matrix
a
have the same parameters (
size
,
leading dimension
,
side
,
uplo
,
diag
,
transpose operation
) and are stored at constant
stridea
from each other. Similarly, all matrix
b
have the same parameters (
size
,
leading dimension
,
alpha scaling
) and are stored at constant
strideb
from each other.
The operation is defined as
Input Parameters
Layout
Specifies whether two-dimensional array storage is row-major (
CblasRowMajor
) or column-major (
CblasColMajor
).
side
Specifies whether
op(
A
)
appears on the left or right of
X
in the equation.
if
side
=
CblasLeft
, then
op(
A
)
*
X
=
alpha
*
B
;
if
side
=
CblasRight
, then
X
*
op(
A
)
=
alpha
*
B
.
uplo
Specifies whether the matrices
A
are upper or lower triangular.
if
uplo
=
CblasUpper
, then
A
are upper triangular;
if
uplo
=
CblasLower
, then
A
are lower triangular.
transa
Specifies
op(
A
)
the transposition operation applied to the matrices
A
.
if
transa
=
CblasNoTrans
, then
op(
A
)
=
A
;
if
transa
=
CblasTrans
, then
op(
A
)
=
A
T
;
if
transa
=
CblasConjTrans
, then
op(
A
)
=
A
H
;
diag
Specifies whether the matrices
A
are unit triangular.
if
diag
=
CblasUnit
, then
A
are unit triangular;
if
diag
=
CblasLower
, then
A
are non-unit triangular.
m
Number of rows of
B
matrices. Must be at least 0
n
Number of columns of
B
matrices. Must be at least 0
alpha
Specifies the scalar
alpha
.
a
Array of size at least
stridea
*
batch_size
holding the
A
matrices. Each
A
matrix is stored at constant
stridea
from each other.
Each
A
matrix has size
lda
*
k
, where
k
is
m
when
side
=
CblasLeft
and is
n
when
side
=
CblasRight
.
Before entry with
uplo
=
CblasUpper
, the leading
k
-by-
k
upper triangular part of the array
A
must contain the upper triangular matrix and the strictly lower triangular part of
A
is not referenced.
Before entry with
uplo
=
CblasLower
lower triangular part of the array
A
must contain the lower triangular matrix and the strictly upper triangular part of
A
is not referenced.
When diag =
CblasUnit
, the diagonal elements of
A
are not referenced either, but are assumed to be unity.
lda
Specifies the leading dimension of the
A
matrices. When
side
=
CblasLeft
, then
lda
must be at least
max(1, m)
, when side =
side
=
CblasRight
, then
lda
must be at least
max(1, n)
.
stridea
Stride between two consecutive
A
matrices.
When
side
=
CblasLeft
, then
stridea
must be at least
lda
*
m
.
When side =
side
=
CblasRight
, then
stridea
must be at least
lda
*
n
.
b
Array of size at least
strideb
*
batch_size
holding the
B
matrices. Each
B
matrix is stored at constant
strideb
from each other.
When
layout
= CblasColMajor, each
B
matrix has size
ldb
*
n
. Before entry, the leading
m
-by-
n
part of the array
B
must contain the matrix
B
.
When
layout
= CblasRowMajor, each
B
matrix has size
ldb
*
m
. Before entry, the leading
n
-by-
m
part of the array
B
must contain the matrix
B
.
ldb
Specifies the leading dimension of the
B
matrices.
When
layout
= CblasColMajor,
strideb
must be at least
max(1,
m
)
. Otherwise,
strideb
must be at least
max(1,
n
)
.
strideb
Stride between two consecutive
B
matrices.
When
layout
= CblasColMajor,
strideb
must be at least
ldb
*
n
. Otherwise,
strideb
must be at least
ldb
*
m
.
batch_size
Number of
trsm
computations to perform. Must be at least 0.
Output Parameters
b
Overwritten by the solution batch_size
X
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