-
Notifications
You must be signed in to change notification settings - Fork 0
Evaluation: Expressivity
Evaluation of language expressivity
We should present the evaluation as a search for missing pieces in the languages. We are the "enemy" and should dig up all programs that it is impossible to write.
-
Accelerate, Repa and Nikola all use the same indexing mechanism, but neither of them provides generalised maps, where a change of dimension is possible. That is, a map we could instantiate in the same way as the following map is instantiated to lists of lists: map :: (a -> [b]) -> [a] -> a For instance, we would like the possibility of writing a function such as: map :: (Array DIM0 f -> Array DIM1 f) -> Array DIM1 f -> Array DIM2 f
-
Accelerate does not provide sequential loops, only parallel loops, as they want to make performance guarantees for all programs
-
Nikola does not provide any reduction primitives (yet). Only maps (e.g. map and zipWith), index space permutations (e.g. reverse, reshape, tail, drop)
-
Repa does not provide scans