Main libraries

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

A sequential implementation of insertion sort.

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

Work-efficient parallel mergesort

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. The library contains two variants of radix sort with different use cases. blocked_radix_sort should be used on large arrays, if the array is small then it may be the case that radix_sort is faster. radix_sort can also be much more suitable in cases where nested parallelism is utilized.

Supporting libraries

/prelude/ad

Definitions related to automatic differentiation.

/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.

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

Irregular segmented operations, like scans and reductions.