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

Safe HaskellNone

Data.Array.Knead.Parameterized.Physical

Documentation

data Array sh a

Instances

(C sh, Eq sh, Storable a, Eq a) => Eq (Array sh a) 
(C sh, Show sh, Storable a, Show a) => Show (Array sh a) 
NFData sh => NFData (Array sh a) 

shape :: Array sh a -> sh

fromList :: (C sh, Storable a) => sh -> [a] -> IO (Array sh a)Source

feed :: (C sh, Storable sh, C sh, C a) => T p (Array sh a) -> Array p sh aSource

the :: (Scalar z, C a, Storable a) => Array p z a -> IO (p -> IO a)Source

render :: (C sh, Storable sh, C sh, Storable a, C a) => Array p sh a -> IO (p -> IO (Array sh a))Source

renderShape :: (C sh, Storable sh, C sh, Storable a, C a) => Array p sh a -> IO (p -> IO (sh, Size))Source

mapAccumLSimple :: (C sh, Storable sh, C sh, C n, Storable n, C n, C acc, Storable a, C a, Storable b, C b) => (Exp acc -> Exp a -> Exp (acc, b)) -> Array p sh acc -> Array p (sh, n) a -> IO (p -> IO (Array (sh, n) b))Source

foldOuterL :: (C sh, Storable sh, C sh, C n, Storable n, C n, Storable a, C a) => (Exp a -> Exp b -> Exp a) -> Array p sh a -> Array p (n, sh) b -> IO (p -> IO (Array sh a))Source

scatter :: (C sh0, Index sh0 ~ ix0, C sh1, Index sh1 ~ ix1, Storable sh1, C sh1, Storable a, C a) => (Exp a -> Exp a -> Exp a) -> Array p sh1 a -> Array p sh0 (ix1, a) -> IO (p -> IO (Array sh1 a))Source

scatterMaybe :: (C sh0, Index sh0 ~ ix0, C sh1, Index sh1 ~ ix1, Storable sh1, C sh1, Storable a, C a) => (Exp a -> Exp a -> Exp a) -> Array p sh1 a -> Array p sh0 (Maybe (ix1, a)) -> IO (p -> IO (Array sh1 a))Source

permute :: (C sh0, Index sh0 ~ ix0, C sh1, Index sh1 ~ ix1, Storable sh1, C sh1, Storable a, C a) => (Exp a -> Exp a -> Exp a) -> Array p sh1 a -> (Exp ix0 -> Exp ix1) -> Array p sh0 a -> IO (p -> IO (Array sh1 a))Source