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

Safe Haskell | None
Language | Haskell98

Data.Array.Repa.Repr.Cursored

Synopsis

- data C
- makeCursored :: sh -> (sh -> cursor) -> (sh -> cursor -> cursor) -> (cursor -> e) -> Array C sh e

# Documentation

data C Source

Cursored Arrays. These are produced by Repa's stencil functions, and help the fusion framework to share index compuations between array elements.

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.

Instances

Source C a Source | Compute elements of a cursored array.
Elt e => LoadRange C DIM2 e Source | Compute a range of elements in a rank-2 array.
Elt e => Load C DIM2 e Source | Compute all elements in an rank-2 array.
Structured C a b Source |
type TR C = C Source |

data Array C sh a where

- ACursored :: {
  - cursoredExtent :: !sh
  - makeCursor :: sh -> cursor
  - shiftCursor :: sh -> cursor -> cursor
  - loadCursor :: cursor -> a
  } -> Array C sh a

Source

makeCursored Source

Arguments

:: sh |
-> (sh -> cursor) | Create a cursor for an index.
-> (sh -> cursor -> cursor) | Shift a cursor by an offset.
-> (cursor -> e) | Compute the element at the cursor.
-> Array C sh e |

Define a new cursored array.