Intel® Math Kernel Library 2018 Developer Reference - C

mkl_sparse_syrk

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

Syntax

sparse_status_t mkl_sparse_syrk (sparse_operation_t operation, const sparse_matrix_t A, sparse_matrix_t *C);

Include Files

Description

The mkl_sparse_syrk routine performs a matrix-matrix operation with symmetric resulting matrix C:

C := A*(AT)
or
C := (AT)*A

where A and C are sparse matrices.

Input Parameters

operation

Specifies the operation op() on input matrix .

SPARSE_OPERATION_NON_TRANSPOSE, Non-transpose,C := A*(AT)

SPARSE_OPERATION_TRANSPOSE, Transpose,C := (AT)*A

SPARSE_OPERATION_CONJUGATE_TRANSPOSE is not supported.

A

Handle containing a sparse matrix in internal data structure.

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

Handle containing the resulting sparse matrix in internal data structure. 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.