Quick question, about the infiniteMPS stuff. is there a way to directly access the tensors L and R s.t. A_L = L^{}AL^{-1} and A _R = R^{-1} A R^{} , where A is the tensor that the state is infinite copies of. We have access to A , AL, AR , but I’m having difficulty accessing L and R except for square rooting the left and right fixed points of the transfer matrix I found, which doesn’t yield the correct result often. I need this for calculating the action of the pseudo inverse (1- E^L_R)^p = (1- \~E^L_R)^{-1} exactly. I have the full eigendecomposition of E, and will use that for an expansion of the psuedoinverse, but I need to tack on these pesky L and R matrices. Any help is appreciated. Thanks!
Using the ideas from Tangent-space methods for uniform matrix product states, E^L_R has been transformed by the C tensor (i.e. picking a gauge), which should be a good approximation compared to using l and r which are both \approx C^\dagger C. You can also use the fixed points of the transfer matrices directly which should be used with the full transfer matrix instead (E), but is more expensive.
I used the following to compute the pseudoinverse for E^L_R for example
struct Aᴸᵣ
ψ::InfiniteCanonicalMPS
end
function (A::Aᴸᵣ)(x)
ψ = A.ψ
ψᴴ = dag(ψ)
ψ′ = ψᴴ'
ψ̃ = prime(linkinds, ψᴴ)
N = length(ψ)
#@assert n == N
l = linkinds(only, ψ.AL)
l′ = linkinds(only, ψ′.AL)
r = linkinds(only, ψ.AR)
r′ = linkinds(only, ψ′.AR)
xT = (translatecell(translator(ψ), x, 1))
for j in reverse(1:N)
xT = xT * ψ.AL[j] * ψ̃.AR[j]
end
δˡ(n) = δ(Bool, r[n], l′[n])
δʳ(n) = δ(Bool, dag(l[n]), prime(r[n]))
xR = x * ψᴴ.C[0] * (ψ′.C[0] * δˡ(0)) * denseblocks(δʳ(0))
return xT - xR
end
#....
ϕ = #...
A = Aᴸᵣ(ψ)
L, info = linsolve(A, ϕ, 1, -1; tol=1e-10)
# this is a different L, not A_L=LAL^-1
Thank you this is incredibly helpful. I’ve been using a spectral decomposition of the transfer matrix and getting the pseudoinverse through a series, which has numerical stability issues. This makes sense since, even the notes say this is the smarter way to calculated the action of the PI. The way you’re getting the left and right fixed points is also so much simpler than the way I’ve been doing it .