Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 3/22/2024
Public

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

Document Table of Contents

Vector Arguments

Compressed sparse vectors. Let a be a vector stored in an array, and assume that the only non-zero elements of a are the following:

a[k1], a[k2], a[k3] . . . a[knz], 

where nz is the total number of non-zero elements in a.

In Sparse BLAS, this vector can be represented in compressed form by two arrays, x (values) and indx (indices). Each array has nz elements:

x[0]=a[k1], x[1]=a[k2], . . . x[nz-1]= a[knz], 
indx[0]=k1, indx[1]=k2, . . . indx[nz-1]= knz. 

Thus, a sparse vector is fully determined by the triple (nz, x, indx). If you pass a negative or zero value of nz to Sparse BLAS, the subroutines do not modify any arrays or variables.

Full-storage vectors. Sparse BLAS routines can also use a vector argument fully stored in a single array (a full-storage vector). If y is a full-storage vector, its elements must be stored contiguously: the first element in y[0], the second in y[1], and so on. This corresponds to an increment incy = 1 in BLAS Level 1. No increment value for full-storage vectors is passed as an argument to Sparse BLAS routines or functions.