knead-0.5: Repa-like array processing using LLVM JIT

Safe HaskellNone

Data.Array.Knead.Shape.Cubic

Documentation

constant :: Natural rank => T Int -> T (T tag rank)Source

paramWith :: (Natural rank, Natural (FromUnary rank), Natural (FromUnary rank :*: SizeOf Size)) => T p (T tag rank) -> (forall parameters. MV parameters => (p -> parameters) -> (forall val. Value val => T parameters -> val (T tag rank)) -> a) -> aSource

tunnel :: (Natural rank, Natural (FromUnary rank), Natural (FromUnary rank :*: SizeOf Size)) => T p (T tag rank) -> Tunnel p (T tag rank)Source

newtype T tag rank Source

Constructors

Cons 

Fields

decons :: T rank Int
 

Instances

Natural rank => Storable (T tag rank) 
(~ * tag ShapeTag, Natural rank) => C (T tag rank) 
(~ * tag ShapeTag, Natural rank) => Indexed (T tag rank) 
(Natural rank, Natural (FromUnary rank), Natural (:*: (FromUnary rank) (SizeOf Size))) => C (T tag rank) 
(Natural rank, Natural (FromUnary rank), Natural (:*: (FromUnary rank) (SizeOf Size))) => MV (T tag rank) 
Natural rank => C (T tag rank) 
Natural rank => Value (T tag rank) 
(~ * tag ShapeTag, ~ * rank Zero) => Scalar (T tag rank) 
(~ * tag ShapeTag, Natural rank) => C (T tag rank) 

data Z Source

Constructors

Z 

Instances

Eq Z 
Ord Z 
Read Z 
Show Z 

z :: Value val => val (T tag Zero)Source

data tail :. head Source

Constructors

!tail :. !head 

Instances

(Eq tail, Eq head) => Eq (:. tail head) 
(Ord tail, Ord head) => Ord (:. tail head) 
(Read tail, Read head) => Read (:. tail head) 
(Show tail, Show head) => Show (:. tail head) 
(Compose sh, ~ * (Composed sh) (T (Tag (Composed sh)) (Rank (Composed sh))), Compose s, ~ * (Composed s) Int) => Compose (:. sh s) 
(Decompose sh, Decompose s, ~ * (Decomposed Exp s) (Exp Int), ~ * (PatternTuple s) Int, ~ * (PatternTuple sh) (T (AtomTag sh) (AtomRank sh)), Natural (AtomRank sh)) => Decompose (:. sh s) 

type Shape = T ShapeTagSource

type Index = T IndexTagSource

cons :: Value val => val (T tag rank) -> val Int -> val (T tag (Succ rank))Source

(#:.) :: Value val => val (T tag rank) -> val Int -> val (T tag (Succ rank))Source

head :: (Value val, Natural rank) => val (T tag (Succ rank)) -> val IntSource

tail :: (Value val, Natural rank) => val (T tag (Succ rank)) -> val (T tag rank)Source

switchR :: Natural rank => Value val => (val (T tag rank) -> val Int -> a) -> val (T tag (Succ rank)) -> aSource