mkl_sparse_syrk
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) or Hermitian (complex):
where op(*) is the transpose for real matrices and conjugate transpose for complex matrices ORC := A*op(A)
depending on the matrix modifierC := op(A)*A
op
which can be the transpose for real matrices or conjugate transpose for complex matrices. Here,
A
and C
are sparse matrices.This routine is not supported for sparse matrices in COO or CSC formats. It supports only CSR and BSR formats. Additionally, this routine
supports only the sorted CSR and sorted BSR formats for the input matrix. If data is unsorted, call the
mkl_sparse_order routine before either
mkl_sparse_syrk
or mkl_sparse_?_syrkd. Input Parameters
- operation
- Specifies the operationop()on input matrix .SPARSE_OPERATION_NON_TRANSPOSE, Non-transpose,where op(*) is the transpose for real matrices and conjugate transpose for complex matricesC:=A*op(A)SPARSE_OPERATION_TRANSPOSE, Transpose,for real matrix AC:=(AT)*ASPARSE_OPERATION_CONJUGATE_TRANSPOSE, Conjugate transpose,for complex matrix A.C:=(AH)*A
- A
- Handle which contains the sparse matrixA.
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.