Skip to content

bjack205/slap

Repository files navigation

Linux MacOS Windows Arduino Documentation codecov

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