Main libraries

lib/github.com/diku-dk/cpprandom/random

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

lib/github.com/diku-dk/cpprandom/romu

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.

lib/github.com/diku-dk/cpprandom/shuffle

Random shuffling of an array in parallel.

Supporting libraries

prelude/array

Utility functions for arrays.

prelude/functional

Simple functional combinators.

prelude/math

Basic mathematical modules and functions.

prelude/prelude

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

prelude/soacs

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

prelude/zip

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.