Developer Reference for Intel® oneAPI Math Kernel Library for C
mkl_sparse_syrk
Computes the product of sparse matrix with its transpose (or conjugate transpose) and stores the result in a newly allocated sparse matrix.
Syntax
sparse_status_t mkl_sparse_syrk ( const sparse_operation_t operation,
const sparse_matrix_t A,
sparse_matrix_t *C );
Include Files
mkl_spblas.h
Description
The mkl_sparse_syrk routine performs a sparse matrix-matrix operation which results in a sparse matrix C that is either Symmetric (real precisions) or Hermitian (complex precisions):
\[C \leftarrow A \cdot op(A)\]
where \(op()\) is the transpose for real matrices and conjugate transpose for complex matrices OR
\[C \leftarrow op(A) \cdot A\]
depending on the matrix modifier \(op()\) which can be the transpose for real matrices or conjugate transpose for complex matrices.
Here, \(A\) and \(C\) are sparse matrices.
Input Parameters
operation
Specifies operation op() on input matrix:
operation |
Description |
|---|---|
SPARSE_OPERATION_NON_TRANSPOSE |
\(C \leftarrow A\cdot A^{T}\) for real matrices and \(C \leftarrow A\cdot A^{H}\) for complex matrices. |
SPARSE_OPERATION_TRANSPOSE |
\(C \leftarrow A^{T}\cdot A\) for real matrix A. |
SPARSE_OPERATION_CONJUGATE_TRANSPOSE |
\(C \leftarrow A^{H}\cdot A\) for complex matrix A. |
A
Handle which contains the sparse matrix \(A\) .
Output Parameters
C
Handle which contains the resulting sparse matrix. Only the upper-triangular part of the matrix is computed.
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. |