elrnv / tensr

Tensor library with support for sparse tensors, block matrices, and lazy evaluation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tensr

Build status

Note: the word tensor used by this library refers to the n-dimensional array representation of a mathematical tensor.

A prototype for a linear algebra library that aims at supporting:

  • Multi-demensional array ("tensor") arithmetic (including scalars, vectors, matrices and higher dimensional structures),
  • Small (array based) tensors,
  • Dense dynamically allocated tensors,
  • Sparse tensors,
  • Lazy arithmetic,
  • Block (sparse or dense) matrices,
  • Special matrices (block diagonal, lower triangular, upper triangular, etc.),
  • Flat data layout in all tensor types for faster processing,
  • Arithmetic between compatible tensors.

Some subset of the features above has already been implemented.

The quality criteria for this library (in no particular order) are

  • performance
  • simplicity (usage as well as implementation)
  • safety

Meeting these criteria is work in progress.

Higher level algorithms like decompositions are currently outside the scope of this project and are expected to be provided by third-party crates.

License

This repository is licensed under either of

at your option.

About

Tensor library with support for sparse tensors, block matrices, and lazy evaluation

License:Apache License 2.0


Languages

Language:Rust 100.0%