Developer Reference

Contents

mkl_sparse_sp2m

Computes the product of two sparse matrices. The result is stored in a newly allocated sparse matrix.

Syntax

sparse_status_t mkl_sparse_sp2m
(
const sparse_operation_t
transA
,
const struct
matrix_descr
descrA
,
const
sparse_matrix_t
A
,
const sparse_operation_t
transB
,
const struct
matrix_descr
descrB
,
const
sparse_matrix_t
B
,
const sparse_request_t
request
,
sparse_matrix_t
*C
);
Include Files
  • mkl_spblas.h
Description
The
mkl_sparse_sp2m
routine performs a matrix-matrix operation:
C
:= op
A
(
A
) *op
B
(
B
)
where
A
,
B
, and
C
are sparse matrices,
opA
and
opB
are matrix modifiers for matrices
A
and
B
, respectively.
Input Parameters
opA
Specifies operation 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
opB
Specifies operation on input matrix.
SPARSE_OPERATION_NON_TRANSPOSE
Non-transpose, op(
B
)=
B
SPARSE_OPERATION_TRANSPOSE
Transpose, op(
B
)=
B
T
SPARSE_OPERATION_CONJUGATE_TRANSPOSE
Conjugate transpose, op(
B
)=
B
H
descrA
Structure that specifies sparse matrix properties.
Currently, only SPARSE_MATRIX_TYPE_GENERAL is supported.
sparse_matrix_type_t
type
specifies the type of 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 the requested triangle is processed). This applies to BSR format only.
SPARSE_MATRIX_TYPE_BLOCK_DIAGONAL
The matrix is block-diagonal (only the requested triangle is processed). This applies to BSR format only.
sparse_fill_mode_t
mode
specifies the triangular matrix portion for symmetric, Hermitian, triangular, and block-triangular matrices.
SPARSE_FILL_MODE_LOWER
The lower triangular matrix is processed.
SPARSE_FILL_MODE_UPPER
The upper triangular matrix is processed.
sparse_diag_type_t
diag
specifies the type of diagonal for non-general matrices.
SPARSE_DIAG_NON_UNIT
Diagonal elements must not be equal to 1.
SPARSE_DIAG_UNIT
Diagonal elements are equal to 1.
descrB
Structure that specifies sparse matrix properties.
Currently, only SPARSE_MATRIX_TYPE_GENERAL is supported.
sparse_matrix_type_t
type
specifies the type of 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 the requested triangle is processed). This applies to BSR format only.
SPARSE_MATRIX_TYPE_BLOCK_DIAGONAL
The matrix is block-diagonal (only the requested triangle is processed). This applies to BSR format only.
sparse_fill_mode_t
mode
specifies the triangular matrix portion for symmetric, Hermitian, triangular, and block-triangular matrices.
SPARSE_FILL_MODE_LOWER
The lower triangular matrix is processed.
SPARSE_FILL_MODE_UPPER
The upper triangular matrix is processed.
sparse_diag_type_t
diag
specifies the type of diagonal for non-general matrices.
SPARSE_DIAG_NON_UNIT
Diagonal elements must not be equal to 1.
SPARSE_DIAG_UNIT
Diagonal elements are equal to 1.
A
Handle which contains the sparse matrix
A
.
B
Handle which contains the sparse matrix
B
.
request
Specifies whether the full computations are performed at once or using the two-stage algorithm. See Two-stage Algorithm for Inspector-executor Sparse BLAS Routines.
SPARSE_STAGE_NNZ_COUNT
Only
rowIndex
(BSR/CSR format) or
colIndex
(CSC format) array of the matrix is computed internally. The computation can be extracted to measure the memory required for full operation.
SPARSE_STAGE_FINALIZE_MULT_NO_VAL
Finalize computations of the matrix structure (values will not be computed). Use only after the call with SPARSE_STAGE_NNZ_COUNT parameter.
SPARSE_STAGE_FINALIZE_MULT
Finalize computation. Can also be used when the matrix structure remains unchanged and only values of the resulting matrix
C
need to be recomputed.
SPARSE_STAGE_FULL_MULT_NO_VAL
Perform computations of the matrix structure.
SPARSE_STAGE_FULL_MULT
Perform the entire computation in a single step.
Output Parameters
C
Handle which contains the resulting sparse matrix.
Return Values
The function returns a value indicating whether the operation was successful, or the reason why it failed.
SPARSE_STATUS_SUCCESS
The operation was successful.
SPARSE_STATUS_NOT_INITIALIZED
The routine encountered an empty handle or matrix array.
SPARSE_STATUS_ALLOC_FAILED
The internal memory allocation failed.
SPARSE_STATUS_INVALID_VALUE
The input parameters contain an invalid value.
SPARSE_STATUS_EXECUTION_FAILED
The execution failed.
SPARSE_STATUS_INTERNAL_ERROR
An error occurred in the implementation of the algorithm.
SPARSE_STATUS_NOT_SUPPORTED
The requested operation is not supported.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804