Developer Reference

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

mkl_sparse_?_spmmd

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

Syntax

stat = mkl_sparse_s_spmmd
(
operation
,
A
,
B
,
layout
,
C
,
ldc
)
stat = mkl_sparse_d_spmmd
(
operation
,
A
,
B
,
layout
,
C
,
ldc
)
stat = mkl_sparse_c_spmmd
(
operation
,
A
,
B
,
layout
,
C
,
ldc
)
stat = mkl_sparse_z_spmmd
(
operation
,
A
,
B
,
layout
,
C
,
ldc
)
Include Files
  • mkl_spblas.f90
Description
The
mkl_sparse_?_spmmd
routine performs a matrix-matrix operation:
C
:= op(
A
)*
B
where
A
and
B
are sparse matrices,
op
is a matrix modifier for matrix
A
, and
C
is a dense matrix.
This routine is not supported for sparse matrices in the COO format. For sparse matrices in BSR format, these combinations of (
indexing
,
block_layout
) are supported:
  • (
    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
.
A
SPARSE_MATRIX_T
.
Handle which contains the sparse matrix
A
.
B
SPARSE_MATRIX_T
.
Handle which contains the sparse matrix
B
.
layout
C_INT
.
Describes the storage scheme for the dense matrix:
SPARSE_LAYOUT_COLUMN_MAJOR
Storage of elements uses column major layout.
SPARSE_LAYOUT_ROW_MAJOR
Storage of elements uses row major layout.
ldC
C_INT
.
Leading dimension of matrix
C
.
Output Parameters
C
C_FLOAT
for
mkl_sparse_s_spmmd
C_DOUBLE
for
mkl_sparse_d_spmmd
C_FLOAT_COMPLEX
for
mkl_sparse_c_spmmd
C_DOUBLE_COMPLEX
for
mkl_sparse_z_spmmd
Resulting dense matrix.
stat
INTEGER
Value indicating whether the operation was successful or not, and why:
SPARSE_STATUS_SUCCESS
The operation was successful.
SPARSE_STATUS_NOT_INITIALIZED
The routine encountered an empty handle or matrix array.
SPARSE_STATUS_ALLOC_FAILED
Internal memory allocation failed.
SPARSE_STATUS_INVALID_VALUE
The input parameters contain an invalid value.
SPARSE_STATUS_EXECUTION_FAILED
Execution failed.
SPARSE_STATUS_INTERNAL_ERROR
An error in algorithm implementation occurred.
SPARSE_STATUS_NOT_SUPPORTED
The requested operation is not supported.