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.

The lastest version can be found on the HackageDB page. Suggestions and feature requests are welcome, please write to the maintainer email address on HackageDB.

Full documentation and usage examples are available in the Documentation page.