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.
Documentation
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.