@hackage yarr0.9.1

Yet another array library

Yarr is a new blazing fast dataflow framework (array library), mainly intented to process Storables (including all "primitive" numeric types) and fixed-vectors of them, for example coordinates, color components, complex numbers.

Yarr framework is inspired by repa library and inherits its features, including shape-polymorphism and auto-parallelism. Additionaly, the framework is polymorphic over type and arity of fixed-size vectors and supports neat flow operations over them. For example, you can convert colored image to greyscale like this:

let greyImage = zipElems (\r g b -> 0.21 * r + 0.71 * g + 0.07 * b) image

The library is considerably faster than repa. Canny edge detector on Yarr is 40% (on 5 threads) and 55% (in sequential mode) faster then on repa.

Shortcoming by design: lack of pure indexing interface.

Work ahead:

  • Safe fold wrappers

  • Unresolved issues with parameterized unrolling in slice-wise loading

To start with, read documentation in the root module: Data.Yarr.

Yarr!