portc

The algorithm

How SRC contracts and compresses in one randomized sweep.

Successive Randomized Compression (SRC) (Camaño et al., 2026) computes a compressed approximation of a product of tensor trains, such as A ∣ψ⟩A\,|\psi\rangle for an MPO AA and an MPS ∣ψ⟩|\psi\rangle, without ever forming the exact product. The exact product of an MPO with bond dimension χA\chi_A and an MPS with bond dimension χψ\chi_\psi has bond dimension χAχψ\chi_A \chi_\psi; compressing it afterwards, as in the usual contract-then-truncate approach, pays for that intermediate size. SRC targets the output bond dimension χout\chi_{\text{out}} directly, or an oversampled sketch size χos\chi_{\text{os}} followed by a final SVD truncation to χout\chi_{\text{out}}.

Randomized range finding

The building block is the randomized range finder (Halko et al., 2011): to approximate the column space of a matrix MM with rank about kk, multiply it by a random Gaussian matrix Ω\Omega with kk columns and orthonormalise the result, Q=orth⁡(MΩ)Q = \operatorname{orth}(M\Omega). Then M≈QQ†MM \approx Q Q^\dagger M with high probability, and the cost is dominated by the product MΩM\Omega.

SRC applies this idea one site at a time along the chain, with the matrix MM being an unfolding of the (never formed) product network.

Sketching and truncation

By default, χos=χout\chi_{\text{os}} = \chi_{\text{out}} and only the first two sweeps run: the output is right-canonical, with bond dimension at most χout\chi_{\text{out}}. An oversample factor sets χos=⌈oversample χout⌉\chi_{\text{os}} = \lceil \text{oversample}\,\chi_{\text{out}}\rceil, and oversample=None the paper's max⁡(⌈1.5χout⌉,χout+10)\max(\lceil 1.5\chi_{\text{out}}\rceil, \chi_{\text{out}} + 10); the third sweep then truncates to χout\chi_{\text{out}}.

  1. Left to right: sketching. At every site the open physical legs are contracted with a Gaussian tensor Ωj\Omega_j of sketch size χos\chi_{\text{os}}. Accumulating these from the left gives the sketched environments CjC_j, each of size χos\chi_{\text{os}} times the product of the input bond dimensions. The same sketch index is shared by every site, which makes the sketch a Khatri-Rao product rather than a dense Gaussian matrix of the full Hilbert space.

  2. Right to left: orthonormalisation. Starting from the last site, the environment CjC_j is contracted with the site tensors and the projected right environment SS, and a QR decomposition of the result gives the new site tensor as an isometry. The isometry is then folded into SS for the next site. The first site absorbs the remaining weight.

  3. Left to right: exact truncation (oversampling only). The intermediate is already right-canonical, so no re-orthogonalisation is needed. An SVD of each centre tensor gives the Schmidt values at that cut. Keep at most χout\chi_{\text{out}} values, apply the relative cutoff, and absorb the remaining weight into the next site. The output is left-canonical, with the norm on the last site. The discarded weights add in quadrature, giving the usual TT-SVD quasi-optimality bound for this intermediate.

Cost

For an MPO with bond dimension χA\chi_A applied to an MPS with bond dimension χψ\chi_\psi, the dominant per-site cost grows like χos2χAχψ\chi_{\text{os}}^2 \chi_A \chi_\psi, compared with the (χAχψ)3(\chi_A\chi_\psi)^3 of an exact contraction followed by an SVD-based truncation. The same kernel handles MPO-MPO products and plain compression; for a stack of trains, the product of all their bond dimensions replaces χAχψ\chi_A\chi_\psi.

Being randomized, SRC is not optimal: its error is somewhat above the best rank-χout\chi_{\text{out}} truncation, with a gap that shrinks quickly as the spectrum decays. The benchmarks quantify this on concrete cases.

On this page