View on GitHub


High-level embedded linear algebra programming

Plover is a programming language designed for compiling linear algebra into robust, efficient C code suitable for running on embedded systems.

Plover generates code free of dynamic memory allocation and provides compile-time checking of matrix and vector shapes using a lightweight dependent type system.

Plover also aims to make use of sparse structure present in many real-world linear algebra problems to generate more efficient code.


The Plover documentation is split into the following parts:

  • The Plover User Guide gives installation instructions and general information about using the Plover compiler.
  • The Plover Tutorials gives worked examples of programming algorithms and applications in Plover.
  • The Plover Language Reference gives a more in-depth treatment of the language itself.
  • Notable Differences enumerates some notable differences from related languages and corner cases to be aware of.

In the real world

Swift Navigation uses Plover for implementing GPS algorithms in libswiftnav.