repa
Repa is a Haskell library for high-performance, regular, shape-polymorphic parallel arrays. It is designed to express computations on large multi-dimensional arrays in a pure functional style while exploiting modern multi-core CPUs. Repa emphasizes data parallelism and fusion to minimize intermediate allocations and maximize throughput.
In Repa, an array is parameterized by its representation and its shape. The representation tags distinguish
A central goal of Repa is fusion: combining successive array operations into a single pass over the
Typical usage involves constructing arrays, applying a sequence of transformations such as mapping, zipping, or reductions,
The library is part of the Haskell ecosystem of array processing tools and has influenced subsequent work