gdalle / SparseMatrixColorings.jl

Coloring algorithms for sparse Jacobian and Hessian matrices
https://gdalle.github.io/SparseMatrixColorings.jl/
MIT License
16 stars 4 forks source link

Optimized decompression for specific matrix types #64

Open gdalle opened 2 months ago

gdalle commented 2 months ago

At the moment, our only optimized decompression is for SparseMatrixCSC in :direct mode: we store a vector of compressed_indices such that nonzeros(A) = vec(B)[compressed_indices]. We can probably find a similar optimization for :substitution mode.

What do we want to do for other matrix types, like:

It would be rather tiring to find optimal decompression methods for each of these. My proposal (as a first step) would be to always have a SparseMatrixCSC buffer into which we decompress, and then copy the A_buffer::SparseMatrixCSC into A::SomeWeirdMatrix. Essentially, it's easier to implement fast copy from SparseMatrixCSC than fast decompression.

Related:

gdalle commented 2 months ago

Conclusion of our discussion: