(Listed in alphabetical order by project name.)
Cyclops Tensor Framework (C++)
This library provides automatic parallelization of operations on multidimensional (sparse) arrays. Cyclops supports general tensor sparsity, so it is possible to define graph algorithms with the use of sparse adjacency matrices
ITensor (C++, Julia)
ITensor is a library for tensor networks where tensor indices carry extra information and matching tensor indices automatically contract. Also features MPS and MPO algorithms, such as DMRG, and quantum number block-sparse tensors.
NCON (Network Contractor) is a MATLAB routine which can be used for computing a broad class of tensor network diagrams in an efficient and convenient way.
python library for contracting tensors and tensor networks, with support for matrix product states and algorithms, and advanced features such as determination of the optimal ordering of tensor contractions.
Scikit-TT is a Python library for applying the tensor-train (TT) format to various numerical problems in order to reduce the memory consumption and computational cost compared to classical tensor approaches significantly.
Tensor Network Python (TeNPy) is a Python library for the simulation of quantum systems with tensor networks. The philosophy of this library is to get a new balance of a good readability and usability for new-comers, and at the same time powerful algorithms and fast development of new algorithms for experts.
A python library offering a high-level API for tensor methods and deep tensorized neural networks. TensorLy’s backend system allows users to perform computations with NumPy, MXNet, PyTorch, TensorFlow, and CuPy in order to be scalable on both CPU and GPU.
python library for easy and efficient contraction of tensor networks, supporting multiple powerful backends
Tensor Toolbox (MATLAB)
The Tensor Toolbox is a MATLAB library supporting multiple tensor types, including dense, sparse, and symmetric tensors as well as specially structured tensors, such as Tucker format, and others. Tensors can be manipulated using MATLAB’s object-oriented features.
TorchMPS is a framework for working with matrix product state (also known as MPS or tensor train) models within Pytorch. Our MPS models are written as Pytorch Modules, and can simply be viewed as differentiable black boxes that are interchangeable with standard neural network layers. However, the rich structure of MPS’s allows for more interesting behavior…
MATLAB implementation of basic operations with tensors in TT-format, including TT tensor and TT matrix formats, fast rounding procedures, methods for solutions of linear systems and eigenvalue problems, and the TT-cross method.
Universal Tensor Library, an open-source C++ library designed for the development of tensor network algorithms. Provides a Network class to process and store the details of the graphical representations of the networks, and supports quantum number block-sparse tensors.
The Xerus library is a general purpose library for numerical calculations with higher order tensors, Tensor-Train Decompositions / Matrix Product States and general Tensor Networks. The focus of development was the simple usability and adaptibility to any setting that requires higher order tensors or decompositions thereof.
CuTensor is a library for high-performance contraction of arbitrary tensors on NVIDIA graphics processing units (GPUs). It is built on top of hardware-optimized, permutation-free contraction algorithms and can achieve very high performance.
High-performance tensor transpose (HPTT) is a library for permuting (transposing) tensor data including summing two tensors which may have a different ordering of indices. Performance is achieved by hardware and cache-friendly algorithms as well as multi-threading based on OpenMP.
TBLIS is a contraction library for arbitrary (real-valued) tensors which uses a sophisticated permutation-free algorithm, avoiding the permutation overhead that would be incurred by a more naive permute and matrix-multiply algorithm.