tensor is a Haskell library for linear algebra. Its main data structure is the tensor, i.e. a multidimensional array; vectors and matrices are implemented as particular cases of tensors.
The main features are:
- Type safety: tensors are of fixed dimensions (the dimensions list is encoded inside the type).
- Efficient algorithms: we strive to provide the best possible algorithm for each linear algebra operation.
- Abstraction: the algorithm are defined on classes, not on datatypes; this allows to have different implementations of a tensor, based on a different internal representation (which we call backend), and operate on these with the same API.
Full documentation and usage examples are available in the Documentation page.