Safe Haskell | None |
---|---|
Language | Haskell98 |
An implementation of nested data parallelism
- data ArrC t
- inject :: Array Int e -> ArrC e
- project :: ArrC t -> Array Int t
- newArray :: [e] -> Array Int e
- data A t u where
- Count :: A Int (ArrC Int)
- Index :: A (ArrC t, Int) t
- Zip :: A (ArrC t, ArrC u) (ArrC (t, u))
- Unzip :: A (ArrC (t, u)) (ArrC t, ArrC u)
- Concat :: A (ArrC (ArrC t)) (ArrC t)
- Map :: A t u -> A (ArrC t) (ArrC u)
- Comp :: A u v -> A t u -> A t v
- Arr :: (t -> u) -> A t u
- Prod :: A t u -> A v w -> A (t, v) (u, w)
- Sum :: A t u -> A v w -> A (Either t v) (Either u w)
- optimize :: A a v -> A a v
- eval :: A t u -> t -> u
Documentation
Constructors for caller's use
Count :: A Int (ArrC Int) | |
Index :: A (ArrC t, Int) t | |
Zip :: A (ArrC t, ArrC u) (ArrC (t, u)) | |
Unzip :: A (ArrC (t, u)) (ArrC t, ArrC u) | |
Concat :: A (ArrC (ArrC t)) (ArrC t) | |
Map :: A t u -> A (ArrC t) (ArrC u) | |
Comp :: A u v -> A t u -> A t v | |
Arr :: (t -> u) -> A t u | |
Prod :: A t u -> A v w -> A (t, v) (u, w) | |
Sum :: A t u -> A v w -> A (Either t v) (Either u w) |