Software
Pick by what you want to do
tensor4all maintains two generations of software. The established C++, Python and Julia libraries are stable and documented. The Rust stack is where new development happens, and its lower layers are general purpose tools for computational physics, not only for tensor networks.
The Rust stack New
A layered set of Rust libraries. Each layer depends only on the layers below it, and each can be used on its own. All of them pass explicit execution contexts instead of starting hidden thread pools, so they compose predictably inside MPI programs, Julia sessions and other host codes.
tensor4all-rs: tensor network algorithms
The next generation implementation of the tensor4all algorithms: tensor cross interpolation, quantics tensor trains with Fourier and shift operators, tree tensor networks of arbitrary topology, patching and HDF5 I/O. A C API serves language bindings, and Tensor4all.jl is its Julia frontend for light use and teaching.
New algorithms land here first. It suits early adopters comfortable with Rust; crates are used as git dependencies for now.
- active development
- Documentation
- Source
- Benchmarks
tenferro-rs: tensor runtime and autodiff
Typed and dynamic dense tensors with einsum, linear algebra and FFT on CPU, CUDA and XLA backends. Eager mode offers PyTorch style backward(); traced mode offers JAX style graph transforms with VJP, JVP and higher order derivatives. Column major storage and explicit device control make it a natural fit for code that talks to LAPACK, Fortran or Julia.
Ready for production use with a relatively stable API. Start with tenferro-runtime, tenferro-cpu and the operation crates you need. Background: Introducing tenferro-rs (日本語, 中文).
- crates.io 0.7.1
- Documentation
- Source
- Benchmark results vs PyTorch and JAX (repository)
Kernels and infrastructure
These libraries know nothing about tensor networks or about tenferro’s tensor types. They take borrowed strided views and an explicit context, which keeps them small and reusable from other codes, including from C.
tcontract
Binary tensor contraction over arbitrary strides, with a TAPP and DLPack C ABI. Benchmark results.
gittlinalg
Batched SVD, QR, LU, Cholesky and eigensolvers, faer backed or LAPACK backed, optionally parallelized along the batch dimension, with a C API. Benchmark results.
gitcpueinsum
N-ary einsum over integer labels with a caller supplied contraction order, with a C API. Benchmark results.
gitstrided-rs
The strided view types every layer shares, with permutation and elementwise kernels. Benchmarks.
crates.io 0.4.8t4a-faer
Our fork of faer, the pure Rust linear algebra library by Sarah Quinones. It adds strided and batched entry points, caller owned workspaces, an explicit thread policy and numerical fixes; every change is recorded in its patch ledger. Benchmark results against upstream.
crates.io t4a-faer 0.24.4Benchmarks
Performance claims are backed by public benchmark repositories, kept separate from the libraries so that results can be keyed by commit and hardware. Where a campaign publishes its results as a web page, the link is in the first column. The main entry point is the tenferro-benchmark results, which compare the whole stack against PyTorch and JAX.
| Results | Repository | What it measures |
|---|---|---|
| tenferro-benchmark | source | tenferro-rs against PyTorch and JAX on CPU and GPU |
| tcontract-benchmark | source | Binary strided contraction in tcontract |
| tlinalg-benchmark | source | Batched factorizations in tlinalg |
| cpueinsum-benchmark | source | N-ary einsum in cpueinsum over a standardized instance corpus |
| faer-benchmark | source | The t4a-faer fork against upstream faer, keyed by fork commit and upstream revision |
| (repository only) | tensor4all-benchmark | Tensor network algorithms in tensor4all-rs: QTT products and MPO-MPO contraction |
| (repository only) | strided-rs-benchmark-suite | strided-rs kernels against HPTT, Julia Base and Strided.jl |
Release status changes quickly; the repository table in the stack overview is kept current.
Established libraries
Stable, documented and in use in published work. Choose these when you need a dependable workflow now.
xfac
The original implementation of tensor cross interpolation, with Python bindings.
TCI in Julia
- TensorCrossInterpolation.jl: core TCI algorithms
- QuanticsTCI.jl: quantics TCI for non experts
- QuanticsGrids.jl: grids and coordinate transforms
- InterpolativeQTT.jl: multiscale interpolative QTT
Maintenance packages
Kept working for existing users, not recommended for new projects.
| Package | Status |
|---|---|
| Quantics.jl | High level QTT operations on ITensors.jl |
| FastMPOContractions.jl | Existing MPO contraction workflows |
| TCIITensorConversion.jl | Historical; now an extension of TensorCrossInterpolation.jl |
Old T4A****.jl repositories were experiments and are not maintained as public libraries.