Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

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
:=
beta
*
C
+
alpha
*
A
*op(
A
)
or
C
:=
beta
*
C
+
alpha
*op(
A
)*
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.
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
C_INT
.
Specifies the operation
op()
performed on the input matrix.
SPARSE_OPERATION_NON_TRANSPOSE
, Non-transpose,
C
:=
beta
*
C
+
alpha
*
A
*op(
A
)
where op(*) is the transpose (real matrices) or conjugate transpose (complex matrices).
SPARSE_OPERATION_TRANSPOSE
, Transpose,
C
:=
beta
*
C
+
alpha
*
A
T
*
A
for real matrix A.
SPARSE_OPERATION_CONJUGATE_TRANSPOSE
Conjugate transpose,
C
:=
beta
*
C
+
alpha
*
A
H
*
A
for complex matrix A.
A
SPARSE_MATRIX_T
.
Handle which contains the sparse matrix
A
.
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
Scalar parameter
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
Scalar parameter
beta
.
layout
Describes the storage scheme for the dense matrix.
layout
=
SPARSE_LAYOUT_COLUMN_MAJOR
Storage of elements uses column-major layout.
layout
=
SPARSE_LAYOUT_ROW_MAJOR
Storage of elements uses row-major layout.
ldc
C_INT
.
Leading dimension of matrix
C
.
Only the upper triangular part of matrix C is processed. Therefore, you must set real values of
alpha
and
beta
for complex matrices in order to obtain a Hermitian matrix.