Visible to Intel only — GUID: GUID-41ACC32C-DB4C-478D-8CC8-640BF7D34A2B
Visible to Intel only — GUID: GUID-41ACC32C-DB4C-478D-8CC8-640BF7D34A2B
?trsm_batch_strided
Solves groups of triangular matrix equations.
Syntax
call strsm_batch_strided(side, uplo, transa, diag, m, n, alpha, a, lda, stridea, b, ldb, strideb, batch_size)
call dtrsm_batch_strided(side, uplo, transa, diag, m, n, alpha, a, lda, stridea, b, ldb, strideb, batch_size)
call ctrsm_batch_strided(side, uplo, transa, diag, m, n, alpha, a, lda, stridea, b, ldb, strideb, batch_size)
call ztrsm_batch_strided(side, uplo, transa, diag, m, n, alpha, a, lda, stridea, b, ldb, strideb, batch_size)
Include Files
- mkl.fi, mkl_blas.f90
Description
The ?trsm_batch_strided routines solve a series of triangular matrix equations. They are similar to the ?trsm routine counterparts, but the ?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 Ai, and Bi are matrices at offset i * stridea and i * strideb in a and b Solve op(Ai)*Xi = alpha * Bi Or Solve Xi*op(Ai) = alpha * Bi end for
Input Parameters
- side
-
CHARACTER*1.
Specifies whether op(A) appears on the left or right of X in the equation.
if side = 'L' or 'l', then op(A)*X = alpha*B;
if side = 'R' or 'r', then X*op(A) = alpha*B.
- uplo
-
CHARACTER*1.
Specifies whether the matrices A are upper or lower triangular.
if uplo = 'U' or 'u', then A are upper triangular;
if uplo = 'L' or 'l', then A are lower triangular.
- transa
-
CHARACTER*1.
Specifies op(A) the transposition operation applied to the matrices A.
if transa = 'N' or 'n', then op(A) = A;
if transa = 'T' or 't', then op(A) = AT;
if transa = 'C' or 'c', then op(A) = AH;
- diag
-
CHARACTER*1.
Specifies whether the matrices A are unit triangular.
if diag = 'U' or 'u', then A are unit triangular;
if diag = 'N' or 'n', then A are non-unit triangular.
- m
-
INTEGER.
Number of rows of B matrices. Must be at least 0
- n
-
INTEGER.
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 = 'L' or 'l' and is n when side = 'R' or 'r' .
Before entry with uplo = 'U' or 'u', 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 = 'L' or 'l' 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 = 'U' or 'u' , the diagonal elements of A are not referenced either, but are assumed to be unity.
- lda
-
INTEGER.
Specifies the leading dimension of the A matrices. When side = 'L' or 'l', then lda must be at least max(1, m), when side = side = 'R' or 'r', then lda must be at least max(1, n).
- stridea
-
INTEGER.
Stride between two consecutive A matrices.
When side = 'L' or 'l', then stridea must be at least lda*m.
When side = side = 'R' or 'r', 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.
- ldb
-
INTEGER.
Specifies the leading dimension of the B matrices.
ldb must be at least max(1,m).
- strideb
-
INTEGER.
Stride between two consecutive B matrices.
strideb must be at least (ldb*n).
- 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.