Main libraries
- lib/github.com/diku-dk/sparse/blocked_square_regular
Blocked square regular matrices
- 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 declaredlocal
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 declaredlocal
to avoid that outside code makes direct use of the module type.- lib/github.com/diku-dk/sparse/mono
Mono sparse matrices.
- 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 matrixL
and upper matrixU
such thatLU = 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 thatradix_sort
is faster.radix_sort
can also be much more suitable in cases where nested parallelism is utilized.