TensorTrainNumerics.jl
TensorTrainNumerics.jl is a Julia package designed to provide numerical methods for working with tensor trains (TT) and quantics tensor trains (QTT).
There are many packages for tensor decompositions and tensor network algorithms, but this package focuses on numerical methods and applications in scientific computing, such as solving high-dimensional partial differential equations (PDEs) and large-scale linear algebra problems. Thanks to VectorInterface.jl this package is compatible with many Krylov methods from KrylovKit.jl and optimization methods from OptimKit.jl. So far this package includes implementations of discrete Laplace operators in the quantics tensor train format as well as iterative solvers for linear systems and eigenvalue problems.
Features
- Tensor Train Decomposition: Algorithms for decomposing high-dimensional tensors into tensor train format [1, 2].
- Tensor Operations: Support for basic tensor operations such as addition, multiplication, the hadamard product in tensor train format [3].
- Discrete Operators: Implementation of discrete Laplacians, gradient operators, and shift matrices in tensor train format for solving partial differential equations [4–6].
- Quantized Tensor Trains: Tools for constructing and manipulating quantized tensor trains, which provide further compression and efficiency for large-scale problems.
- Iterative Solvers: Integration with iterative solvers for solving linear systems and eigenvalue problems in tensor train format [7–10].
- The Fourier transform in QTT format and interpolation in QTT format [11–14].
- Tensor cross interpolation [15–17].
- Visualization: Basic visualization tools.
Installation
using Pkg
Pkg.add("TensorTrainNumerics")