Intel® Math Kernel Library 2018 Developer Reference - C

mkl_sparse_?_syrkd

Computes the product of sparse matrix with its transposed matrix and stores the result as a dense matrix.

Syntax

sparse_status_t mkl_sparse_s_syrkd (sparse_operation_t operation, const sparse_matrix_t A, float alpha, float beta, float *C, sparse_layout_t layout, MKL_INT ldc);

sparse_status_t mkl_sparse_d_syrkd (sparse_operation_t operation, const sparse_matrix_t A, double alpha, double beta, double *C, sparse_layout_t layout, MKL_INT ldc);

sparse_status_t mkl_sparse_c_syrkd (sparse_operation_t operation, const sparse_matrix_t A, const MKL_Complex8 alpha, MKL_Complex8 beta, MKL_Complex8 *C, sparse_layout_t layout, MKL_INT ldc);

sparse_status_t mkl_sparse_z_syrkd (sparse_operation_t operation, const sparse_matrix_t A, MKL_Complex16 alpha, MKL_Complex16 beta, MKL_Complex16 *C, sparse_layout_t layout, const MKL_INT ldc);

Include Files

Description

The mkl_sparse_?_syrkd routine performs a matrix-matrix operation with symmetric-resulting matrix C:

C := beta*C + alpha*A*AT
or
C := beta*C + alpha*AT*A

where A is a sparse matrix, C is a dense matrix, and alpha and beta are scalars.

Input Parameters

operation

Specifies the operation op() performed on the input matrix.

SPARSE_OPERATION_NON_TRANSPOSE, Non-transpose, C := beta*C + alpha*A*AT

SPARSE_OPERATION_TRANSPOSE, Transpose,C := beta*C + alpha*AT*A

SPARSE_OPERATION_CONJUGATE_TRANSPOSE is not supported.

A

Handle containing a sparse matrix in internal data structure.

alpha

Scalar parameter alpha.

beta

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

Leading dimension of matrix C.

Note

This routine supports only the sorted CSR format for the input matrix. If data is unsorted, the mkl_sparse_order routine should be called before either mkl_sparse_syrk or mkl_sparse_?_syrkd.

Output Parameters

C

Resulting dense 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.