Developer Reference

  • 2021.1
  • 12/04/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

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