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
Ainto a lower matrixLand upper matrixUsuch 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/linalg/lup
Operations for performing LU-decomposition with partial (row) pivoting and operations for solving systems of linear equations using the LU-decomposition functionality. The module
mk_lupis parameterised over an ordered field. Examples of ordered fields includef64andf32.- lib/github.com/diku-dk/linalg/nmf
Non-negative matrix factorisation.
- lib/github.com/diku-dk/linalg/perm
Permutations. Permutations can be constructed using the
idandmkconstructors and manipulated using a series of other constructors, which all guarantee that compositions are safe. The only way to inspect a permutation is to apply it, using thepermutefunction.- 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
mapQR 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++.