Main libraries

futlib/array

Utility functions for arrays.

futlib/colour

Colour manipulation library.

futlib/complex

Complex numbers parameterised over the representation of their real parts.

futlib/date

A simple date library. Inspired by code from LexiFi.

futlib/fft

A simple FFT module based on work by David P.H. Jørgensen and Kasper Abildtrup Hansen.

futlib/functional

Simple functional combinators.

futlib/linalg

Small library of linear algebra-ish operations.

futlib/lss

Longest satisfying segments.

futlib/math

Basic mathematical modules and functions.

futlib/merge_sort

Bitonic merge sort.

futlib/monoid

A module type describing a monoid.

futlib/mss

Maximum segment sums.

futlib/prelude

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

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

futlib/random

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

futlib/segmented

Irregular segmented operations, like scans and reductions.

futlib/soacs

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

futlib/sobol

Quasi-random Sobol number generation.

futlib/vector

A module type for vectors of any (static) dimension.

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