Main libraries


Random number generation inspired by <random> in C++.


A collection of rng_engine modules that implement the Romu family of random number generators by Mark Overton. While the Romu generators are mostly fast on out-of-order CPUs because they can be "zero latency" by fitting into otherwise unused execution slots, they may also be useful on GPU. In particular, the 32-bit variants run very fast.


Random shuffling of an array in parallel.

Supporting libraries


Definitions related to automatic differentiation.


Utility functions for arrays.


Simple functional combinators.


Basic mathematical modules and functions.


The default prelude that is implicitly available in all Futhark files.


Various Second-Order Array Combinators that are operationally parallel in a way that can be exploited by the compiler.


Transforming arrays of tuples into tuples of arrays and back again.