sparsemat / sprs

sparse linear algebra library for rust
Apache License 2.0
400 stars 47 forks source link

Add CSR/CSC product subroutine #99

Open vbarrielle opened 8 years ago

vbarrielle commented 8 years ago

Requiring conversion before the product can be really slow. This requires setting up some benchmarks to measure the concrete effect.

maboesanman commented 4 years ago

I'm interested in working on this! In particular it seems CSC * CSR is actually broken at the moment, and this seems like a good place to fix that issue, as well as improve performance. Will you accept a PR?

mulimoen commented 4 years ago

PRs are accpepted. Would be nice to start with some basic benchmarks to see how we compare against scipy and the likes.

vbarrielle commented 4 years ago

Beware though, this issue is quite old, and since then matrix products has seen several changes, mostly the SMMP implementation #187 so I think the first thing to do would be to enhance the existing product benchmarks to see precisely the impact of storage conversion.

You mentionned CSC*CSR being broken, do you have an example?

maboesanman commented 4 years ago

I don't have a functional code example handy, but if you take two CsVec, call them a and b, and you do a.col_view() * b.row_view() you get a panic, instead of a len(b) x len(a) matrix