Visible to Intel only — GUID: GUID-41ACC32C-DB4C-478D-8CC8-640BF7D34A2B
Visible to Intel only — GUID: GUID-41ACC32C-DB4C-478D-8CC8-640BF7D34A2B
cblas_?trsm_batch_strided
Solves groups of triangular matrix equations.
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);
- mkl.h
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
- 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
-
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.
- b
-
Overwritten by the solution batch_size X matrices.