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

Data.Array.Knead.Symbolic.ShapeDependent

Synopsis

Documentation

shape :: (C array, C sh, Scalar z) => array sh a -> array z sh Source #

backpermute :: (C array, C sh0, Index sh0 ~ ix0, C sh1, Index sh1 ~ ix1) => (Exp sh0 -> Exp sh1) -> (Exp ix1 -> Exp ix0) -> array sh0 a -> array sh1 a Source #

backpermuteExtra :: (C array, C sh0, Index sh0 ~ ix0, C sh1, Index sh1 ~ ix1, C sh, Index sh ~ ix) => (Exp sh0 -> Exp sh1 -> Exp sh) -> (Exp ix -> Exp ix0) -> array sh0 a -> array sh1 b -> array sh a Source #

This is between backpermute and backpermute2. You can access the shapes of two arrays, but only the content of one of them. This is necessary if the second array contributes only a virtual dimension.

backpermute2 :: (C array, C sh0, Index sh0 ~ ix0, C sh1, Index sh1 ~ ix1, C sh, Index sh ~ ix) => (Exp sh0 -> Exp sh1 -> Exp sh) -> (Exp ix -> Exp ix0) -> (Exp ix -> Exp ix1) -> (Exp a -> Exp b -> Exp c) -> array sh0 a -> array sh1 b -> array sh c Source #

fill :: C array => (Exp sh0 -> Exp sh1) -> Exp b -> array sh0 a -> array sh1 b Source #