Developer Reference

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

cblas_?trsm

Solves a triangular matrix equation.

Syntax

void
cblas_strsm
(
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
,
float
*b
,
const
MKL_INT
ldb
);
void
cblas_dtrsm
(
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
,
double
*b
,
const
MKL_INT
ldb
);
void
cblas_ctrsm
(
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
,
void
*b
,
const
MKL_INT
ldb
);
void
cblas_ztrsm
(
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
,
void
*b
,
const
MKL_INT
ldb
);
Include Files
  • mkl.h
Description
The
?trsm
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, and
op(
A
)
is one of
op(
A
) =
A
, or
op(
A
) =
A
'
, or
op(
A
) = conjg(
A
')
.
The matrix
B
is overwritten by the solution matrix
X
.
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 matrix
A
is upper or lower triangular.
uplo
=
CblasUpper
if
uplo
=
CblasLower
, then the matrix is low triangular.
transa
Specifies the form of
op(
A
)
used in the matrix multiplication:
if
transa
=
CblasNoTrans
, then
op(
A
) =
A
;
if
transa
=
CblasTrans
;
if
transa
=
CblasConjTrans
, then
op(
A
) = conjg(
A
')
.
diag
Specifies whether the matrix
A
is unit triangular:
if
diag
=
CblasUnit
then the matrix is unit triangular;
if
diag
=
CblasNonUnit
, 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
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
a
as declared in the calling (sub)program. When
side
=
CblasLeft
, then
lda
must be at least
max(1,
m
)
, when
side
=
CblasRight
, then
lda
must be at least
max(1,
n
)
.
b
For
Layout
=
CblasColMajor
: array, size
ldb
*
n
. Before entry, the leading
m
-by-
n
part of the array
b
must contain the matrix
B
.
For
Layout
=
CblasRowMajor
: array, 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
b
as declared in the calling (sub)program.
When
Layout
=
CblasColMajor
,
ldb
must be at least
max(1,
m
)
; otherwise,
ldb
must be at least
max(1,
n
)
.
Output Parameters
b
Overwritten by the solution matrix
X
.

Product and Performance Information

1

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