Main libraries
- lib/github.com/diku-dk/containers/array
Array related operations, like
reduce_by_key
.- lib/github.com/diku-dk/containers/arraymap
Array-based key-value maps.
- lib/github.com/diku-dk/containers/bitset
Bitset module
- lib/github.com/diku-dk/containers/hashkey
Key module.
- lib/github.com/diku-dk/containers/hashmap
Static hashmaps.
- lib/github.com/diku-dk/containers/hashset
Static hashsets with an unlifted type.
- lib/github.com/diku-dk/containers/key
Definitions of modules that implement both the
hashkey
andordkey
module types for a variety of types.- lib/github.com/diku-dk/containers/list
Linked lists.
- lib/github.com/diku-dk/containers/map
Abstract interface for working with key-value mappings.
- lib/github.com/diku-dk/containers/ordkey
Ordered key type.
- lib/github.com/diku-dk/containers/set
Abstract interface for working with sets.
- lib/github.com/diku-dk/containers/slice
Types representing slices of arrays.
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/cpprandom/random
Random number generation inspired by
<random>
in C++.- lib/github.com/diku-dk/segmented/segmented
Irregular segmented operations, like scans and reductions.
- lib/github.com/diku-dk/sorts/merge_sort
Work-efficient parallel mergesort
- 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 thatradix_sort
is faster.radix_sort
can also be much more suitable in cases where nested parallelism is utilized.