# Accelerate TypeLits

Synopsis
--------

This library provides a high level interface to `accelerate`

for matrix
computations.

## Installation

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 https://github.com/epsilonhalbe/accelerate-typelits.git
> cd accelerate-typelits
> cabal install
```

```
> git clone https://github.com/epsilonhalbe/accelerate-typelits.git
> 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 https://github.com/epsilonhalbe/accelerate-typelits.git
> 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.

## Credits

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

library