Main libraries

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/linalg/nmf

Non-negative matrix factorisation.

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

Implementations of QR decomposition. At the moment, these are not very fast for single large matrices, but they are serviceable. Performance is quite good on "batches" on many smaller matrices (i.e. when you map QR decomposition), where "small" is less than 16x16 or 32x16.

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++.