# 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