Spartns is a SPARse TeNSor representation library. If you don't know what a tensor is, think of it as a matrix with any number of dimensions, not just two.



  • No external dependencies (no BLAS or any other C/Fortran library needed). Just plain Common Lisp;
  • Represents mappings from one dimension onto another using any scheme you want (there are two built-in schemes, hash and compressed-vector, but you can roll your own and plug it);
  • Flexible: works with any data type;
  • Heavily optimized: traversing the tensor can be extremely fast (in one specific situation, it was 10 times faster than a naive implementation in C++);
  • Somewhat portable: works with SBCL, ABCL, Clozure Common Lisp, CMUCL, Clisp, ECL, GCL, XCL, LispWorks, and Allegro Common Lisp. Probably works also with other Lisps also (not fully tested);
  • ASDF installable;
  • Easy to use, with introductory documentation (not only on-line);
  • Comes with description of the internals of the library.

Topic: linear algebra