Main libraries

lib/github.com/diku-dk/sorts/insertion_sort

A sequential implementation of insertion sort.

lib/github.com/diku-dk/sorts/quick_sort

Data-parallel implementation of quicksort. Note that this quicksort, while parallel, is quite slow. In almost all cases you should use radix- or merge sort instead.

lib/github.com/diku-dk/sorts/radix_sort

A non-comparison-based sort that sorts an array in O(k n) work and O(k log(n)) span, where k is the number of bits in each element.

Supporting libraries

lib/github.com/diku-dk/segmented/segmented

Irregular segmented operations, like scans and reductions.

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.