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

Safe Haskell | None
Language | Haskell98

Data.Array.Repa.Repr.Delayed

Synopsis

- data D
- fromFunction :: sh -> (sh -> a) -> Array D sh a
- toFunction :: (Shape sh, Source r1 a) => Array r1 sh a -> (sh, sh -> a)
- delay :: Shape sh => Source r e => Array r sh e -> Array D sh e

# Documentation

data D Source #

Delayed arrays are represented as functions from the index to element value.

Every time you index into a delayed array the element at that position is recomputed.

Instances

Source D a Source # | Compute elements of a delayed array.

Associated Types

data Array D sh a :: * Source #

Methods

extent :: Shape sh => Array D sh a -> sh Source #

index :: Shape sh => Array D sh a -> sh -> a Source #

unsafeIndex :: Shape sh => Array D sh a -> sh -> a Source #

linearIndex :: Shape sh => Array D sh a -> Int -> a Source #

unsafeLinearIndex :: Shape sh => Array D sh a -> Int -> a Source #

deepSeqArray :: Shape sh => Array D sh a -> b -> b Source #

Elt e => LoadRange D DIM2 e Source # | Compute a range of elements in a rank-2 array.
Methods loadRangeS :: Target r2 e => Array D DIM2 e -> MVec r2 e -> DIM2 -> DIM2 -> IO () Source # loadRangeP :: Target r2 e => Array D DIM2 e -> MVec r2 e -> DIM2 -> DIM2 -> IO () Source #
Shape sh => Load D sh e Source # | Compute all elements in an array.
Methods loadS :: Target r2 e => Array D sh e -> MVec r2 e -> IO () Source # loadP :: Target r2 e => Array D sh e -> MVec r2 e -> IO () Source #
Structured D a b Source # |
Associated Types type TR D :: * Source # Methods smap :: Shape sh => (a -> b) -> Array D sh a -> Array (TR D) sh b Source # szipWith :: (Shape sh, Source r c) => (c -> a -> b) -> Array r sh c -> Array D sh a -> Array (TR D) sh b Source #
(Shape sh, Load D sh e) => Load (I D) sh e Source # |
Methods loadS :: Target r2 e => Array (I D) sh e -> MVec r2 e -> IO () Source # loadP :: Target r2 e => Array (I D) sh e -> MVec r2 e -> IO () Source #
data Array D Source # |
data Array D = ADelayed !sh (sh -> a)
type TR D Source # |
type TR D = D

fromFunction :: sh -> (sh -> a) -> Array D sh a Source #

O(1). Wrap a function as a delayed array.

toFunction :: (Shape sh, Source r1 a) => Array r1 sh a -> (sh, sh -> a) Source #

O(1). Produce the extent of an array, and a function to retrieve an arbitrary element.

delay :: Shape sh => Source r e => Array r sh e -> Array D sh e Source #

O(1). Delay an array. This wraps the internal representation to be a function from indices to elements, so consumers don't need to worry about what the previous representation was.