Developer Reference

  • 098
  • 03/30/2020
  • Public Content
Contents

mkl_sparse_?_mm

Computes the product of a sparse matrix and a dense matrix and stores the result as a dense matrix.

Syntax

stat = mkl_sparse_s_mm
(
operation
,
alpha
,
A
,
descr
,
layout
,
B
,
columns
,
ldb
,
beta
,
C
,
ldc
)
stat = mkl_sparse_d_mm
(
operation
,
alpha
,
A
,
descr
,
layout
,
B
,
columns
,
ldb
,
beta
,
C
,
ldc
)
stat = mkl_sparse_c_mm
(
operation
,
alpha
,
A
,
descr
,
layout
,
B
,
columns
,
ldb
,
beta
,
C
,
ldc
)
stat = mkl_sparse_z_mm
(
operation
,
alpha
,
A
,
descr
,
layout
,
B
,
columns
,
ldb
,
beta
,
C
,
ldc
)
Include Files
  • mkl_spblas.f90
Description
The
mkl_sparse_?_mm
routine performs a matrix-matrix operation:
Y
:=
alpha
*op(
A
)*
B
+
beta
*
C
where
alpha
and
beta
are scalars,
A
is a sparse matrix,
op
is a matrix modifier for matrix
A
, and
B
and
C
are dense matrices.
The
mkl_sparse_?_mm
and
mkl_sparse_?_trsm
routines support these configurations:
Column-major dense matrix:
layout
=
SPARSE_LAYOUT_COLUMN_MAJOR
Row-major dense matrix:
layout
=
SPARSE_LAYOUT_ROW_MAJOR
0-based sparse matrix:
SPARSE_INDEX_BASE_ZERO
CSR
BSR: general non-transposed matrix multiplication only
All formats
1-based sparse matrix:
SPARSE_INDEX_BASE_ONE
All formats
CSR
BSR: general non-transposed matrix multiplication only
For sparse matrices in the BSR format, the supported combinations of (
indexing
,
block_layout
) are:
  • (
    SPARSE_INDEX_BASE_ZERO
    ,
    SPARSE_LAYOUT_ROW_MAJOR
    )
  • (
    SPARSE_INDEX_BASE_ONE
    ,
    SPARSE_LAYOUT_COLUMN_MAJOR
    )
Input Parameters
operation
C_INT
.
Specifies operation
op()
on input matrix.
SPARSE_OPERATION_NON_TRANSPOSE
Non-transpose,
op(
A
) =
A
.
SPARSE_OPERATION_TRANSPOSE
Transpose,
op(
A
) =
A
T
.
SPARSE_OPERATION_CONJUGATE_TRANSPOSE
Conjugate transpose,
op(
A
) =
A
H
.
alpha
C_FLOAT
for
mkl_sparse_s_mm
C_DOUBLE
for
mkl_sparse_d_mm
C_FLOAT_COMPLEX
for
mkl_sparse_c_mm
C_DOUBLE_COMPLEX
for
mkl_sparse_z_mm
Specifies the scalar
alpha
.
A
SPARSE_MATRIX_T
.
Handle which contains the sparse matrix
A
.
descr
MATRIX_DESCR
.
Descriptor
specifying sparse matrix properties.
type
- Specifies the type of a sparse matrix:
SPARSE_MATRIX_TYPE_GENERAL
The matrix is processed as is.
SPARSE_MATRIX_TYPE_SYMMETRIC
The matrix is symmetric (only the requested triangle is processed).
SPARSE_MATRIX_TYPE_HERMITIAN
The matrix is Hermitian (only the requested triangle is processed).
SPARSE_MATRIX_TYPE_TRIANGULAR
The matrix is triangular (only the requested triangle is processed).
SPARSE_MATRIX_TYPE_DIAGONAL
The matrix is diagonal (only diagonal elements are processed).
SPARSE_MATRIX_TYPE_BLOCK_TRIANGULAR
The matrix is block-triangular (only requested triangle is processed). Applies to BSR format only.
SPARSE_MATRIX_TYPE_BLOCK_DIAGONAL
The matrix is block-diagonal (only diagonal blocks are processed). Applies to BSR format only.
mode
- Specifies the triangular matrix part for symmetric, Hermitian, triangular, and block-triangular matrices:
SPARSE_FILL_MODE_LOWER
The lower triangular matrix part is processed.
SPARSE_FILL_MODE_UPPER