mkl_sparse_spmm
mkl_sparse_spmm
Computes the product of two sparse matrices. The result is stored in a newly allocated sparse matrix.
Syntax
sparse_status_t mkl_sparse_spmm
(
const sparse_operation_t
operation
,
const
sparse_matrix_t
A
,
const
sparse_matrix_t
B
,
sparse_matrix_t
*C
);
Include Files
- mkl_spblas.h
Description
The
mkl_sparse_spmm
routine performs a matrix-matrix operation:C := op(A) *B
where
A
, B
, and C
are sparse matrices and op
is a matrix modifier for matrix A
.This routine is only supported for sparse matrices in CSC, CSR, and BSR formats. It is not supported for sparse matrices in COO format.
Input Parameters
- operation
- Specifies operationop()on input matrix.
- SPARSE_OPERATION_NON_TRANSPOSE
- Non-transpose,op(.A) =A
- SPARSE_OPERATION_TRANSPOSE
- Transpose,op(.A) =AT
- SPARSE_OPERATION_CONJUGATE_TRANSPOSE
- Conjugate transpose,op(.A) =AH
- A
- Handle which contains the sparse matrixA.
- B
- Handle which contains the sparse matrixB.
Output Parameters
- C
- Handle which contains the resulting sparse matrix.
Return Values
The function returns a 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.