Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation of CSR sparse format. #91

Open
jacobdwatters opened this issue Dec 27, 2023 · 2 comments
Open

Implementation of CSR sparse format. #91

jacobdwatters opened this issue Dec 27, 2023 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@jacobdwatters
Copy link
Owner

jacobdwatters commented Dec 27, 2023

The current SparseMatrix class is implemented in the sparse COO format. However, with just a rudimentary CSR implementation, a significant performance improvement for sparse-sparse matrix multiplication was observed. As such, the following changes should be made.

  • Rename the SparseMatrix class to SparseCooMatrix.
  • Implement a SparseCsrMatrix class which stores matrices int the compressed sparse row (CSR) format.
  • The mult method for all sparse matrices should return a dense matrix by default.
    • Add a mult2Sparse method for sparse matrices which computes the sparse-sparse matrix multiplication but stores as a sparse matrix.
@jacobdwatters jacobdwatters added the enhancement New feature or request label Dec 27, 2023
@jacobdwatters jacobdwatters self-assigned this Dec 27, 2023
@jacobdwatters
Copy link
Owner Author

The CSR format may also enable a boost in sparse concurrent matrix multiplication.

@jacobdwatters
Copy link
Owner Author

jacobdwatters commented Feb 22, 2024

Update:

  • The previously existing sparse matrix implementations have been renamed to include Coo in the name to indicate they are stored internally in coordinate format.
  • Much of the functionality for real sparse CSR matrices has been implemented
    • Test coverage is poor. More tests need to be written.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant