You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
the ones from LinearAlgebra: Bidiagonal, Tridiagonal, Symmetric, etc.
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.
At the moment, our only optimized decompression is for
SparseMatrixCSC
in:direct
mode: we store a vector ofcompressed_indices
such thatnonzeros(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:
LinearAlgebra
:Bidiagonal
,Tridiagonal
,Symmetric
, etc.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 theA_buffer::SparseMatrixCSC
intoA::SomeWeirdMatrix
.Essentially, it's easier to implement fast copy from
SparseMatrixCSC
than fast decompression.Related:
eltype
of decompression targetA
#44The text was updated successfully, but these errors were encountered: