-
Notifications
You must be signed in to change notification settings - Fork 65
Description
Wouldn't it make sense from an organizational point of view to merge SparseMatricesCSR.jl into this library?
Being able to work with CSR matrices is beneficial, because matvec product with CSR matrix is easier paralellizable than with a CSC matrix. Having a designated CSR implementation here would help interoperability with other libraries. For example, MKLSparse.jl could add hooks for the CSR functions in the MKL library. CUDA.jl has its CuSparseMatrixCSR type, and it would be good to add a constructor from a CSR matrix on CPU.
The major opposing argument is simply to use a lazy transpose over CSC matrix. However, benchmarks in this post show that it can work slower.
More importantly, it puts an unnecessary mental overhead on the user by making him construct a transpose of the matrix instead of the matrix itself, which could be prone to mistakes.