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
For details on installing, getting started, and using the library, please see the Documentation.
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