How to work with and load/save sparse compressed matrices? (numir, mir.sparse)

9il ilyayaroshenko at gmail.com
Mon Oct 5 03:21:22 UTC 2020


On Tuesday, 29 September 2020 at 04:52:11 UTC, Shaleen Chhabra 
wrote:
> I wish to use load / save for sparse compressed matrices using 
> mir.
>
>     import mir.sparse;
>     auto sp = sparse!double(5, 8);
>     auto crs = sp.compress;
>
>
> How can I save/load sparse compressed arrays in `npz` format?
> (format: ``csc``, ``csr``, ``bsr``, ``dia`` or coo``)

Mir doesn't have I/O support for sparse tensors for now.

> how can i again decompress the compressed sparse array to dense?

// 
http://mir-algorithm.libmir.org/mir_ndslice_allocation.html#.slice
import mir.ndslice.allocation: slice;

// for DOK:
auto dense = slice(sp);

For crs you may need to iterate with byCoordinateValue
http://mir.libmir.org/mir_sparse.html#.byCoordinateValue
and initialize the dense slice.

To estimate the raw length one may need to iterate all rows and 
get the maximum of the last element indices.


> Thanks
> Shaleen




More information about the Digitalmars-d-learn mailing list