slap
slap copied to clipboard
Simple Linear Algebra Protocols
slap
Simple Linear Algebra Protocols
The goal of this library is to provide a simple, lightweight, and easy-to-read linear algebra package in C. It prioritizes simplicity and readibility.
Some of the key features and design decisions are:
- All memory is owned by the user
- A matrix is just a pointer with some meta-data, and is typically passed by value
- Code is separated into header files that can be included or not, allowing an opt-in approach that decreases compilation time and code size
Documentation
For details on installing, getting started, and using the library, please see the Documentation.
Future Work
Here are some of the things I have planned for the future:
- [ ] C+ wrapper (using
std::shared_ptr) - [ ] Allow for different backends (BLAS, Intel MKL, Eigen, etc.)
- [ ] Improved matrix multiplication performance
- [ ] More matrix factorizations (Generic LU, LDLt)
- [ ] Sparse matrices