Linear Algebra  arduino
Accessible implementations of linear algebra algorithms
Linear Algebra Documentation

Build Status Test Coverage GitHub

Linear Algebra

This repo aims to implement some well-known linear algebra algorithms in a readable and easy to understand way.
Established libraries such as BLAS, LAPACK, Eigen etc. offer great performance and precision, but the code is often hard to read.

Documentation

Documentation

The modules page is the best place to start browsing the documentation.

Also see the installation instructions and the examples.

Direct links to the algorithms:

Arduino

This library requires the C++ Standard Library to work correctly. It should work out of the box on more powerful boards (ARM and Espressif) that ship with the STL. On platforms that don't support the STL out of the box, like AVR, you might be able to install the STL through a third-party library, but I haven't tried this.

The main platforms used for testing are ESP32 (currently version 1.0.4 of the Arduino ESP32 Core) and Teensy 4.0.

Board Supported Comments
ESP32 ✔  Full support.
ESP8266 ✔  Full support.
Teensy 3.x ✔  No std::iostream support.
Teensy 4.x ✔  No std::cout support, use arduino::cout instead.
Arduino Nano 33 BLE ✔  std::cout prints to Serial1, use arduino::cout for Serial.
Arduino Zero ✔* std::cout support unknown.
AVR (Uno, Mega ...) ❌  No STL support.
Arduino Due ❌  Toolchain's STL is configured incorrectly.

(*) Compiled but untested. If you own such a board, feel free to open an issue to let me know if it works or not!

Disclaimer

While the code is definitely useful as a linear algebra library, don't use it in critical applications. If you can, use Eigen instead, it'll be faster, numerically more accurate, and more reliable.