llvm-dsl-0.1.2: Support for writing an EDSL with LLVM-JIT as target
Safe HaskellSafe-Inferred
LanguageHaskell98

LLVM.DSL.Expression.Vector

Documentation

cons :: (Positive n, C a) => Vector n a -> Exp (Vector n a) Source #

fst :: (Positive n, C a, C b) => Exp (Vector n (a, b)) -> Exp (Vector n a) Source #

snd :: (Positive n, C a, C b) => Exp (Vector n (a, b)) -> Exp (Vector n b) Source #

swap :: (Positive n, C a, C b) => Exp (Vector n (a, b)) -> Exp (Vector n (b, a)) Source #

mapFst :: (Exp (Vector n a0) -> Exp (Vector n a1)) -> Exp (Vector n (a0, b)) -> Exp (Vector n (a1, b)) Source #

mapSnd :: (Exp (Vector n b0) -> Exp (Vector n b1)) -> Exp (Vector n (a, b0)) -> Exp (Vector n (a, b1)) Source #

fst3 :: (Positive n, C a, C b, C c) => Exp (Vector n (a, b, c)) -> Exp (Vector n a) Source #

snd3 :: (Positive n, C a, C b, C c) => Exp (Vector n (a, b, c)) -> Exp (Vector n b) Source #

thd3 :: (Positive n, C a, C b, C c) => Exp (Vector n (a, b, c)) -> Exp (Vector n c) Source #

zip :: (Positive n, C a, C b) => Exp (Vector n a) -> Exp (Vector n b) -> Exp (Vector n (a, b)) Source #

zip3 :: (Positive n, C a, C b, C c) => Exp (Vector n a) -> Exp (Vector n b) -> Exp (Vector n c) -> Exp (Vector n (a, b, c)) Source #

replicate :: (Positive n, C a) => Exp a -> Exp (Vector n a) Source #

iterate :: (Positive n, C a) => (Exp a -> Exp a) -> Exp a -> Exp (Vector n a) Source #

take :: (Positive n, Positive m, Select a) => Exp (Vector n a) -> Exp (Vector m a) Source #

takeRev :: (Positive n, Positive m, Select a) => Exp (Vector n a) -> Exp (Vector m a) Source #

cumulate :: (Positive n, Additive a) => Exp a -> Exp (Vector n a) -> (Exp a, Exp (Vector n a)) Source #

cmp :: (Positive n, Comparison a) => CmpPredicate -> Exp (Vector n a) -> Exp (Vector n a) -> Exp (Vector n Bool) Source #

select :: (Positive n, Select a) => Exp (Vector n Bool) -> Exp (Vector n a) -> Exp (Vector n a) -> Exp (Vector n a) Source #

min :: (Positive n, Real a) => Exp (Vector n a) -> Exp (Vector n a) -> Exp (Vector n a) Source #

max :: (Positive n, Real a) => Exp (Vector n a) -> Exp (Vector n a) -> Exp (Vector n a) Source #

limit :: (Positive n, Real a) => (Exp (Vector n a), Exp (Vector n a)) -> Exp (Vector n a) -> Exp (Vector n a) Source #

fromIntegral :: (NativeInteger i ir, NativeFloating a ar, ShapeOf ir ~ ShapeOf ar) => Exp i -> Exp a Source #

truncateToInt :: (NativeInteger i ir, NativeFloating a ar, ShapeOf ir ~ ShapeOf ar) => Exp a -> Exp i Source #

splitFractionToInt :: (NativeInteger i ir, NativeFloating a ar, ShapeOf ir ~ ShapeOf ar) => Exp a -> (Exp i, Exp a) Source #