Developer Reference for Intel® oneAPI Math Kernel Library for C
?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 ?trsm_batch_stridedcblas_?trsm_batch_strided routines solve a series of triangular matrix equations. They are similar to the ?trsmcblas_?trsm routine counterparts, but the ?trsm_batch_stridedcblas_?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
for i = 0 … batch_size – 1
A[i], and B[i] are matrices at offset i * stridea and i * strideb in a and b
Solve op(A[i])*X[i]i= alpha * B[i] Or Solve X[i]*op(A[i]) = alpha * B]i]
end for
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) = AT ;
if transa = CblasConjTrans , then op(A) = AH ;
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
-
REAL for strsm_batch_strided DOUBLE PRECISION for dtrsm_batch_strided COMPLEX for ctrsm_batch_strided DOUBLE COMPLEX for ztrsm_batch_strided Specifies the scalar alpha .
- a
-
REAL for strsm_batch_strided DOUBLE PRECISION for dtrsm_batch_strided COMPLEX for ctrsm_batch_strided DOUBLE COMPLEX for ztrsm_batch_strided 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
-
REAL for strsm_batch_strided DOUBLE PRECISION for dtrsm_batch_strided COMPLEX for ctrsm_batch_strided DOUBLE COMPLEX for ztrsm_batch_strided Array of size at least strideb * batch_size holding the B matrices. Each B matrix is stored at constant strideb from each other. 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 = 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. ldb must be at least max(1,m) . When layout = CblasColMajor, strideb must be at least max(1,m) . Otherwise, strideb must be at least max(1,n) .
- strideb
-
INTEGER . Stride between two consecutive B matrices. strideb must be at least (ldb*n) . When layout = CblasColMajor, strideb must be at least ldb*n . Otherwise, strideb must be at least ldb*m .
- batch_size
-
INTEGER . Number of trsm computations to perform. Must be at least 0.
Output Parameters
- b
-
Overwritten by the solution batch_size X matrices.