Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

mkl_sparse_?_update_values

Changes all or selected matrix values in internal representation.

Syntax

NOTE:

This routine is supported for sparse matrices in BSR format only.

sparse_status_t mkl_sparse_s_update_values (sparse_matrix_t A, MKL_INT nvalues, MKL_INT *indx, MKL_INT *indy, float *values);

sparse_status_t mkl_sparse_d_update_values (sparse_matrix_t A, MKL_INT nvalues, MKL_INT *indx, MKL_INT *indy, double *values);

sparse_status_t mkl_sparse_c_update_values (sparse_matrix_t A, MKL_INT nvalues, MKL_INT *indx, MKL_INT *indy, MKL_Complex8 *values);

sparse_status_t mkl_sparse_z_update_values (sparse_matrix_t A, MKL_INT nvalues, MKL_INT *indx, MKL_INT *indy, MKL_Complex16 *values);

Include Files

  • mkl_spblas.h

Description

Use the mkl_sparse_?_update_values routine to change all or selected values of a matrix in the internal Inspector-Executor Sparse BLAS format.

The values to be updated should already be present in the matrix structure.

  • To change selected values, you must provide an array values (with new values) and also the corresponding row and column indices for each value via indx and indy arrays as well as the overall number of changed elements nvalues.

    So that, for example, to change A(0, 0) to 1 and A(0, 1) to 2, pass the following input parameters: nvalues = 2, indx = {0, 0}, indy = {0, 1} and values = {1, 2}.

  • To change all the values in the matrix, provide the values array and explicitly set nvalues to 0 or the actual number of non zero elements. There is no need to supply indx and indy arrays.

Input Parameters

A

Specifies handle containing internal data.

nvalues

Total number of elements changed.

indx

Row indices for the new values.

NOTE:

Currently, only updating the full matrix is supported. Set indx and indy as NULL.

indy

Column indices for the new values.

NOTE:

Currently, only updating the full matrix is supported. Set indx and indy as NULL.

values

New values.

Output Parameters

A

Handle containing modified internal data.

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.