accelerate-typelits: a typesafe way encode accelerate matrices and vectors

[ library, math ] [ Propose Tags ]

a small wrapper plus convenience functions on top of accelerate to represent matrices with their dimensions

[Skip to Readme]


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS]
Change log
Dependencies accelerate (>=0.15 && <0.16), accelerate-random (>=0.15 && <0.16), base (>=4.8 && <5), mwc-random (>=0.13 && <0.14), QuickCheck (>=2.8 && <2.9), smallcheck (>=1.1 && <1.2) [details]
License ISC
Copyright (c) 2016 Martin Heuschober
Author Martin Heuschober
Maintainer Martin Heuschober <epsilonhalbe [at] gmail [dot] com>
Revised Revision 2 made by epsilonhalbe at 2016-05-17T12:35:48Z
Category Math
Bug tracker
Source repo head: git clone git://
Uploaded by epsilonhalbe at 2016-05-17T12:01:55Z
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 1176 total (6 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for accelerate-typelits-

[back to package description]

Accelerate TypeLits

Build Status Synopsis

This library provides a high level interface to accelerate for matrix computations.


The simplest way to install this library is using cabal or cabal-sandbox

> cabal install accelerate-typelits

If you want to have the most recent version, the project is on github so you can checkout the project.

> git clone
> cd accelerate-typelits
> cabal install

> git clone
> cd accelerate-typelits
> cabal sandbox init
> cabal install

There is also a stack.yaml file included, so one can also use stack in order to compile this library.

> git clone
> cd accelerate-typelits
> stack --stack-yaml stack-7.10.yaml build

The operators have been designed to give a visual hint of the respective parameters.

  • # for matrices
  • ^ for vectors
  • . for scalars

So for example #*^ represents the multiplication of a matrix with a vector, analogously ^*# works the other way around. Other examples would be #*# for matrix-matrix multiplication and .*^ scalar multiplication of a vector.

Operator precedence is usually the same as the numeric equivalence.


The matrix-vector and matrix-matrix products have been inspired by Henning Thielemann's accelerate-arithmetic library