Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
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(k_{1}), a(k_{2}), a(k_{3}) . . . a(k_{nz}),
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(1)=a(k_{1}), x(2)=a(k_{2}), . . . x(nz)= a(k_{nz}),
indx(1)=k_{1}, indx(2)=k_{2}, . . . indx(nz)= k_{nz}.
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(1), the second in y(2), and so forth.
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.