repa-3.4.1.5: High performance, regular, shape polymorphic parallel arrays.
Safe HaskellNone
LanguageHaskell2010

Data.Array.Repa.Repr.Cursored

Synopsis
  • data C
  • data family Array r sh e
  • 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

Instances details
Source C a Source #

Compute elements of a cursored array.

Instance details

Defined in Data.Array.Repa.Repr.Cursored

Associated Types

data Array C sh a Source #

Methods

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

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

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

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

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

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

Elt e => LoadRange C DIM2 e Source #

Compute a range of elements in a rank-2 array.

Instance details

Defined in Data.Array.Repa.Repr.Cursored

Methods

loadRangeS :: Target r2 e => Array C DIM2 e -> MVec r2 e -> DIM2 -> DIM2 -> IO () Source #

loadRangeP :: Target r2 e => Array C DIM2 e -> MVec r2 e -> DIM2 -> DIM2 -> IO () Source #

Elt e => Load C DIM2 e Source #

Compute all elements in an rank-2 array.

Instance details

Defined in Data.Array.Repa.Repr.Cursored

Methods

loadS :: Target r2 e => Array C DIM2 e -> MVec r2 e -> IO () Source #

loadP :: Target r2 e => Array C DIM2 e -> MVec r2 e -> IO () Source #

Structured C a b Source # 
Instance details

Defined in Data.Array.Repa.Operators.Mapping

Associated Types

type TR C Source #

Methods

smap :: Shape sh => (a -> b) -> Array C sh a -> Array (TR C) sh b Source #

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

data Array C sh a Source # 
Instance details

Defined in Data.Array.Repa.Repr.Cursored

data Array C sh a = ACursored {}
type TR C Source # 
Instance details

Defined in Data.Array.Repa.Operators.Mapping

type TR C = C

data family Array r sh e Source #

Instances

Instances details
(Shape sh, Eq sh, Source r a, Eq a) => Eq (Array r sh a) Source # 
Instance details

Defined in Data.Array.Repa.Operators.Reduction

Methods

(==) :: Array r sh a -> Array r sh a -> Bool #

(/=) :: Array r sh a -> Array r sh a -> Bool #

Read (Array r1 sh e) => Read (Array (S r1) sh e) Source # 
Instance details

Defined in Data.Array.Repa.Repr.HintSmall

Methods

readsPrec :: Int -> ReadS (Array (S r1) sh e) #

readList :: ReadS [Array (S r1) sh e] #

readPrec :: ReadPrec (Array (S r1) sh e) #

readListPrec :: ReadPrec [Array (S r1) sh e] #

Read (Array r1 sh e) => Read (Array (I r1) sh e) Source # 
Instance details

Defined in Data.Array.Repa.Repr.HintInterleave

Methods

readsPrec :: Int -> ReadS (Array (I r1) sh e) #

readList :: ReadS [Array (I r1) sh e] #

readPrec :: ReadPrec (Array (I r1) sh e) #

readListPrec :: ReadPrec [Array (I r1) sh e] #

Read sh => Read (Array B sh Word8) Source # 
Instance details

Defined in Data.Array.Repa.Repr.ByteString

(Read sh, Read e) => Read (Array V sh e) Source # 
Instance details

Defined in Data.Array.Repa.Repr.Vector

Methods

readsPrec :: Int -> ReadS (Array V sh e) #

readList :: ReadS [Array V sh e] #

readPrec :: ReadPrec (Array V sh e) #

readListPrec :: ReadPrec [Array V sh e] #

Read sh => Read (Array X sh e) Source # 
Instance details

Defined in Data.Array.Repa.Repr.Undefined

Methods

readsPrec :: Int -> ReadS (Array X sh e) #

readList :: ReadS [Array X sh e] #

readPrec :: ReadPrec (Array X sh e) #

readListPrec :: ReadPrec [Array X sh e] #

(Read sh, Read e, Unbox e) => Read (Array U sh e) Source # 
Instance details

Defined in Data.Array.Repa.Repr.Unboxed

Methods

readsPrec :: Int -> ReadS (Array U sh e) #

readList :: ReadS [Array U sh e] #

readPrec :: ReadPrec (Array U sh e) #

readListPrec :: ReadPrec [Array U sh e] #

Show (Array r1 sh e) => Show (Array (S r1) sh e) Source # 
Instance details

Defined in Data.Array.Repa.Repr.HintSmall

Methods

showsPrec :: Int -> Array (S r1) sh e -> ShowS #

show :: Array (S r1) sh e -> String #

showList :: [Array (S r1) sh e] -> ShowS #

Show (Array r1 sh e) => Show (Array (I r1) sh e) Source # 
Instance details

Defined in Data.Array.Repa.Repr.HintInterleave

Methods

showsPrec :: Int -> Array (I r1) sh e -> ShowS #

show :: Array (I r1) sh e -> String #

showList :: [Array (I r1) sh e] -> ShowS #

Show sh => Show (Array B sh Word8) Source # 
Instance details

Defined in Data.Array.Repa.Repr.ByteString

Methods

showsPrec :: Int -> Array B sh Word8 -> ShowS #

show :: Array B sh Word8 -> String #

showList :: [Array B sh Word8] -> ShowS #

(Show sh, Show e) => Show (Array V sh e) Source # 
Instance details

Defined in Data.Array.Repa.Repr.Vector

Methods

showsPrec :: Int -> Array V sh e -> ShowS #

show :: Array V sh e -> String #

showList :: [Array V sh e] -> ShowS #

Show sh => Show (Array X sh e) Source # 
Instance details

Defined in Data.Array.Repa.Repr.Undefined

Methods

showsPrec :: Int -> Array X sh e -> ShowS #

show :: Array X sh e -> String #

showList :: [Array X sh e] -> ShowS #

(Show sh, Show e, Unbox e) => Show (Array U sh e) Source # 
Instance details

Defined in Data.Array.Repa.Repr.Unboxed

Methods

showsPrec :: Int -> Array U sh e -> ShowS #

show :: Array U sh e -> String #

showList :: [Array U sh e] -> ShowS #

(Arbitrary sh, Arbitrary a, Shape sh) => Arbitrary (Array V sh a) Source # 
Instance details

Defined in Data.Array.Repa.Arbitrary

Methods

arbitrary :: Gen (Array V sh a) #

shrink :: Array V sh a -> [Array V sh a] #

(Arbitrary sh, Arbitrary a, Unbox a, Shape sh) => Arbitrary (Array U sh a) Source # 
Instance details

Defined in Data.Array.Repa.Arbitrary

Methods

arbitrary :: Gen (Array U sh a) #

shrink :: Array U sh a -> [Array U sh a] #

(CoArbitrary sh, CoArbitrary a, Source r a, Shape sh) => CoArbitrary (Array r sh a) Source # 
Instance details

Defined in Data.Array.Repa.Arbitrary

Methods

coarbitrary :: Array r sh a -> Gen b -> Gen b #

data Array D sh a Source # 
Instance details

Defined in Data.Array.Repa.Repr.Delayed

data Array D sh a = ADelayed !sh (sh -> a)
data Array F sh a Source # 
Instance details

Defined in Data.Array.Repa.Repr.ForeignPtr

data Array F sh a = AForeignPtr !sh !Int !(ForeignPtr a)
data Array V sh a Source # 
Instance details

Defined in Data.Array.Repa.Repr.Vector

data Array V sh a = AVector !sh !(Vector a)
data Array X sh e Source # 
Instance details

Defined in Data.Array.Repa.Repr.Undefined

data Array X sh e = AUndefined !sh
data Array C sh a Source # 
Instance details

Defined in Data.Array.Repa.Repr.Cursored

data Array C sh a = ACursored {}
data Array U sh a Source # 
Instance details

Defined in Data.Array.Repa.Repr.Unboxed

data Array U sh a = AUnboxed !sh !(Vector a)
data Array B sh Word8 Source # 
Instance details

Defined in Data.Array.Repa.Repr.ByteString

data Array (S r1) sh a Source # 
Instance details

Defined in Data.Array.Repa.Repr.HintSmall

data Array (S r1) sh a = ASmall !(Array r1 sh a)
data Array (I r1) sh a Source # 
Instance details

Defined in Data.Array.Repa.Repr.HintInterleave

data Array (I r1) sh a = AInterleave !(Array r1 sh a)
data Array (P r1 r2) sh e Source # 
Instance details

Defined in Data.Array.Repa.Repr.Partitioned

data Array (P r1 r2) sh e = APart !sh !(Range sh) !(Array r1 sh e) !(Array r2 sh e)

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.