Question on maxdim and cutoff

Hello,

I am trying to understand truncation via cutoff.

Let’s say I have an MPS that is representing some function y that is defined on a grid of size 2^{6}. Given that, I expect an exact MPS representation will require \chi = 8 and any less than that will be an approximation of y. Let’s also assume that the exact representation of y actually does require \chi=8 (I know there are cases where exact representations of certain functions like \text{sin}(x) require less than the \chi you’d get from construction of MPS via SVD).

I would expect then that I if I specified essentially zero truncation error, which I thought would be something like cutoff=1E-16, that the resulting MPS should have maxlinkdim(mps) = 8. But I am finding that is not the case. I need to use cutoff of even less than 1E-16 to produce \chi=8.

I’m questioning why is that? I am only using Float64 so I didn’t think any number smaller than 1E-16 could be represented and should give basically the same answer as 1E-16. Is that wrong?

Below is an MWE demonstrating what I am observing.

On my laptop, I don’t get \chi=8 until cutoff=1E-24. I expected to get it at cutoff=1E-16 (effectively zero truncation error? or so I thought).

using ITensors, LinearAlgebra

begin
    N = 6
    d = 2
    n = d^N
    x = LinRange(0, 1, n)
    y = @. x * sin(2π * x) + x^(1 / 3)
    sinds = siteinds(d, N)
    m = MPS(y, sinds)
end

cutoffs = [1E-8, 1E-12, 1E-14, 1E-16, 1E-20, 1E-24, 1E-28]
begin
    for cutoff in cutoffs
        tmp = MPS(y, sinds, cutoff=cutoff)
        χ = maxlinkdim(tmp)
        @info "For cutoff=$(cutoff) the maxdim is $(χ)"
    end
end

I think the problem here is that there is some post-processing of the singular values from the 2-site decomposition which can transform the spectrum to values smaller than the machine precision of a Float64 number. This can be circumvented by choosing cutoff = 0

begin
  tmp = MPS(y, sinds, cutoff=0.0)
  χ = maxlinkdim(tmp)
  @info "For cutoff=$(cutoff) the maxdim is $(χ)"
end
[ Info: For cutoff=cutoff the maxdim is 8

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.