Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
mkl_sparse_?_syrkd
Computes the product of sparse matrix with its transpose (or conjugate transpose) and stores the result as a dense matrix.
Syntax
stat = mkl_sparse_s_syrkd ( operation, A, alpha, beta, C, layout, ldc )
stat = mkl_sparse_d_syrkd ( operation, A, alpha, beta, C, layout, ldc )
stat = mkl_sparse_c_syrkd ( operation, A, alpha, beta, C, layout, ldc )
stat = mkl_sparse_z_syrkd ( operation, A, alpha, beta, C, layout, ldc )
Include Files
mkl_spblas.f90
Description
The mkl_sparse_?_syrkd routine performs a sparse matrix-matrix operation which results in a dense matrix C that is either symmetric (real case) or Hermitian (complex case):
\[C \leftarrow \beta C + \alpha A \cdot op(A)\]
where \(op()\) is the transpose for real matrices and conjugate transpose for complex matrices OR
\[C \leftarrow \beta C + \alpha 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\) is a sparse matrix and \(C\) is a dense matrix.
Input Parameters
operation
C_INT .
Specifies operation op() on input matrix:
operation |
Description |
|---|---|
SPARSE_OPERATION_NON_TRANSPOSE |
\(C \leftarrow \beta\cdot C + \alpha\cdot A\cdot A^{T}\) for real matrices and \(C \leftarrow \beta\cdot C + \alpha\cdot A\cdot A^{H}\) for complex matrices. |
SPARSE_OPERATION_TRANSPOSE |
\(C \leftarrow \beta\cdot C + \alpha\cdot A^{T}\cdot A\) for real matrix \(A\). |
SPARSE_OPERATION_CONJUGATE_TRANSPOSE |
\(C \leftarrow \beta\cdot C + \alpha\cdot A^{H}\cdot A\) for complex matrix \(A\). |
A
SPARSE_MATRIX_T.
Handle which contains the sparse matrix \(A\) . The matrix must be in sorted CSR or sorted BSR format. See mkl_sparse_order for more details on sorting the data.
alpha
C_FLOAT |
for mkl_sparse_s_syrkd |
C_DOUBLE |
for mkl_sparse_d_syrkd |
C_FLOAT_COMPLEX |
for mkl_sparse_c_syrkd |
C_DOUBLE_COMPLEX |
for mkl_sparse_z_syrkd |
Specifies the scalar, \(\alpha\).
beta
C_FLOAT |
for mkl_sparse_s_syrkd |
C_DOUBLE |
for mkl_sparse_d_syrkd |
C_FLOAT_COMPLEX |
for mkl_sparse_c_syrkd |
C_DOUBLE_COMPLEX |
for mkl_sparse_z_syrkd |
Specifies the scalar, \(\beta\).
layout
C_INT .
Structure that describes the storage scheme for the dense matrix \(C\).
SPARSE_LAYOUT_COLUMN_MAJOR |
Store elements in a column-major layout. |
SPARSE_LAYOUT_ROW_MAJOR |
Store elements in a row-major layout. |
ldc
C_INT.
Leading dimension of matrix \(C\).
Output Parameters
C
SPARSE_MATRIX_T .
Handle which contains the resulting dense matrix \(C\). Only the upper-triangular part of the matrix is computed.
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.