A User-Friendly Hybrid Sparse Matrix Class in C++
Conrad Sanderson, Ryan Curtin

TL;DR
This paper introduces a user-friendly, high-performance C++ sparse matrix class that automatically switches storage formats and optimizes computations, simplifying sparse linear algebra for users with minimal performance trade-offs.
Contribution
It presents a novel hybrid sparse matrix class with automatic format switching and expression optimization, improving ease of use and efficiency in C++ sparse linear algebra.
Findings
Seamless format switching enhances performance.
High-level interface simplifies sparse matrix operations.
Open-source implementation facilitates adoption.
Abstract
When implementing functionality which requires sparse matrices, there are numerous storage formats to choose from, each with advantages and disadvantages. To achieve good performance, several formats may need to be used in one program, requiring explicit selection and conversion between the formats. This can be both tedious and error-prone, especially for non-expert users. Motivated by this issue, we present a user-friendly sparse matrix class for the C++ language, with a high-level application programming interface deliberately similar to the widely used MATLAB language. The class internally uses two main approaches to achieve efficient execution: (i) a hybrid storage framework, which automatically and seamlessly switches between three underlying storage formats (compressed sparse column, coordinate list, Red-Black tree) depending on which format is best suited for specific operations,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
