You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dybber edited this page Oct 29, 2012
·
3 revisions
Evaluation of language expressivity
Evaluation approach
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.
Evaluation notes
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)