repa- High performance, regular, shape polymorphic parallel arrays.

Safe HaskellNone




data P r1 r2 Source

Partitioned arrays. The last partition takes priority

These are produced by Repa's support functions and allow arrays to be defined using a different element function for each partition.

The basic idea is described in ``Efficient Parallel Stencil Convolution'', Ben Lippmeier and Gabriele Keller, Haskell 2011 -- though the underlying array representation has changed since this paper was published.


(Source r1 e, Source r2 e) => Source (P r1 r2) e

Read elements from a partitioned array.

(LoadRange r1 sh e, Load r2 sh e) => Load (P r1 r2) sh e 
(Structured r1 a b, Structured r2 a b) => Structured (P r1 r2) a b 
type TR (P r1 r2) = P (TR r1) (TR r2) 
data Array (P r1 r2) sh e = APart !sh !(Range sh) !(Array r1 sh e) !(Array r2 sh e) 

data Range sh Source


Range !sh !sh (sh -> Bool) 

inRange :: Range sh -> sh -> Bool Source

Check whether an index is within the given range.