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

Safe HaskellNone
LanguageHaskell98

Data.Array.Repa.Repr.Partitioned

Synopsis

Documentation

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.

Instances

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

Read elements from a partitioned array.

Associated Types

data Array (P r1 r2) sh e :: * Source #

Methods

extent :: Shape sh => Array (P r1 r2) sh e -> sh Source #

index :: Shape sh => Array (P r1 r2) sh e -> sh -> e Source #

unsafeIndex :: Shape sh => Array (P r1 r2) sh e -> sh -> e Source #

linearIndex :: Shape sh => Array (P r1 r2) sh e -> Int -> e Source #

unsafeLinearIndex :: Shape sh => Array (P r1 r2) sh e -> Int -> e Source #

deepSeqArray :: Shape sh => Array (P r1 r2) sh e -> b -> b Source #

(LoadRange r1 sh e, Load r2 sh e) => Load (P r1 r2) sh e Source # 

Methods

loadS :: Target r2 e => Array (P r1 r2) sh e -> MVec r2 e -> IO () Source #

loadP :: Target r2 e => Array (P r1 r2) sh e -> MVec r2 e -> IO () Source #

(Structured r1 a b, Structured r2 a b) => Structured (P r1 r2) a b Source # 

Associated Types

type TR (P r1 r2) :: * Source #

Methods

smap :: Shape sh => (a -> b) -> Array (P r1 r2) sh a -> Array (TR (P r1 r2)) sh b Source #

szipWith :: (Shape sh, Source r c) => (c -> a -> b) -> Array r sh c -> Array (P r1 r2) sh a -> Array (TR (P r1 r2)) sh b Source #

data Array (P r1 r2) Source # 
data Array (P r1 r2) = APart !sh !(Range sh) !(Array r1 sh e) !(Array r2 sh e)
type TR (P r1 r2) Source # 
type TR (P r1 r2) = P (TR r1) (TR r2)

data Range sh Source #

Constructors

Range !sh !sh (sh -> Bool) 

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

Check whether an index is within the given range.