mkl_?bsrmm
mkl_?bsrmm
Computes matrix - matrix product of a sparse matrix stored in the BSR format (deprecated).
Syntax
void
mkl_sbsrmm
(
const
char
*transa
,
const
MKL_INT
*m
,
const
MKL_INT
*n
,
const
MKL_INT
*k
,
const
MKL_INT
*lb
,
const
float
*alpha
,
const
char
*matdescra
,
const
float
*val
,
const
MKL_INT
*indx
,
const
MKL_INT
*pntrb
,
const
MKL_INT
*pntre
,
const
float
*b
,
const
MKL_INT
*ldb
,
const
float
*beta
,
float
*c
,
const
MKL_INT
*ldc
);
void
mkl_dbsrmm
(
const
char
*transa
,
const
MKL_INT
*m
,
const
MKL_INT
*n
,
const
MKL_INT
*k
,
const
MKL_INT
*lb
,
const
double
*alpha
,
const
char
*matdescra
,
const
double
*val
,
const
MKL_INT
*indx
,
const
MKL_INT
*pntrb
,
const
MKL_INT
*pntre
,
const
double
*b
,
const
MKL_INT
*ldb
,
const
double
*beta
,
double
*c
,
const
MKL_INT
*ldc
);
void
mkl_cbsrmm
(
const
char
*transa
,
const
MKL_INT
*m
,
const
MKL_INT
*n
,
const
MKL_INT
*k
,
const
MKL_INT
*lb
,
const
MKL_Complex8
*alpha
,
const
char
*matdescra
,
const
MKL_Complex8
*val
,
const
MKL_INT
*indx
,
const
MKL_INT
*pntrb
,
const
MKL_INT
*pntre
,
const
MKL_Complex8
*b
,
const
MKL_INT
*ldb
,
const
MKL_Complex8
*beta
,
MKL_Complex8
*c
,
const
MKL_INT
*ldc
);
void
mkl_zbsrmm
(
const
char
*transa
,
const
MKL_INT
*m
,
const
MKL_INT
*n
,
const
MKL_INT
*k
,
const
MKL_INT
*lb
,
const
MKL_Complex16
*alpha
,
const
char
*matdescra
,
const
MKL_Complex16
*val
,
const
MKL_INT
*indx
,
const
MKL_INT
*pntrb
,
const
MKL_INT
*pntre
,
const
MKL_Complex16
*b
,
const
MKL_INT
*ldb
,
const
MKL_Complex16
*beta
,
MKL_Complex16
*c
,
const
MKL_INT
*ldc
);
Include Files
- mkl.h
Description
This routine is deprecated. Use Use mkl_sparse_?_mmfrom the Inspector-executor Sparse BLAS interface instead.
Intel® oneAPI Math Kernel Library
The
mkl_?bsrmm
routine performs a matrix-matrix operation defined as C := alpha*A*B + beta*C
or
C := alpha*AT*B + beta*C
or
C := alpha*AH*B + beta*C,
where:
alpha
and beta
are scalars, B
and C
are dense matrices, A
is an m
-by-k
sparse matrix in block sparse row (BSR) format, A
T
is the transpose of A
, and A
H
is the conjugate transpose of A
.This routine supports a BSR format both with one-based indexing and zero-based indexing.
Input Parameters
- transa
- Specifies the operation.Ifortransa='N''n', then the matrix-matrix product is computed asC:=alpha*A*B+beta*CIfortransa='T''t', then the matrix-vector product is computed asC:=alpha*AT*B+beta*CIftransa='C'or'c', then the matrix-vector product is computed as,C:=alpha*AH*B+beta*C
- m
- Number of block rows of the matrixA.
- n
- Number of columns of the matrixC.
- k
- Number of block columns of the matrixA.
- lb
- Size of the block in the matrixA.
- alpha
- Specifies the scalaralpha.
- matdescra
- Array of six elements, specifies properties of the matrix used for operation. Only first four array elements are used, their possible values are given inTable “Possible Values of the Parameter. Possible combinations of element values of this parameter are given inmatdescra(descra)”Table “Possible Combinations of Element Values of the Parameter.matdescra”
- val
- Array containing elements of non-zero blocks of the matrixA. Its length is equal to the number of non-zero blocks in the matrixAmultiplied by. Refer to thelb*lbvaluesarray description in BSR Format for more details.
- indx
- For one-based indexing, array containing the column indices plus one for each non-zero block in the matrixA.For zero-based indexing, array containing the column indices for each non-zero block in the matrixA.Its length is equal to the number of non-zero blocks in the matrixA. Refer to thecolumnsarray description in BSR Format for more details.
- pntrb
- Array of lengthm.This array contains row indices, such thatis the first index of block rowpntrb[I] -pntrb[0]Iin the arrayindx.Refer topointerBarray description in BSR Format for more details.
- pntre
- Array of lengthm.This array contains row indices, such thatis the last index of block rowpntre[I] -pntrb[0] - 1Iin the arrayindx.Refer topointerEarray description in BSR Format for more details.
- b
- Array, sizeldbby at leastnfor non-transposed matrixAand at leastmfor transposed for one-based indexing, and (at leastkfor non-transposed matrixAand at leastmfor transposed,ldb) for zero-based indexing.On entry withortransa='N''n', the leadingn-by-kblock part of the arraybmust contain the matrixB, otherwise the leadingm-by-nblock part of the arraybmust contain the matrixB.
- ldb
- Specifies the leading dimension (in blocks) ofbas declared in the calling (sub)program.
- beta
- Specifies the scalarbeta.
- c
- Array, sizefor one-based indexing, sizeldc*nfor zero-based indexing.k*ldcOn entry, the leadingm-by-nblock part of the arraycmust contain the matrixC, otherwise the leadingn-by- block part of the arraycmust contain the matrixC.
- ldc
- Specifies the leading dimension (in blocks) ofcas declared in the calling (sub)program.
Output Parameters
- c
- Overwritten by the matrix(oralpha*A*B+beta*C)(oralpha*AT*B+beta*C)(.alpha*AH*B+beta*C)