## Main libraries

- lib/github.com/diku-dk/sorts/bubble_sort
Parallel bubble sort.

- lib/github.com/diku-dk/sorts/insertion_sort
A sequential implementation of insertion sort.

- lib/github.com/diku-dk/sorts/merge_sort
Bitonic merge 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.