Main libraries

lib/github.com/diku-dk/sparse/compressed

Compressed sparse matrices.

lib/github.com/diku-dk/sparse/element

Module type for elements of sparse matrices.

lib/github.com/diku-dk/sparse/matrix_irregular

Module type for sparse matrix operations. The abstract matrix type mat is size-lifted to indicate its potential irregular-sized structure. The module type is declared local to avoid that outside code makes direct use of the module type.

lib/github.com/diku-dk/sparse/matrix_regular

Module type for regular sparse matrix operations. The abstract matrix type mat is not size-lifted. The module type is declared local to avoid that outside code makes direct use of the module type.

lib/github.com/diku-dk/sparse/trapezoidal

Sparse trapezoidal matrices.

lib/github.com/diku-dk/sparse/triangular

Sparse triangular matrices.

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/containers/opt

A type for signifing missing values.

lib/github.com/diku-dk/containers/setops

Set-like operations on arrays of values interpreted as sets

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

Small library of simple linear algebra-ish operations.

lib/github.com/diku-dk/linalg/lu

Library with operations related to LU-decomposition of dense matrices, including operations for decomposing a matrix A into a lower matrix L and upper matrix U such that LU = A. The module also contains functionality for solving linear systems based on LU-decomposition using forward- and back-substitution.

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 that radix_sort is faster. radix_sort can also be much more suitable in cases where nested parallelism is utilized.