Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
mkl_sparse_spmm
Computes the product of two sparse matrices. The result is stored in a newly allocated sparse matrix.
Syntax
stat = mkl_sparse_spmm ( op, A, B, C )
Include Files
mkl_spblas.f90
Description
The mkl_sparse_spmm routine performs a matrix-matrix operation:
\[C \leftarrow op(A)\cdot B\]
where \(A\), \(B\), and \(C\) are sparse matrices and \(op()\) is a matrix modifier for matrix \(A\) .
Notes
This routine is supported only for sparse matrices in CSC, CSR, and BSR formats. It is not supported for sparse matrices in COO format. The column indices of the output matrix (if in CSR format) can appear unsorted due to the algorithm chosen internally. To ensure sorted column indices (if that is important), call mkl_sparse_order(C) after finishing call to mkl_sparse_spmm(op, A, B, &C).Input Parameters
op
C_INT.
Specifies operation on input matrix \(A\).
op |
Description |
|---|---|
SPARSE_OPERATION_NON_TRANSPOSE |
\(op(A) = A\) |
SPARSE_OPERATION_TRANSPOSE |
\(op(A) = A^{T}\) |
SPARSE_OPERATION_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\) .
Output Parameters
C
SPARSE_MATRIX_T.
Handle which contains the resulting sparse matrix.
stat
INTEGER
Value indicating whether the operation was successful, and if not, 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. |
Return Values
See Output Parameter stat.