+
Skip to content

imh/plover

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.Types contains the AST for the DSL.
  • Plover.Expressions contains a number of example expressions.
  • Plover.Reduce contains the main compiler.
  • Plover.Macros contains DSL utilities.

Installation

First, install the Haskell Platform (recommended) or other GHC 7.8+ toolchain of your choice.

Check out the plover source:

$ git clone https://github.com/swift-nav/plover.git
$ cd plover

Next, create a cabal sandbox. This 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 --only-dependencies --enable-tests

Run the test suite (requires gcc):

$ cabal test --show-details=streaming

Usage

cabal repl will load Plover.Compile, Plover.Expressions, and other modules. Experiment with the printExpr function.

cabal repl test-rewrites will load the tests. run them with main. Running tests requires gcc.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Haskell 93.1%
  • C 6.9%
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载