Developer Reference for Intel® oneAPI Math Kernel Library for C
Sparse BLAS Coordinate Matrix Storage Format
The coordinate format is the most flexible and simplest format for the sparse matrix representation. Only non-zero elements are stored, and the coordinates of each non-zero element are given explicitly. Many commercial libraries support the matrix-vector multiplication for the sparse matrices in the coordinate format.
The Intel® oneAPI Math Kernel Library (oneMKL) coordinate format is specified by three arrays: values , rows , and column , and a parameter nnz which is number of non-zero elements in A . All three arrays have dimension nnz . The following table describes the arrays in terms of the values, row, and column positions of the non-zero elements in a sparse matrix A .
values
A real or complex array that contains the non-zero elements of A in any order.
rows
Element i of the integer array rows is the number of the row in A that contains the i -th value in the values array.
columns
Element i of the integer array columns is the number of the column in A that contains the i -th value in the values array.
For example, the sparse matrix C
can be represented in the coordinate format as follows:
Storage Arrays for an Example Matrix in case of the coordinate format
one-based indexing |
||||||||||||||
values |
= |
(1 |
-1 |
-3 |
-2 |
5 |
4 |
6 |
4 |
-4 |
2 |
7 |
8 |
-5) |
rows |
= |
(1 |
1 |
1 |
2 |
2 |
3 |
3 |
3 |
4 |
4 |
4 |
5 |
|
columns |
= |
(1 |
2 |
3 |
1 |
2 |
3 |
4 |
5 |
1 |
3 |
4 |
2 |
|
zero-based indexing |
||||||||||||||
values |
= |
(1 |
-1 |
-3 |
-2 |
5 |
4 |
6 |
4 |
-4 |
2 |
7 |
8 |
-5) |
rows |
= |
(0 |
0 |
0 |
1 |
1 |
2 |
2 |
2 |
3 |
3 |
3 |
4 |
|
columns |
= |
(0 |
1 |
2 |
0 |
1 |
2 |
3 |
4 |
0 |
2 |
3 |
1 |
|