knead-1.0.1.1: Repa-like array processing using LLVM JIT
Safe HaskellSafe-Inferred
LanguageHaskell98

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. C parameters => (p -> parameters) -> (forall val. Value val => T parameters -> val (T tag rank)) -> a) -> a Source #

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

Instances

Instances details
Natural rank => Storable (T tag rank) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Methods

sizeOf :: T tag rank -> Int #

alignment :: T tag rank -> Int #

peekElemOff :: Ptr (T tag rank) -> Int -> IO (T tag rank) #

pokeElemOff :: Ptr (T tag rank) -> Int -> T tag rank -> IO () #

peekByteOff :: Ptr b -> Int -> IO (T tag rank) #

pokeByteOff :: Ptr b -> Int -> T tag rank -> IO () #

peek :: Ptr (T tag rank) -> IO (T tag rank) #

poke :: Ptr (T tag rank) -> T tag rank -> IO () #

(tag ~ ShapeTag, Natural rank) => C (T tag rank) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Methods

size :: T tag rank -> Int #

(tag ~ ShapeTag, Natural rank) => Indexed (T tag rank) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Associated Types

type Index (T tag rank) #

Methods

indices :: T tag rank -> [Index (T tag rank)] #

offset :: T tag rank -> Index (T tag rank) -> Int #

uncheckedOffset :: T tag rank -> Index (T tag rank) -> Int #

unifiedOffset :: Checking check => T tag rank -> Index (T tag rank) -> Result check Int #

inBounds :: T tag rank -> Index (T tag rank) -> Bool #

sizeOffset :: T tag rank -> (Int, Index (T tag rank) -> Int) #

uncheckedSizeOffset :: T tag rank -> (Int, Index (T tag rank) -> Int) #

unifiedSizeOffset :: Checking check => T tag rank -> (Int, Index (T tag rank) -> Result check Int) #

(tag ~ ShapeTag, Natural rank) => C (T tag rank) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Methods

intersectCode :: T0 (T tag rank) -> T0 (T tag rank) -> CodeGenFunction r (T0 (T tag rank)) Source #

size :: T0 (T tag rank) -> CodeGenFunction r (Value Size) Source #

sizeOffset :: Index (T tag rank) ~ ix => T0 (T tag rank) -> CodeGenFunction r (Value Size, T0 ix -> CodeGenFunction r (Value Size)) Source #

iterator :: Index (T tag rank) ~ ix => T0 (T tag rank) -> T1 r (T0 ix) Source #

loop :: (Index (T tag rank) ~ ix, Phi state) => (T0 ix -> state -> CodeGenFunction r state) -> T0 (T tag rank) -> state -> CodeGenFunction r state Source #

(tag ~ ShapeTag, rank ~ Zero) => Scalar (T tag rank) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Methods

scalar :: Value val => val (T tag rank) Source #

zeroIndex :: Value val => f (T tag rank) -> val (Index (T tag rank)) Source #

(Natural rank, Natural (FromUnary rank), Natural (FromUnary rank :*: SizeOf Size)) => C (T tag rank) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Methods

pack :: T tag rank -> Struct (T tag rank) #

unpack :: Struct (T tag rank) -> T tag rank #

Natural rank => C (T tag rank) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Associated Types

type Repr (T tag rank) #

Methods

cons :: T tag rank -> T0 (T tag rank) #

undef :: T0 (T tag rank) #

zero :: T0 (T tag rank) #

phi :: BasicBlock -> T0 (T tag rank) -> CodeGenFunction r (T0 (T tag rank)) #

addPhi :: BasicBlock -> T0 (T tag rank) -> T0 (T tag rank) -> CodeGenFunction r () #

type Index (T tag rank) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

type Index (T tag rank) = Index rank
type Repr (T tag rank) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

type Repr (T tag rank) = T rank (Repr Int)

data Z Source #

Constructors

Z 

Instances

Instances details
Read Z Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Show Z Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Methods

showsPrec :: Int -> Z -> ShowS #

show :: Z -> String #

showList :: [Z] -> ShowS #

Eq Z Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Methods

(==) :: Z -> Z -> Bool #

(/=) :: Z -> Z -> Bool #

Ord Z Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Methods

compare :: Z -> Z -> Ordering #

(<) :: Z -> Z -> Bool #

(<=) :: Z -> Z -> Bool #

(>) :: Z -> Z -> Bool #

(>=) :: Z -> Z -> Bool #

max :: Z -> Z -> Z #

min :: Z -> Z -> Z #

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

data tail :. head infixl 3 Source #

Constructors

!tail :. !head infixl 3 

Instances

Instances details
(Read tail, Read head) => Read (tail :. head) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Methods

readsPrec :: Int -> ReadS (tail :. head) #

readList :: ReadS [tail :. head] #

readPrec :: ReadPrec (tail :. head) #

readListPrec :: ReadPrec [tail :. head] #

(Show tail, Show head) => Show (tail :. head) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Methods

showsPrec :: Int -> (tail :. head) -> ShowS #

show :: (tail :. head) -> String #

showList :: [tail :. head] -> ShowS #

(Eq tail, Eq head) => Eq (tail :. head) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Methods

(==) :: (tail :. head) -> (tail :. head) -> Bool #

(/=) :: (tail :. head) -> (tail :. head) -> Bool #

(Ord tail, Ord head) => Ord (tail :. head) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Methods

compare :: (tail :. head) -> (tail :. head) -> Ordering #

(<) :: (tail :. head) -> (tail :. head) -> Bool #

(<=) :: (tail :. head) -> (tail :. head) -> Bool #

(>) :: (tail :. head) -> (tail :. head) -> Bool #

(>=) :: (tail :. head) -> (tail :. head) -> Bool #

max :: (tail :. head) -> (tail :. head) -> tail :. head #

min :: (tail :. head) -> (tail :. head) -> tail :. head #

(Compose sh, Composed sh ~ T (Tag (Composed sh)) (Rank (Composed sh)), Compose s, Composed s ~ Int) => Compose (sh :. s) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Associated Types

type Composed (sh :. s) #

Methods

compose :: (sh :. s) -> Exp (Composed (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) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

Methods

decompose :: (sh :. s) -> Exp (PatternTuple (sh :. s)) -> Decomposed Exp (sh :. s) #

type Decomposed f (sh :. s) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

type Decomposed f (sh :. s) = Decomposed f sh :. f Int
type Composed (sh :. s) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

type Composed (sh :. s)
type PatternTuple (sh :. s) Source # 
Instance details

Defined in Data.Array.Knead.Shape.Cubic

type PatternTuple (sh :. s)

type Shape = T ShapeTag Source #

type Index = T IndexTag Source #

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)) infixl 3 Source #

head :: (Value val, Natural rank) => val (T tag (Succ rank)) -> val Int Source #

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)) -> a Source #