-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement fixed-point differentiation and gauge-fixing #13
Conversation
Note that this first commit is still quite rough, I just needed somewhere to push all the new/refactored code. Also, many of the new function and struct names might still be off, so feel free to come up with alternative names :-) The (refactored) In the next few commits, I will add the gauge-fixing routine and then the efficient fixed-point differentiation should work also. (I have already added that in the For now I have removed the distinction between |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I really like most of these changes, and added some minor remarks with my opinions inline.
I think the biggest thing I am not entirely happy with is the top interface, with how PEPSOptimize
is defined, but maybe it's okay to first have it this way and refactor later.
(max(Δnorm, ΔCS, ΔTS) < alg.tol && i > alg.miniter) && break # Converge if maximal Δ falls below tolerance | ||
|
||
# Print verbose info | ||
ignore_derivatives() do |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we could handle logging by just making some functions log_iter
, log_convergence
, log_init
, ...:
function log_iter(alg::CTMRG, vars...)
# logging code
end
This is probably easy to change later, and we can just mark these functions as non_differentiable. It also keeps the function body of the main algorithm cleaner, and dispatching on the algorithm makes sure that it is modular?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, I think the usage of @info
is probably quite nice, as this can then be disabled or redirected to a logfile using julia's Logging.jl
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Logging functions and switching to @info
seems like a good idea. I will probably get back to that once I got all the other stuff running.
src/algorithms/peps_opt.jl
Outdated
for r in size(env.corners, 2), c in size(env.corners, 3) | ||
cnext = _next(c, size(peps, 2)) | ||
@tensor ρ[-11 -20; -12 -18] := | ||
env.corners[NORTHWEST, r, c][1; 3] * | ||
env.edges[NORTH, r, c][3 5 8; 13] * | ||
env.edges[NORTH, r, cnext][13 16 22; 23] * | ||
env.corners[NORTHEAST, r, cnext][23; 24] * | ||
env.edges[EAST, r, cnext][24 25 26; 27] * | ||
env.corners[SOUTHEAST, r, cnext][27; 28] * | ||
env.edges[SOUTH, r, cnext][28 17 21; 14] * | ||
env.edges[SOUTH, r, c][14 6 10; 4] * | ||
env.corners[SOUTHWEST, r, c][4; 2] * | ||
env.edges[WEST, r, c][2 7 9; 1] * | ||
peps[r, c][-12; 5 15 6 7] * | ||
conj(peps[r, c][-11; 8 19 10 9]) * | ||
peps[r, cnext][-18; 16 25 17 15] * | ||
conj(peps[r, cnext][-20; 22 26 21 19]) | ||
@diffset ρunitcell[r, c] = ρ | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can avoid diffset
alltogether here, by just using map. (Also small typo, should either be 1:size()
or axes
)
for r in size(env.corners, 2), c in size(env.corners, 3) | |
cnext = _next(c, size(peps, 2)) | |
@tensor ρ[-11 -20; -12 -18] := | |
env.corners[NORTHWEST, r, c][1; 3] * | |
env.edges[NORTH, r, c][3 5 8; 13] * | |
env.edges[NORTH, r, cnext][13 16 22; 23] * | |
env.corners[NORTHEAST, r, cnext][23; 24] * | |
env.edges[EAST, r, cnext][24 25 26; 27] * | |
env.corners[SOUTHEAST, r, cnext][27; 28] * | |
env.edges[SOUTH, r, cnext][28 17 21; 14] * | |
env.edges[SOUTH, r, c][14 6 10; 4] * | |
env.corners[SOUTHWEST, r, c][4; 2] * | |
env.edges[WEST, r, c][2 7 9; 1] * | |
peps[r, c][-12; 5 15 6 7] * | |
conj(peps[r, c][-11; 8 19 10 9]) * | |
peps[r, cnext][-18; 16 25 17 15] * | |
conj(peps[r, cnext][-20; 22 26 21 19]) | |
@diffset ρunitcell[r, c] = ρ | |
end | |
ρunitcell = map(Iterators.product(axes(env.corners, 2), axes(env.corners, 3))) do (r, c) | |
cnext = _next(c, size(peps, 2)) | |
@tensor ρ[-11 -20; -12 -18] := | |
env.corners[NORTHWEST, r, c][1; 3] * | |
env.edges[NORTH, r, c][3 5 8; 13] * | |
env.edges[NORTH, r, cnext][13 16 22; 23] * | |
env.corners[NORTHEAST, r, cnext][23; 24] * | |
env.edges[EAST, r, cnext][24 25 26; 27] * | |
env.corners[SOUTHEAST, r, cnext][27; 28] * | |
env.edges[SOUTH, r, cnext][28 17 21; 14] * | |
env.edges[SOUTH, r, c][14 6 10; 4] * | |
env.corners[SOUTHWEST, r, c][4; 2] * | |
env.edges[WEST, r, c][2 7 9; 1] * | |
peps[r, c][-12; 5 15 6 7] * | |
conj(peps[r, c][-11; 8 19 10 9]) * | |
peps[r, cnext][-18; 16 25 17 15] * | |
conj(peps[r, cnext][-20; 22 26 21 19]) | |
return ρ | |
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
might be cleaner to actually map over the tensor arrays and use some form of circshift instead
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I definitely like the map
much better. I'll use the map over the axes indices for now and maybe think about mapping over the tensor arrays later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there's a couple more places where this happens, and the pattern should be generally applicable. In principle, the optimized version would be to do newarray = map!!(fun, oldarray)
, where map!!(args...) = map!(args...)
but the reverse rule just applies map()
along with the rrule for that function. That way, if you're just contracting a peps and not optimizing, this avoids some unneccesary allocations. (but let's just keep that in mind for later)
src/algorithms/peps_opt.jl
Outdated
struct LinSolve <: GradMode end | ||
|
||
# Algorithm struct containing parameters for PEPS optimization | ||
# TODO: have an interface for general cost functions? (could merge energyfun and reuse_env) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not a huge fan of having the cost function as a field in the algorithm. I usually think of these algorithm structs as glorified named tuples, that can be used to dispatch on and hold the relevant keyword arguments to a function. In that sense, I think the cost function would rather be an argument, instead of a keyword.
I'm not sure if this is possible, but can we have an interface of the following sort:
groundsearch(!)(x_init, H, alg, [envs])
In this case alg
could be dispatched on, and this contains the parameters for how to contract, and how to optimize, and H is the operator, which actually fixes the costfunction together with the fact that it is groundsearch
.
Additionally, I think I'm actually more a fan of fixedpoint(x_init, H, alg, envs)
as this makes more sense both for 3d stat mech and 2+1d quantum
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not a huge fan of having the cost function as a field in the algorithm.
I agree that having the cost function inside the algorithm struct is not a nice design. In general, I should rethink the PEPS optimization design with PEPSOptimize
, groundsearch
and costfun
. One thing I am unsure about is how much user freedom such a PEPS optimization interface should allow.
Additionally, I think I'm actually more a fan of
fixedpoint(x_init, H, alg, envs)
as this makes more sense both for 3d stat mech and 2+1d quantum
Yes, I like the name. Especially if we have a unified interface for different kinds of optimization (2d quantum, 3d stat mech, 2+1d quantum, ...) I would really prefer this.
...and H is the operator, which actually fixes the costfunction...
This would be neat and multiple ways come to mind on how to realize this:
- We could define an abstract Hamiltonian type and then define specific models as subtypes with corresponding cost functions, e.g.
costfun(H::SquareLatticeHeisenberg)
. This would be flexible but it would introduce possibly redundant data types. - Or we could dispatch on the underlying tensor map type directly, e.g.
costfun(H::AbstractTensorMap{<:ElementarySpace,2,2})
and fix the cost function to the next-neighbor energy. This is rather unflexible but it might be enough.
I would probably opt for option 1 since one might need to write specific methods for specific models anyway, which would justify giving it a data type. What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I definitely like option 1, but I would rather go with a generic type that only fixes the geometry of the interactions, in which you could still just put whatever tensor. Something like NearestNeighbour{SquareLattice}
sounds like a middle ground between having to dispatch on tensors, which don't have enough information to fully specify what it means, and having to define types for each different hamiltonian. In any case, the abstract Hamiltonian type as a layer inbetween I definitely like.
…get empty projectors
…valuation and manual iteration of linear operator, put optional args in InfinitePEPS constructor first
Alright, the gauge fixing and FP differentiation works for the What I noticed and do not understand yet: When I use the manual iteration mode of computing the gradient ( |
I might not be understanding this completely, but I think you only gauge-fix the last iteration, which is the information you use for doing the geometric series, so there is no gauge dependency there. On the other hand, there might actually be a gauge dependency in the intermediate step of a random CTMRG iteration, and possibly there might be some numeric error reasons why this doesn't completely cancel out for the separate steps |
Okay, so apparently the choice of initial guess I now use |
…ess to speed it up
I guess the other option is to explicitly tell the rrule that it does not depend on the initial guess, but that might not be super-clean either |
When I tested differentiating the fixed-point with unit cells Friday and today, I noticed two problems. First, I needed to figure out the gauge-fixing for general unit cells (I think I got this today, but haven't implemented it yet). And second, when doing the naive AD through CTMRG, somehow the adjoint of ERROR: MethodError: Cannot `convert` an object of type ChainRulesCore.ZeroTangent to an object of type TrivialTensorMap{ComplexSpace, 1, 3, Matrix{ComplexF64}}
Closest candidates are:
convert(::Type{<:AbstractTensorMap}, ::MPSKit.FiniteMPS)
@ MPSKit ~/.julia/packages/MPSKit/atykv/src/states/finitemps.jl:235
convert(::Type{TensorMap{S, N₁, N₂, I, A, F₁, F₂}}, ::AbstractTensorMap{S, N₁, N₂}) where {S, N₁, N₂, I, A, F₁, F₂}
@ TensorKit ~/.julia/packages/TensorKit/gpuAY/src/tensors/tensor.jl:572
convert(::Type{T}, ::T) where T
@ Base Base.jl:64
Stacktrace:
[1] setindex!(A::Matrix{TrivialTensorMap{ComplexSpace, 1, 3, Matrix{ComplexF64}}}, x::ChainRulesCore.ZeroTangent, i1::Int64)
@ Base ./array.jl:969
[2] _unsafe_copyto!(dest::Matrix{TrivialTensorMap{ComplexSpace, 1, 3, Matrix{ComplexF64}}}, doffs::Int64, src::Matrix{Any}, soffs::Int64, n::Int64)
@ Base ./array.jl:250
[3] unsafe_copyto!
@ ./array.jl:304 [inlined]
[4] _copyto_impl!
@ ./array.jl:327 [inlined]
[5] copyto!
@ ./array.jl:314 [inlined]
[6] copyto!
@ ./array.jl:339 [inlined]
[7] copyto_axcheck!(dest::Matrix{TrivialTensorMap{ComplexSpace, 1, 3, Matrix{ComplexF64}}}, src::Matrix{Any})
@ Base ./abstractarray.jl:1182
[8] Array
@ ./array.jl:621 [inlined]
[9] convert
@ ./array.jl:613 [inlined]
[10] _setindex_pullback
@ ~/repos/PEPSKit.jl/src/utility/util.jl:96 [inlined]
[11] (::Zygote.ZBack{PEPSKit.var"#_setindex_pullback#4"{Matrix{TrivialTensorMap{ComplexSpace, 1, 3, Matrix{ComplexF64}}}, Tuple{Int64, Int64}}})(dy::Matrix{Union{Nothing, TrivialTensorMap{ComplexSpace, 1, 3, Matrix{ComplexF64}}}})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/chainrules.jl:211
[12] macro expansion
@ ~/repos/PEPSKit.jl/src/utility/util.jl:131 [inlined]
[13] Pullback
@ ~/repos/PEPSKit.jl/src/algorithms/ctmrg.jl:219 [inlined]
[14] (::Zygote.Pullback{Tuple{typeof(PEPSKit.left_move), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRG}, Any})(Δ::Tuple{NamedTuple{(:corners, :edges), Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Nothing, Nothing, Nothing})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface2.jl:0
[15] Pullback
@ ~/repos/PEPSKit.jl/src/algorithms/ctmrg.jl:157 [inlined]
[16] (::Zygote.Pullback{Tuple{typeof(PEPSKit.ctmrg_iter), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRG}, Any})(Δ::Tuple{NamedTuple{(:corners, :edges), Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Nothing, Nothing, Nothing})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface2.jl:0
[17] Pullback
@ ~/repos/PEPSKit.jl/src/algorithms/ctmrg.jl:59 [inlined]
[18] (::Zygote.Pullback{Tuple{typeof(leading_boundary), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRG, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Any})(Δ::Tuple{NamedTuple{(:corners, :edges), Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Nothing, Nothing})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface2.jl:0
[19] Pullback
@ ~/repos/PEPSKit.jl/src/algorithms/peps_opt.jl:48 [inlined]
[20] (::Zygote.Pullback{Tuple{typeof(PEPSKit.costfun!), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, TrivialTensorMap{ComplexSpace, 2, 2, Matrix{ComplexF64}}, CTMRG, PEPSOptimize{NaiveAD}}, Tuple{Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{3, 1, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}, Zygote.Pullback{Tuple{typeof(leading_boundary), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRG, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:energyfun, Zygote.Context{false}, PEPSOptimize{NaiveAD}, typeof(PEPSKit.next_neighbor_energy)}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.Pullback{Tuple{typeof(PEPSKit.next_neighbor_energy), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, TrivialTensorMap{ComplexSpace, 2, 2, Matrix{ComplexF64}}}, Tuple{Zygote.var"#2993#back#768"{Zygote.var"#762#766"{Matrix{ComplexF64}}}, Zygote.var"#2993#back#768"{Zygote.var"#762#766"{Matrix{ComplexF64}}}, Zygote.Pullback{Tuple{typeof(expectation_value), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, TrivialTensorMap{ComplexSpace, 2, 2, Matrix{ComplexF64}}}, Any}, Zygote.ZBack{Zygote.var"#real_pullback#350"}, Zygote.ZBack{Zygote.var"#plus_pullback#345"{Tuple{ComplexF64, ComplexF64}}}, Zygote.Pullback{Tuple{typeof(rotl90), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Any}, Zygote.Pullback{Tuple{typeof(expectation_value), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, TrivialTensorMap{ComplexSpace, 2, 2, Matrix{ComplexF64}}}, Any}, Zygote.Pullback{Tuple{typeof(rotl90), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.Broadcast.materialize), Matrix{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(Base.Broadcast.broadcasted), typeof(rotl90), Matrix{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.Broadcast.broadcastable), Matrix{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}, Tuple{}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing, Nothing, Nothing}, Tuple{}}, Zygote.var"#4121#back#1362"{Zygote.var"#∇broadcasted#1373"{Tuple{Matrix{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}, Matrix{Tuple{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{typeof(rotl90), TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, Tuple{Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#permute_pullback#49"{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}, Tuple{Tuple{Int64}, NTuple{4, Int64}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2017#back#204"{typeof(identity)}}}}}, Val{2}}}}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing}, Tuple{}}, Zygote.var"#combine_styles_pullback#1168"{Tuple{Nothing, Nothing}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{typeof(Base.Broadcast.broadcastable), 1, Tuple{Tuple{}}, Tuple{Val{0}}, Tuple{}}}, Zygote.var"#2017#back#204"{typeof(identity)}}}, Zygote.Pullback{Tuple{Type{InfinitePEPS}, Matrix{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:A, Zygote.Context{false}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, Matrix{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}}, Zygote.ZBack{PEPSKit.var"#pb#3"{Matrix{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}}}}}}}})(Δ::Float64)
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface2.jl:0
[21] (::Zygote.var"#75#76"{Zygote.Pullback{Tuple{typeof(PEPSKit.costfun!), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, TrivialTensorMap{ComplexSpace, 2, 2, Matrix{ComplexF64}}, CTMRG, PEPSOptimize{NaiveAD}}, Tuple{Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{3, 1, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}, Zygote.Pullback{Tuple{typeof(leading_boundary), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRG, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:energyfun, Zygote.Context{false}, PEPSOptimize{NaiveAD}, typeof(PEPSKit.next_neighbor_energy)}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.Pullback{Tuple{typeof(PEPSKit.next_neighbor_energy), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, TrivialTensorMap{ComplexSpace, 2, 2, Matrix{ComplexF64}}}, Tuple{Zygote.var"#2993#back#768"{Zygote.var"#762#766"{Matrix{ComplexF64}}}, Zygote.var"#2993#back#768"{Zygote.var"#762#766"{Matrix{ComplexF64}}}, Zygote.Pullback{Tuple{typeof(expectation_value), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, TrivialTensorMap{ComplexSpace, 2, 2, Matrix{ComplexF64}}}, Any}, Zygote.ZBack{Zygote.var"#real_pullback#350"}, Zygote.ZBack{Zygote.var"#plus_pullback#345"{Tuple{ComplexF64, ComplexF64}}}, Zygote.Pullback{Tuple{typeof(rotl90), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Any}, Zygote.Pullback{Tuple{typeof(expectation_value), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, TrivialTensorMap{ComplexSpace, 2, 2, Matrix{ComplexF64}}}, Any}, Zygote.Pullback{Tuple{typeof(rotl90), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.Broadcast.materialize), Matrix{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(Base.Broadcast.broadcasted), typeof(rotl90), Matrix{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.Broadcast.broadcastable), Matrix{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}, Tuple{}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing, Nothing, Nothing}, Tuple{}}, Zygote.var"#4121#back#1362"{Zygote.var"#∇broadcasted#1373"{Tuple{Matrix{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}, Matrix{Tuple{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{typeof(rotl90), TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, Tuple{Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#permute_pullback#49"{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}, Tuple{Tuple{Int64}, NTuple{4, Int64}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2017#back#204"{typeof(identity)}}}}}, Val{2}}}}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing}, Tuple{}}, Zygote.var"#combine_styles_pullback#1168"{Tuple{Nothing, Nothing}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{typeof(Base.Broadcast.broadcastable), 1, Tuple{Tuple{}}, Tuple{Val{0}}, Tuple{}}}, Zygote.var"#2017#back#204"{typeof(identity)}}}, Zygote.Pullback{Tuple{Type{InfinitePEPS}, Matrix{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:A, Zygote.Context{false}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, Matrix{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}}, Zygote.ZBack{PEPSKit.var"#pb#3"{Matrix{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}}}}}}}}})(Δ::Float64)
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface.jl:91
[22] gradient(::Function, ::InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, ::Vararg{Any})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface.jl:148
[23] ctmrg_gradient(x::Tuple{InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, H::TrivialTensorMap{ComplexSpace, 2, 2, Matrix{ComplexF64}}, ctmalg::CTMRG, optalg::PEPSOptimize{NaiveAD})
@ PEPSKit ~/repos/PEPSKit.jl/src/algorithms/peps_opt.jl:40
[24] #103
@ ~/repos/PEPSKit.jl/src/algorithms/peps_opt.jl:26 [inlined]
[25] optimize(fg::PEPSKit.var"#103#104"{TrivialTensorMap{ComplexSpace, 2, 2, Matrix{ComplexF64}}, CTMRG, PEPSOptimize{NaiveAD}}, x::Tuple{InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, alg::LBFGS{Float64, HagerZhangLineSearch{Rational{Int64}}}; precondition::typeof(OptimKit._precondition), finalize!::typeof(OptimKit._finalize!), retract::Function, inner::typeof(PEPSKit.my_inner), transport!::typeof(OptimKit._transport!), scale!::typeof(OptimKit._scale!), add!::typeof(OptimKit._add!), isometrictransport::Bool)
@ OptimKit ~/.julia/packages/OptimKit/xpmbV/src/lbfgs.jl:21
[26] groundsearch(H::TrivialTensorMap{ComplexSpace, 2, 2, Matrix{ComplexF64}}, ctmalg::CTMRG, optalg::PEPSOptimize{NaiveAD}, ψinit::InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, envinit::CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}})
@ PEPSKit ~/repos/PEPSKit.jl/src/algorithms/peps_opt.jl:25
[27] top-level scope
@ ~/repos/PEPSKit.jl/examples/heisenberg.jl:45 Any chance you know what is going on? |
I think I do, the problem is that you have an array of tensors, and when taking the derivative of a single one, zygote will automatically make the other ones ZeroTangent. However, when creating the array that contains the tangents, this will have I hadn't realised this is something that can happen, and so either the array should be promoted to also being able to capture ZeroTangent, or we should avoid the code that generates this case, because I don't think we can create a sensible convertor, given that the type does not specify the spaces... |
…ript, replace global phase fix by normalizing with sign
Apparently, you can avoid the setindex error by not using I came across another problem with |
I guess we should just try to avoid diffset, it is mostly a hack anyways |
So I think, this should be almost ready to go. There is still some minor mistakes in the gauge-fixing, but it now does work for some larger unit cells (there is probably some switch ups in the row/column indices still). Also there is some AD issues, but that seems solvable, so I will figure the rest out on Monday. Should I also implement an initial version of the |
Here is the error that happens during AD of ERROR: MethodError: no method matching +(::NamedTuple{(:contents,), Tuple{Array{Union{Nothing, TrivialTensorMap{ComplexSpace, 2, 0, Matrix{ComplexF64}}, Tensor{ComplexSpace, 2, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}, 3}}}, ::Base.RefValue{Any})
Closest candidates are:
+(::Any, ::Any, ::Any, ::Any...)
@ Base operators.jl:578
+(::Union{InitialValues.NonspecificInitialValue, InitialValues.SpecificInitialValue{typeof(+)}}, ::Any)
@ InitialValues ~/.julia/packages/InitialValues/OWP8V/src/InitialValues.jl:154
+(::ChainRulesCore.AbstractThunk, ::Any)
@ ChainRulesCore ~/.julia/packages/ChainRulesCore/zgT0R/src/tangent_arithmetic.jl:122
...
Stacktrace:
[1] accum(x::NamedTuple{(:contents,), Tuple{Array{Union{Nothing, TrivialTensorMap{ComplexSpace, 2, 0, Matrix{ComplexF64}}, Tensor{ComplexSpace, 2, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}, 3}}}, y::Base.RefValue{Any})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/lib/lib.jl:17
[2] accum(x::NamedTuple{(:contents,), Tuple{Array{Union{Nothing, TrivialTensorMap{ComplexSpace, 2, 0, Matrix{ComplexF64}}, Tensor{ComplexSpace, 2, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}, 3}}}, y::Nothing, zs::Base.RefValue{Any})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/lib/lib.jl:22
[3] Pullback
@ ~/repos/PEPSKit.jl/src/algorithms/ctmrg.jl:181 [inlined]
[4] (::Zygote.Pullback{Tuple{typeof(PEPSKit.fix_relative_phases), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, 3}}, Any})(Δ::Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface2.jl:0
[5] Pullback
@ ~/repos/PEPSKit.jl/src/algorithms/ctmrg.jl:86 [inlined]
[6] (::Zygote.Pullback{Tuple{typeof(PEPSKit.gauge_fix), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#83#88", Nothing, false}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Nothing, false}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, 1, Tuple{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Zygote.Pullback{Tuple{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Tuple{Int64, Int64, Int64}}, Any}}, 3}}, Nothing}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#86#91", Nothing, false}}, Zygote.Pullback{Tuple{typeof(PEPSKit.fix_relative_phases), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, 3}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:corners, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#85#90"}, PEPSKit.var"#85#90"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#85#90", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#85#90", Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}}}, 3}}, Nothing}}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing, Nothing, Nothing}}, Zygote.var"#2929#back#732"{Zygote.var"#product_pullback#731"{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#85#90", Nothing, false}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#83#88", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#83#88", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#86#91"}, PEPSKit.var"#86#91"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#86#91", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#86#91", Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}}}}, 3}}, Nothing}}}, Zygote.ZBack{PEPSKit.var"#ctmrgenv_pullback#62"}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(getproperty), Module, Symbol}, Tuple{Zygote.Pullback{Tuple{typeof(getglobal), Module, Symbol}, Tuple{typeof(getglobal)}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#82#87", Nothing, false}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#82#87", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#82#87", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}}})(Δ::CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface2.jl:0
[7] Pullback
@ ~/repos/PEPSKit.jl/src/algorithms/peps_opt.jl:70 [inlined]
[8] (::Zygote.Pullback{Tuple{PEPSKit.var"#115#116"{CTMRG}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:ctmalg, Zygote.Context{false}, PEPSKit.var"#115#116"{CTMRG}, CTMRG}}, Zygote.Pullback{Tuple{typeof(PEPSKit.gauge_fix), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#83#88", Nothing, false}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Nothing, false}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, 1, Tuple{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Zygote.Pullback{Tuple{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Tuple{Int64, Int64, Int64}}, Any}}, 3}}, Nothing}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#86#91", Nothing, false}}, Zygote.Pullback{Tuple{typeof(PEPSKit.fix_relative_phases), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, 3}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:corners, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#85#90"}, PEPSKit.var"#85#90"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#85#90", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#85#90", Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}}}, 3}}, Nothing}}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing, Nothing, Nothing}}, Zygote.var"#2929#back#732"{Zygote.var"#product_pullback#731"{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#85#90", Nothing, false}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#83#88", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#83#88", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#86#91"}, PEPSKit.var"#86#91"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#86#91", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#86#91", Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}}}}, 3}}, Nothing}}}, Zygote.ZBack{PEPSKit.var"#ctmrgenv_pullback#62"}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(getproperty), Module, Symbol}, Tuple{Zygote.Pullback{Tuple{typeof(getglobal), Module, Symbol}, Tuple{typeof(getglobal)}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#82#87", Nothing, false}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#82#87", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#82#87", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}}}, Zygote.Pullback{Tuple{typeof(PEPSKit.ctmrg_iter), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRG}, Any}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}})(Δ::CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface2.jl:0
[9] #75
@ ~/.julia/packages/Zygote/jxHJc/src/compiler/interface.jl:91 [inlined]
[10] ∂f∂x
@ ~/repos/PEPSKit.jl/src/algorithms/peps_opt.jl:72 [inlined]
[11] (::PEPSKit.var"#grad_op#120"{PEPSKit.var"#∂f∂x#118"{Zygote.var"#75#76"{Zygote.Pullback{Tuple{PEPSKit.var"#115#116"{CTMRG}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:ctmalg, Zygote.Context{false}, PEPSKit.var"#115#116"{CTMRG}, CTMRG}}, Zygote.Pullback{Tuple{typeof(PEPSKit.gauge_fix), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#83#88", Nothing, false}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Nothing, false}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, 1, Tuple{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Zygote.Pullback{Tuple{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Tuple{Int64, Int64, Int64}}, Any}}, 3}}, Nothing}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#86#91", Nothing, false}}, Zygote.Pullback{Tuple{typeof(PEPSKit.fix_relative_phases), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, 3}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:corners, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#85#90"}, PEPSKit.var"#85#90"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#85#90", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#85#90", Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}}}, 3}}, Nothing}}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing, Nothing, Nothing}}, Zygote.var"#2929#back#732"{Zygote.var"#product_pullback#731"{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#85#90", Nothing, false}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#83#88", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#83#88", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#86#91"}, PEPSKit.var"#86#91"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#86#91", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#86#91", Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}}}}, 3}}, Nothing}}}, Zygote.ZBack{PEPSKit.var"#ctmrgenv_pullback#62"}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(getproperty), Module, Symbol}, Tuple{Zygote.Pullback{Tuple{typeof(getglobal), Module, Symbol}, Tuple{typeof(getglobal)}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#82#87", Nothing, false}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#82#87", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#82#87", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}}}, Zygote.Pullback{Tuple{typeof(PEPSKit.ctmrg_iter), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRG}, Any}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}}}})(env::CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}})
@ PEPSKit ~/repos/PEPSKit.jl/src/algorithms/peps_opt.jl:133
[12] apply(f::PEPSKit.var"#grad_op#120"{PEPSKit.var"#∂f∂x#118"{Zygote.var"#75#76"{Zygote.Pullback{Tuple{PEPSKit.var"#115#116"{CTMRG}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:ctmalg, Zygote.Context{false}, PEPSKit.var"#115#116"{CTMRG}, CTMRG}}, Zygote.Pullback{Tuple{typeof(PEPSKit.gauge_fix), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#83#88", Nothing, false}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Nothing, false}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, 1, Tuple{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Zygote.Pullback{Tuple{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Tuple{Int64, Int64, Int64}}, Any}}, 3}}, Nothing}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#86#91", Nothing, false}}, Zygote.Pullback{Tuple{typeof(PEPSKit.fix_relative_phases), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, 3}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:corners, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#85#90"}, PEPSKit.var"#85#90"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#85#90", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#85#90", Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}}}, 3}}, Nothing}}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing, Nothing, Nothing}}, Zygote.var"#2929#back#732"{Zygote.var"#product_pullback#731"{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#85#90", Nothing, false}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#83#88", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#83#88", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#86#91"}, PEPSKit.var"#86#91"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#86#91", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#86#91", Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}}}}, 3}}, Nothing}}}, Zygote.ZBack{PEPSKit.var"#ctmrgenv_pullback#62"}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(getproperty), Module, Symbol}, Tuple{Zygote.Pullback{Tuple{typeof(getglobal), Module, Symbol}, Tuple{typeof(getglobal)}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#82#87", Nothing, false}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#82#87", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#82#87", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}}}, Zygote.Pullback{Tuple{typeof(PEPSKit.ctmrg_iter), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRG}, Any}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}}}}, x::CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}})
@ KrylovKit ~/.julia/packages/KrylovKit/r8GLV/src/apply.jl:2
[13] linsolve(operator::Function, b::CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, x₀::CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, alg::KrylovKit.GMRES{KrylovKit.ModifiedGramSchmidt2, Float64}, a₀::Int64, a₁::Int64)
@ KrylovKit ~/.julia/packages/KrylovKit/r8GLV/src/linsolve/gmres.jl:3
[14] #linsolve#79
@ ~/.julia/packages/KrylovKit/r8GLV/src/linsolve/linsolve.jl:104 [inlined]
[15] linsolve (repeats 2 times)
@ ~/.julia/packages/KrylovKit/r8GLV/src/linsolve/linsolve.jl:98 [inlined]
[16] fpgrad(∂F∂x::CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, ∂f∂x::PEPSKit.var"#∂f∂x#118"{Zygote.var"#75#76"{Zygote.Pullback{Tuple{PEPSKit.var"#115#116"{CTMRG}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:ctmalg, Zygote.Context{false}, PEPSKit.var"#115#116"{CTMRG}, CTMRG}}, Zygote.Pullback{Tuple{typeof(PEPSKit.gauge_fix), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#83#88", Nothing, false}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Nothing, false}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, 1, Tuple{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Zygote.Pullback{Tuple{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Tuple{Int64, Int64, Int64}}, Any}}, 3}}, Nothing}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#86#91", Nothing, false}}, Zygote.Pullback{Tuple{typeof(PEPSKit.fix_relative_phases), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, 3}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:corners, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#85#90"}, PEPSKit.var"#85#90"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#85#90", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#85#90", Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}}}, 3}}, Nothing}}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing, Nothing, Nothing}}, Zygote.var"#2929#back#732"{Zygote.var"#product_pullback#731"{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#85#90", Nothing, false}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#83#88", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#83#88", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#86#91"}, PEPSKit.var"#86#91"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#86#91", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#86#91", Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}}}}, 3}}, Nothing}}}, Zygote.ZBack{PEPSKit.var"#ctmrgenv_pullback#62"}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(getproperty), Module, Symbol}, Tuple{Zygote.Pullback{Tuple{typeof(getglobal), Module, Symbol}, Tuple{typeof(getglobal)}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#82#87", Nothing, false}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#82#87", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#82#87", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}}}, Zygote.Pullback{Tuple{typeof(PEPSKit.ctmrg_iter), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRG}, Any}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}}}, ∂f∂A::PEPSKit.var"#∂f∂A#117"{Zygote.var"#75#76"{Zygote.Pullback{Tuple{PEPSKit.var"#115#116"{CTMRG}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:ctmalg, Zygote.Context{false}, PEPSKit.var"#115#116"{CTMRG}, CTMRG}}, Zygote.Pullback{Tuple{typeof(PEPSKit.gauge_fix), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#83#88", Nothing, false}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Nothing, false}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, 1, Tuple{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Zygote.Pullback{Tuple{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Tuple{Int64, Int64, Int64}}, Any}}, 3}}, Nothing}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#86#91", Nothing, false}}, Zygote.Pullback{Tuple{typeof(PEPSKit.fix_relative_phases), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, 3}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:corners, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#85#90"}, PEPSKit.var"#85#90"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#85#90", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#85#90", Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}}}, 3}}, Nothing}}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing, Nothing, Nothing}}, Zygote.var"#2929#back#732"{Zygote.var"#product_pullback#731"{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#85#90", Nothing, false}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#83#88", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#83#88", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#86#91"}, PEPSKit.var"#86#91"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#86#91", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#86#91", Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}}}}, 3}}, Nothing}}}, Zygote.ZBack{PEPSKit.var"#ctmrgenv_pullback#62"}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(getproperty), Module, Symbol}, Tuple{Zygote.Pullback{Tuple{typeof(getglobal), Module, Symbol}, Tuple{typeof(getglobal)}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#82#87", Nothing, false}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#82#87", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#82#87", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}}}, Zygote.Pullback{Tuple{typeof(PEPSKit.ctmrg_iter), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRG}, Any}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}}}, y₀::CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, alg::PEPSOptimize{LinSolve})
@ PEPSKit ~/repos/PEPSKit.jl/src/algorithms/peps_opt.jl:134
[17] (::PEPSKit.var"#costfun!_pullback#119"{PEPSOptimize{LinSolve}, PEPSKit.var"#∂f∂x#118"{Zygote.var"#75#76"{Zygote.Pullback{Tuple{PEPSKit.var"#115#116"{CTMRG}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:ctmalg, Zygote.Context{false}, PEPSKit.var"#115#116"{CTMRG}, CTMRG}}, Zygote.Pullback{Tuple{typeof(PEPSKit.gauge_fix), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#83#88", Nothing, false}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Nothing, false}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, 1, Tuple{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Zygote.Pullback{Tuple{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Tuple{Int64, Int64, Int64}}, Any}}, 3}}, Nothing}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#86#91", Nothing, false}}, Zygote.Pullback{Tuple{typeof(PEPSKit.fix_relative_phases), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, 3}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:corners, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#85#90"}, PEPSKit.var"#85#90"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#85#90", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#85#90", Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}}}, 3}}, Nothing}}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing, Nothing, Nothing}}, Zygote.var"#2929#back#732"{Zygote.var"#product_pullback#731"{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#85#90", Nothing, false}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#83#88", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#83#88", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#86#91"}, PEPSKit.var"#86#91"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#86#91", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#86#91", Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}}}}, 3}}, Nothing}}}, Zygote.ZBack{PEPSKit.var"#ctmrgenv_pullback#62"}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(getproperty), Module, Symbol}, Tuple{Zygote.Pullback{Tuple{typeof(getglobal), Module, Symbol}, Tuple{typeof(getglobal)}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#82#87", Nothing, false}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#82#87", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#82#87", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}}}, Zygote.Pullback{Tuple{typeof(PEPSKit.ctmrg_iter), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRG}, Any}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}}}, PEPSKit.var"#∂f∂A#117"{Zygote.var"#75#76"{Zygote.Pullback{Tuple{PEPSKit.var"#115#116"{CTMRG}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:ctmalg, Zygote.Context{false}, PEPSKit.var"#115#116"{CTMRG}, CTMRG}}, Zygote.Pullback{Tuple{typeof(PEPSKit.gauge_fix), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#83#88", Nothing, false}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Nothing, false}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, 1, Tuple{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Zygote.Pullback{Tuple{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Tuple{Int64, Int64, Int64}}, Any}}, 3}}, Nothing}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#86#91", Nothing, false}}, Zygote.Pullback{Tuple{typeof(PEPSKit.fix_relative_phases), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, 3}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:corners, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#85#90"}, PEPSKit.var"#85#90"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#85#90", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#85#90", Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}}}, 3}}, Nothing}}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing, Nothing, Nothing}}, Zygote.var"#2929#back#732"{Zygote.var"#product_pullback#731"{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#85#90", Nothing, false}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#83#88", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#83#88", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#86#91"}, PEPSKit.var"#86#91"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#86#91", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#86#91", Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}}}}, 3}}, Nothing}}}, Zygote.ZBack{PEPSKit.var"#ctmrgenv_pullback#62"}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(getproperty), Module, Symbol}, Tuple{Zygote.Pullback{Tuple{typeof(getglobal), Module, Symbol}, Tuple{typeof(getglobal)}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#82#87", Nothing, false}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#82#87", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#82#87", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}}}, Zygote.Pullback{Tuple{typeof(PEPSKit.ctmrg_iter), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRG}, Any}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}})(#unused#::Float64)
@ PEPSKit ~/repos/PEPSKit.jl/src/algorithms/peps_opt.jl:77
[18] (::Zygote.ZBack{PEPSKit.var"#costfun!_pullback#119"{PEPSOptimize{LinSolve}, PEPSKit.var"#∂f∂x#118"{Zygote.var"#75#76"{Zygote.Pullback{Tuple{PEPSKit.var"#115#116"{CTMRG}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:ctmalg, Zygote.Context{false}, PEPSKit.var"#115#116"{CTMRG}, CTMRG}}, Zygote.Pullback{Tuple{typeof(PEPSKit.gauge_fix), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#83#88", Nothing, false}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Nothing, false}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, 1, Tuple{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Zygote.Pullback{Tuple{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Tuple{Int64, Int64, Int64}}, Any}}, 3}}, Nothing}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#86#91", Nothing, false}}, Zygote.Pullback{Tuple{typeof(PEPSKit.fix_relative_phases), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, 3}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:corners, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#85#90"}, PEPSKit.var"#85#90"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#85#90", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#85#90", Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}}}, 3}}, Nothing}}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing, Nothing, Nothing}}, Zygote.var"#2929#back#732"{Zygote.var"#product_pullback#731"{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#85#90", Nothing, false}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#83#88", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#83#88", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#86#91"}, PEPSKit.var"#86#91"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#86#91", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#86#91", Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}}}}, 3}}, Nothing}}}, Zygote.ZBack{PEPSKit.var"#ctmrgenv_pullback#62"}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(getproperty), Module, Symbol}, Tuple{Zygote.Pullback{Tuple{typeof(getglobal), Module, Symbol}, Tuple{typeof(getglobal)}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#82#87", Nothing, false}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#82#87", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#82#87", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}}}, Zygote.Pullback{Tuple{typeof(PEPSKit.ctmrg_iter), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRG}, Any}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}}}, PEPSKit.var"#∂f∂A#117"{Zygote.var"#75#76"{Zygote.Pullback{Tuple{PEPSKit.var"#115#116"{CTMRG}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:ctmalg, Zygote.Context{false}, PEPSKit.var"#115#116"{CTMRG}, CTMRG}}, Zygote.Pullback{Tuple{typeof(PEPSKit.gauge_fix), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#83#88", Nothing, false}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Nothing, false}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, 1, Tuple{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Zygote.Pullback{Tuple{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Tuple{Int64, Int64, Int64}}, Any}}, 3}}, Nothing}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#86#91", Nothing, false}}, Zygote.Pullback{Tuple{typeof(PEPSKit.fix_relative_phases), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, 3}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:corners, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#85#90"}, PEPSKit.var"#85#90"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#85#90", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#85#90", Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}}}, 3}}, Nothing}}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing, Nothing, Nothing}}, Zygote.var"#2929#back#732"{Zygote.var"#product_pullback#731"{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#85#90", Nothing, false}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#83#88", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#83#88", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#86#91"}, PEPSKit.var"#86#91"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#86#91", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#86#91", Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}}}}, 3}}, Nothing}}}, Zygote.ZBack{PEPSKit.var"#ctmrgenv_pullback#62"}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(getproperty), Module, Symbol}, Tuple{Zygote.Pullback{Tuple{typeof(getglobal), Module, Symbol}, Tuple{typeof(getglobal)}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#82#87", Nothing, false}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#82#87", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#82#87", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}}}, Zygote.Pullback{Tuple{typeof(PEPSKit.ctmrg_iter), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRG}, Any}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}})(dy::Float64)
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/chainrules.jl:211
[19] (::Zygote.var"#75#76"{Zygote.ZBack{PEPSKit.var"#costfun!_pullback#119"{PEPSOptimize{LinSolve}, PEPSKit.var"#∂f∂x#118"{Zygote.var"#75#76"{Zygote.Pullback{Tuple{PEPSKit.var"#115#116"{CTMRG}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:ctmalg, Zygote.Context{false}, PEPSKit.var"#115#116"{CTMRG}, CTMRG}}, Zygote.Pullback{Tuple{typeof(PEPSKit.gauge_fix), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#83#88", Nothing, false}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Nothing, false}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, 1, Tuple{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Zygote.Pullback{Tuple{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Tuple{Int64, Int64, Int64}}, Any}}, 3}}, Nothing}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#86#91", Nothing, false}}, Zygote.Pullback{Tuple{typeof(PEPSKit.fix_relative_phases), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, 3}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:corners, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#85#90"}, PEPSKit.var"#85#90"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#85#90", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#85#90", Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}}}, 3}}, Nothing}}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing, Nothing, Nothing}}, Zygote.var"#2929#back#732"{Zygote.var"#product_pullback#731"{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#85#90", Nothing, false}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#83#88", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#83#88", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#86#91"}, PEPSKit.var"#86#91"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#86#91", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#86#91", Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}}}}, 3}}, Nothing}}}, Zygote.ZBack{PEPSKit.var"#ctmrgenv_pullback#62"}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(getproperty), Module, Symbol}, Tuple{Zygote.Pullback{Tuple{typeof(getglobal), Module, Symbol}, Tuple{typeof(getglobal)}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#82#87", Nothing, false}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#82#87", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#82#87", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}}}, Zygote.Pullback{Tuple{typeof(PEPSKit.ctmrg_iter), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRG}, Any}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}}}, PEPSKit.var"#∂f∂A#117"{Zygote.var"#75#76"{Zygote.Pullback{Tuple{PEPSKit.var"#115#116"{CTMRG}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:ctmalg, Zygote.Context{false}, PEPSKit.var"#115#116"{CTMRG}, CTMRG}}, Zygote.Pullback{Tuple{typeof(PEPSKit.gauge_fix), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#83#88", Nothing, false}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Nothing, false}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, 1, Tuple{Base.Iterators.ProductIterator{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Zygote.Pullback{Tuple{PEPSKit.var"#84#89"{CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{Matrix{ComplexF64}, 3}, Array{Matrix{ComplexF64}, 3}}, Tuple{Int64, Int64, Int64}}, Any}}, 3}}, Nothing}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#86#91", Nothing, false}}, Zygote.Pullback{Tuple{typeof(PEPSKit.fix_relative_phases), CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TensorMap{ComplexSpace, 2, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, 3}}, Any}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:corners, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}}, PEPSKit.var"#85#90", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#85#90"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#85#90"}, PEPSKit.var"#85#90"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#85#90", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#85#90", Tuple{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#tr_pullback#50"{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}}}}}}, 3}}, Nothing}}}, Zygote.var"#2173#back#293"{Zygote.var"#291#292"{Tuple{Tuple{Nothing, Nothing, Nothing}}, Zygote.var"#2929#back#732"{Zygote.var"#product_pullback#731"{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#85#90", Nothing, false}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#83#88", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#83#88", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}, Zygote.Pullback{Tuple{typeof(map), PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}}, PEPSKit.var"#86#91", Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Zygote.var"#2214#back#313"{Zygote.Jnew{Base.Generator{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, PEPSKit.var"#86#91"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{PEPSKit.var"#86#91"}, PEPSKit.var"#86#91"}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#423"}}}}}, Zygote.var"#collect_pullback#705"{Zygote.var"#map_back#667"{PEPSKit.var"#86#91", 1, Tuple{Base.Iterators.Zip{Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Zygote.Pullback{Tuple{PEPSKit.var"#86#91", Tuple{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#245"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#/_pullback#1319"{ComplexF64, ComplexF64, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#pullback#80"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Tuple{Tuple{Int64, Int64}, Tuple{Int64, Int64}}, Symbol, VectorInterface.One, VectorInterface.Zero, Tuple{}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Number, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, NamedTuple{(), Tuple{}}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#times_pullback#40"{ComplexF64, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensoralloc_add_pullback#23"{Tuple{DataType, Tuple{Tuple{}, Tuple{}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, Symbol, Bool}}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorscalar_pullback#49"{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.Pullback{Tuple{typeof(scalartype), TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(scalartype), Type{ComplexF64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(storagetype), Type{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.var"#2017#back#204"{typeof(identity)}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, Zygote.ZBack{ChainRules.var"#sign_pullback#1328"{ComplexF64, Float64}}, Zygote.ZBack{TensorOperationsChainRulesCoreExt.var"#tensorfree!_pullback#47"{Tuple{TensorMap{ComplexSpace, 0, 0, Trivial, Matrix{ComplexF64}, Nothing, Nothing}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Int64}}}}}, 3}}, Nothing}}}, Zygote.ZBack{PEPSKit.var"#ctmrgenv_pullback#62"}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.Pullback{Tuple{typeof(getproperty), Module, Symbol}, Tuple{Zygote.Pullback{Tuple{typeof(getglobal), Module, Symbol}, Tuple{typeof(getglobal)}}}}, Zygote.var"#2184#back#303"{Zygote.var"#back#302"{:edges, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2214#back#313"{Zygote.Jnew{PEPSKit.var"#82#87", Nothing, false}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2961#back#750"{Zygote.var"#zip_pullback#749"{Tuple{Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#back#246"{Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 2, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}}}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, Array{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, 3}}}, Zygote.var"#2849#back#673"{Zygote.var"#map_back#667"{PEPSKit.var"#82#87", 1, Tuple{Array{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}, 3}}, Tuple{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, Array{Tuple{Matrix{ComplexF64}, Zygote.Pullback{Tuple{PEPSKit.var"#82#87", TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#getindex_pullback#1580"{Array{ComplexF64, 4}, Tuple{Colon, Int64, Int64, Colon}, NTuple{4, ChainRulesCore.NoTangent}}}, Zygote.ZBack{TensorKitChainRulesCoreExt.var"#convert_pullback#22"{TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}, 3}}}}}, Zygote.Pullback{Tuple{typeof(PEPSKit.ctmrg_iter), InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, CTMRG}, Any}, Zygote.var"#2033#back#213"{Zygote.var"#back#211"{2, 1, Zygote.Context{false}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}}}}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}, InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}}}})(Δ::Float64)
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface.jl:91
[20] gradient(::Function, ::InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, ::Vararg{Any})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface.jl:148
[21] ctmrg_gradient(x::Tuple{InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, H::TrivialTensorMap{ComplexSpace, 2, 2, Matrix{ComplexF64}}, ctmalg::CTMRG, optalg::PEPSOptimize{LinSolve})
@ PEPSKit ~/repos/PEPSKit.jl/src/algorithms/peps_opt.jl:40
[22] #113
@ ~/repos/PEPSKit.jl/src/algorithms/peps_opt.jl:26 [inlined]
[23] optimize(fg::PEPSKit.var"#113#114"{TrivialTensorMap{ComplexSpace, 2, 2, Matrix{ComplexF64}}, CTMRG, PEPSOptimize{LinSolve}}, x::Tuple{InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}}}, alg::LBFGS{Float64, HagerZhangLineSearch{Rational{Int64}}}; precondition::typeof(OptimKit._precondition), finalize!::typeof(OptimKit._finalize!), retract::Function, inner::typeof(PEPSKit.my_inner), transport!::typeof(OptimKit._transport!), scale!::typeof(OptimKit._scale!), add!::typeof(OptimKit._add!), isometrictransport::Bool)
@ OptimKit ~/.julia/packages/OptimKit/xpmbV/src/lbfgs.jl:21
[24] groundsearch(H::TrivialTensorMap{ComplexSpace, 2, 2, Matrix{ComplexF64}}, ctmalg::CTMRG, optalg::PEPSOptimize{LinSolve}, ψinit::InfinitePEPS{TrivialTensorMap{ComplexSpace, 1, 4, Matrix{ComplexF64}}}, envinit::CTMRGEnv{TrivialTensorMap{ComplexSpace, 1, 1, Matrix{ComplexF64}}, TrivialTensorMap{ComplexSpace, 3, 1, Matrix{ComplexF64}}})
@ PEPSKit ~/repos/PEPSKit.jl/src/algorithms/peps_opt.jl:25
[25] top-level scope
@ ~/repos/PEPSKit.jl/examples/heisenberg.jl:45 |
…th AbstractInteractions, unroll gauge-fixing explicitly to fix AD, update ctmrg_gradient to be more efficient
I now gave the With the caveat of shaky gauge-fixing I think this is relatively ready to merge from my side ;) |
Very late to the party, but I also encountered this when messing around with unit cells a while ago and got around it by stupidly commenting out a conversion in the |
Thanks for the clue! I also tried fiddling around with this a bit but I couldn't get it to work for now. |
I made some changes and seem to have gotten a bit lost and what is/is not supposed to be working. I'll just push what I have, and we can revert if I broke something that was not meant to be broken? |
Co-authored-by: Lander Burgelman <39218680+leburgel@users.noreply.github.com>
Thanks for the great additions and refactoring! I checked the code and fixed a few things, so that all the test scripts are runnable again. ( Note that I commented out the code in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've just added some final small tweaks such that the tests run again, this is good to go for me.
(as a small side note, I've now also set up the branch protection rules for the master branch, so all changes will now require a PR with at least 1 approval)
Thanks for the final tweaks! I'll go ahead and delete the branch now. EDIT: Nevermind, apparently I can't delete the branch, I don't know why though. |
Let me check how the permissions work, the organisation thing throws me off :p |
Hmm, still can't delete. I will give it a try later on, but otherwise you can probably also delete the branch :p |
This PR will implement proper differentiation of the CTMRG fixed point. In order to do so, I'm refactoring some parts of the CTMRG code and I'm adding a
PEPSOptimize
algorithm struct that stores all parameters related to PEPS optimization.Since fixed-point differentiation requires element-wise convergence of the environment tensors, I will also add a simple gauge-fixing function.