Main libraries


Small library of simple linear algebra-ish operations.


Non-negative matrix factorisation.


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


Definitions related to automatic differentiation.


Utility functions for arrays.


Simple functional combinators.


Basic mathematical modules and functions.


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


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


Transforming arrays of tuples into tuples of arrays and back again.


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