Random number generation inspired by
A collection of
rng_enginemodules 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.
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. These are generally very cheap operations, as the internal compiler representation is always tuples of arrays.