cblas_?trsm
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, andop(
is one of A
)op(
, or A
) = A
op(
, or A
) = A
'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 whetherop(appears on the left or right ofA)Xin the equation:if, thenside=CblasLeftop(;A)*X=alpha*Bif, thenside=CblasRight.X*op(A) =alpha*B
- uplo
- Specifies whether the matrixAis upper or lower triangular.uplo=CblasUpperifuplo=CblasLower, then the matrix is low triangular.
- transa
- Specifies the form ofop(used in the matrix multiplication:A)if, thentransa=CblasNoTransop(;A) =Aif;transa=CblasTransif, thentransa=CblasConjTransop(.A) = conjg(A')
- diag
- Specifies whether the matrixAis unit triangular:ifthen the matrix is unit triangular;diag=CblasUnitif, then the matrix is not unit triangular.diag=CblasNonUnit
- m
- Specifies the number of rows ofB. The value ofmmust be at least zero.
- n
- Specifies the number of columns ofB. The value ofnmust be at least zero.
- alpha
- Specifies the scalaralpha.Whenalphais zero, thenais not referenced andbneed not be set before entry.
- a
- Array, size, wherelda*kkismwhenand isside=CblasLeftnwhen. Before entry withside=CblasRight, the leadinguplo=CblasUpperkbykupper triangular part of the arrayamust contain the upper triangular matrix and the strictly lower triangular part ofais not referenced.Before entry withlower triangular part of the arrayuplo=CblasLoweramust contain the lower triangular matrix and the strictly upper triangular part ofais not referenced.When, the diagonal elements ofdiag=CblasUnitaare not referenced either, but are assumed to be unity.
- lda
- Specifies the leading dimension ofaas declared in the calling (sub)program. When, thenside=CblasLeftldamust be at leastmax(1,, whenm), thenside=CblasRightldamust be at leastmax(1,.n)
- b
- ForLayout=CblasColMajor: array, size. Before entry, the leadingldb*nm-by-npart of the arraybmust contain the matrixB.ForLayout=CblasRowMajor: array, size. Before entry, the leadingldb*mn-by-mpart of the arraybmust contain the matrixB.
- ldb
- Specifies the leading dimension ofbas declared in the calling (sub)program.WhenLayout=CblasColMajor,ldbmust be at leastmax(1,m); otherwise,.ldbmust be at leastmax(1,n)
Output Parameters
- b
- Overwritten by the solution matrixX.