Plover
Plover is a language for matrix algebra on embedded systems.
Install / Use
/learn @swift-nav/PloverREADME
Plover
Plover is an embedded Haskell DSL 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 dependant type system.
Plover also aims to make use of sparse structure present in many real world linear algebra problems to generate more efficient code.
Plover.Typescontains the AST for the DSL.Plover.Expressionscontains a number of example expressions.Plover.Reducecontains the main compiler.Plover.Macroscontains DSL utilities.
Installation
First, install Stack or Haskell Platform. Key is having GHC 7.10+ available.
Check out the plover source:
$ git clone https://github.com/swift-nav/plover.git
$ cd plover
Then use one of the two available build methods.
Stack build
$ stack build
Run the test suite (requires gcc):
$ stack test
Installation of the plover binary into ~/.local/bin
$ stack build --copy-bins
or
# (equivalent to previous command)
$ stack install
(Alternative Installation Method) Cabal sandbox build
Using a cabal sandbox keeps any dependencies isolated so you don't have to worry about conflicts with other versions you may have on your system.
$ cabal sandbox init
Install the dependencies into the sandbox:
$ cabal install happy alex
$ cabal install --only-dependencies --enable-tests
Run the test suite (requires gcc):
$ cabal test --show-details=streaming
Usage
See http://swift-nav.github.io/plover/guide.html
Related Skills
node-connect
341.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
341.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.6kCommit, push, and open a PR
