Skip to content
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

NLopt zero-order algorithms are using Zygote #160

Closed
simonp0420 opened this issue Jul 9, 2023 · 9 comments · Fixed by JuliaNonconvex/NonconvexNLopt.jl#4
Closed

NLopt zero-order algorithms are using Zygote #160

simonp0420 opened this issue Jul 9, 2023 · 9 comments · Fixed by JuliaNonconvex/NonconvexNLopt.jl#4

Comments

@simonp0420
Copy link

This is my first attempt at using Nonconvex.jl and I'm hitting a few hiccups. My objective function is not differentiable so I'm attempting to use 0-order algorithms from NLopt:

using Nonconvex
Nonconvex.@load NLopt
alg = NLoptAlg(:DIRECT)
#alg = NLoptAlg(:COBYLA)  # same resulting error as :DIRECT
options = NLoptOptions()
model = Model()
lb = [12.124, 0.58, 0.85,  0.2]
ub = [12.702, 0.6,  0.95,  0.3]
addvar!(model, lb, ub)
set_objective!(model, v -> objective(v, sinθ, y3, ϵᵣ, opts, weights)) # v is a 4-vector of decision variables
result = optimize(model, alg, 0.5*(lb + ub), options = options)

This produces the following error output:

[ Info: Attempting to load the package NonconvexNLopt.
[ Info: Loading succesful.
ERROR: Mutating arrays is not supported -- called copyto!(Matrix{Float64}, ...)
This error occurs when you ask Zygote to differentiate operations that change
the elements of arrays in place (e.g. setting values with x .= ...)

So it appears that Nonconvex is trying to use Zygote to differentiate my function even though I'm using a 0-order algorithm that doesn't require derivatives. Is there a way to inform Nonconvex that it shouldn't try to get derivative information?

@mohamed82008
Copy link
Member

Should be fixed in the latest release of NonconvexNLopt JuliaRegistries/General#87164.

@mohamed82008
Copy link
Member

Check again in half an hour, update NonconvexNLopt to 0.1.6 and try again.

@mohamed82008
Copy link
Member

If it is still an issue, please re-open this issue

@simonp0420
Copy link
Author

Thanks for the quick response, but it's still failing.
Here is my Package status after updating:

(RotmanLens) pkg> st
Project RotmanLens v1.0.0-DEV
Status `D:\peter\Documents\julia\packages\RotmanLens\Project.toml`
  [39dd38d3] Dierckx v0.5.3
  [bcdb8e00] Metaheuristics v3.3.2
  [01bcebdf] Nonconvex v2.1.2
  [ece49558] NonconvexMetaheuristics v0.1.1
  [b43a31b8] NonconvexNLopt v0.1.6
  [2385ff6c] NonconvexNOMAD v0.1.0
  [75732972] NonconvexSearch v0.1.2
  [90137ffa] StaticArrays v1.6.0
  [37e2e46d] LinearAlgebra

and here is the error listing (I can't copy the entire error listing because it exceeds my terminal's scrollback buffer length):

[8] (::Zygote.Pullback{Tuple{typeof(Base.Broadcast.materialize!), Matrix{Float64}, Matrix{Float64}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Broadcast.Broadcasted}, typeof(identity), Tuple{Matrix{Float64}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{2}}}, typeof(identity), Tuple{Matrix{Float64}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Tuple{Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}, Zygote.Pullback{Tuple{typeof(Core.Typeof), typeof(identity)}, Any}, Zygote.Pullback{Tuple{Type{Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(identity), Tuple{Matrix{Float64}}}}, typeof(identity), Tuple{Matrix{Float64}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Tuple{Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.Pullback{Tuple{typeof(convert), Type{typeof(identity)}, typeof(identity)}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{Tuple{Matrix{Float64}}}, Tuple{Matrix{Float64}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.var"#2214#back#309"{Zygote.Jnew{Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(identity), Tuple{Matrix{Float64}}}, Nothing, false}}}}, Zygote.Pullback{Tuple{typeof(getproperty), Module, Symbol}, Tuple{Zygote.Pullback{Tuple{typeof(getglobal), Module, Symbol}, Tuple{typeof(getglobal)}}}}}}, Zygote.var"#2173#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}}, Zygote.var"#combine_styles_pullback#1162"{Tuple{Nothing, Nothing}}}}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}}}, Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#axes_pullback#303"}, Zygote.ZBack{ChainRules.var"#uninstantiate#1720"}, Zygote.Pullback{Tuple{typeof(Base.Broadcast.materialize!), Matrix{Float64}, Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(identity), Tuple{Matrix{Float64}}}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.Broadcast.materialize!), Base.Broadcast.DefaultArrayStyle{2}, Matrix{Float64}, Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(identity), Tuple{Matrix{Float64}}}}, Tuple{Zygote.var"#2669#back#557"{Zygote.var"#555#556"{Matrix{Float64}}}, Zygote.ZBack{ChainRules.var"#axes_pullback#303"}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:f, Zygote.Context{false}, Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(identity), Tuple{Matrix{Float64}}}, typeof(identity)}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:args, Zygote.Context{false}, Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(identity), Tuple{Matrix{Float64}}}, Tuple{Matrix{Float64}}}}, Zygote.ZBack{ChainRules.var"#uninstantiate#1720"}, Zygote.Pullback{Tuple{Type{Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{2}}}, typeof(identity), Tuple{Matrix{Float64}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Tuple{Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}, Zygote.Pullback{Tuple{typeof(Core.Typeof), typeof(identity)}, Any}, Zygote.Pullback{Tuple{Type{Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(identity), Tuple{Matrix{Float64}}}}, typeof(identity), Tuple{Matrix{Float64}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Tuple{Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.Pullback{Tuple{typeof(convert), Type{typeof(identity)}, typeof(identity)}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{Tuple{Matrix{Float64}}}, Tuple{Matrix{Float64}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.var"#2214#back#309"{Zygote.Jnew{Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(identity), Tuple{Matrix{Float64}}}, Nothing, false}}}}, Zygote.Pullback{Tuple{typeof(getproperty), Module, Symbol}, Tuple{Zygote.Pullback{Tuple{typeof(getglobal), Module, Symbol}, Tuple{typeof(getglobal)}}}}}}}}, Zygote.var"#combine_styles_pullback#1162"{Tuple{Nothing, Nothing, Nothing}}}}}})(Δ::Nothing)
    @ Zygote C:\Users\peter\.julia\packages\Zygote\JeHtr\src\compiler\interface2.jl:0
  [9] Pullback
    @ d:\peter\Documents\julia\packages\RotmanLens\src\functions.jl:430 [inlined]
 [10] (::Zygote.Pullback{Tuple{typeof(RotmanLens.compute_patherror), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Any})(Δ::Matrix{Float64})
    @ Zygote C:\Users\peter\.julia\packages\Zygote\JeHtr\src\compiler\interface2.jl:0
 [11] Pullback
    @ d:\peter\Documents\julia\packages\RotmanLens\sandbox\optimize1.jl:16 [inlined]
 [12] Pullback
    @ d:\peter\Documents\julia\packages\RotmanLens\sandbox\optimize1.jl:42 [inlined]
 [13] (::Zygote.Pullback{Tuple{typeof(objective), Vector{Float64}, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}, Vector{Float64}}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.Pullback{Tuple{typeof(RotmanLens.port_apertures), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}}}, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}}, Any}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.Pullback{Tuple{Type{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ)}}, Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, Tuple{Zygote.Pullback{Tuple{Type{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}}, Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, Tuple{Zygote.var"#2224#back#311"{Zygote.Jnew{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, Nothing, true}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{3}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{NTuple{4, Float64}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Int64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{2}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(RotmanLens.rl_excite), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}}}, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}}, Any}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{4}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Int64}}, Zygote.Pullback{Tuple{typeof(pkpk_patherror), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#extrema_pullback#1464"{Matrix{Float64}, ChainRulesCore.ProjectTo{AbstractArray, NamedTuple{(:element, :axes), Tuple{ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}}}, CartesianIndex{2}, CartesianIndex{2}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.Pullback{Tuple{typeof(RotmanLens.compute_patherror), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Any}, Zygote.ZBack{ChainRules.var"#-_pullback#1335"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Float64}}}}, Zygote.Pullback{Tuple{typeof(ymatch), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xya, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.ZBack{ChainRules.var"#max_pullback#1341"{Bool, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#-_pullback#1335"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.Pullback{Tuple{typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##minimum#820", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xyb, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xyb, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.Pullback{Tuple{typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##maximum#816", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.Pullback{Tuple{typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##maximum#816", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.Pullback{Tuple{typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##minimum#820", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xya, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.ZBack{ChainRules.var"#-_pullback#1335"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#abs_pullback#1328"{Float64, Float64}}, Zygote.ZBack{ChainRules.var"#abs_pullback#1328"{Float64, Float64}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.Pullback{Tuple{typeof(RotmanLens.rl_solve), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}}, Tuple{Zygote.Pullback{Tuple{typeof(RotmanLens.rl_solve!), Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}}, Any}, Zygote.ZBack{ChainRules.var"#similar_pullback#914"{Tuple{StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, DataType}}}, Zygote.ZBack{ChainRules.var"#similar_pullback#914"{Tuple{StepRangeLen{Float64, Float64, Float64, Int64}, DataType}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:sinθ, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}}, Zygote.ZBack{ChainRules.var"#similar_pullback#914"{Tuple{StepRangeLen{Float64, Float64, Float64, Int64}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:y3, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, StepRangeLen{Float64, Float64, Float64, Int64}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:y3, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, StepRangeLen{Float64, Float64, Float64, Int64}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Int64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{3}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(pkpk_amptaper), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#log10_pullback#1325"{Float64, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#/_pullback#1336"{Float64, Float64, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.Pullback{Tuple{typeof(extrema), Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}}, Tuple{Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}, Zygote.Pullback{Tuple{Base.var"##extrema#304", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(extrema), Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Int64, Float64}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:excite, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Transpose{ComplexF64, Matrix{ComplexF64}}}}, Zygote.Pullback{Tuple{Type{Base.Generator}, var"#9#10", Transpose{ComplexF64, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}}, var"#9#10", Transpose{ComplexF64, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(convert), Type{var"#9#10"}, var"#9#10"}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{Transpose{ComplexF64, Matrix{ComplexF64}}}, Transpose{ComplexF64, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#Transpose_mat_pullback#2051"{ChainRulesCore.ProjectTo{AbstractArray, NamedTuple{(:element, :axes), Tuple{ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:parent, Zygote.Context{false}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{ComplexF64}}}, Zygote.var"#1958#back#173"{Zygote.var"#169#172"}, Zygote.Pullback{Tuple{typeof(convert), Type{Matrix{ComplexF64}}, Matrix{ComplexF64}}, Any}}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.var"#2214#back#309"{Zygote.Jnew{Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Float64}}, Zygote.var"#2214#back#309"{Zygote.Jnew{var"#9#10", Nothing, false}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{1}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{4}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(maxspilloverloss), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Int64, Float64}}, Zygote.ZBack{ChainRules.var"#log10_pullback#1325"{Float64, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2214#back#309"{Zygote.Jnew{var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Nothing, false}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:excite, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Transpose{ComplexF64, Matrix{ComplexF64}}}}, Zygote.Pullback{Tuple{typeof(minimum), Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}}, Tuple{Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}, Zygote.Pullback{Tuple{Base.var"##minimum#303", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(minimum), Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}}}, Zygote.Pullback{Tuple{Type{Base.Generator}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Base.OneTo{Int64}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Base.OneTo{Int64}}, Tuple{Zygote.Pullback{Tuple{typeof(convert), Type{var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.OneTo{Int64}}, Base.OneTo{Int64}}, Any}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.var"#2214#back#309"{Zygote.Jnew{Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}}}}}}}}})(Δ::Float64)
    @ Zygote C:\Users\peter\.julia\packages\Zygote\JeHtr\src\compiler\interface2.jl:0
 [14] Pullback
    @ d:\peter\Documents\julia\packages\RotmanLens\sandbox\optimize1.jl:95 [inlined]
 [15] (::Zygote.Pullback{Tuple{var"#13#14", Vector{Float64}}, Tuple{Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, StepRangeLen{Float64, Float64, Float64, Int64}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Int64}}, Zygote.Pullback{Tuple{typeof(objective), Vector{Float64}, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}, Vector{Float64}}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.Pullback{Tuple{typeof(RotmanLens.port_apertures), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}}}, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}}, Any}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.Pullback{Tuple{Type{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ)}}, Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, Tuple{Zygote.Pullback{Tuple{Type{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}}, Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, Tuple{Zygote.var"#2224#back#311"{Zygote.Jnew{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, Nothing, true}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{3}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{NTuple{4, Float64}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Int64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{2}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(RotmanLens.rl_excite), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}}}, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}}, Any}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{4}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Int64}}, Zygote.Pullback{Tuple{typeof(pkpk_patherror), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#extrema_pullback#1464"{Matrix{Float64}, ChainRulesCore.ProjectTo{AbstractArray, NamedTuple{(:element, :axes), Tuple{ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}}}, CartesianIndex{2}, CartesianIndex{2}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.Pullback{Tuple{typeof(RotmanLens.compute_patherror), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Any}, Zygote.ZBack{ChainRules.var"#-_pullback#1335"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Float64}}}}, Zygote.Pullback{Tuple{typeof(ymatch), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xya, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.ZBack{ChainRules.var"#max_pullback#1341"{Bool, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#-_pullback#1335"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.Pullback{Tuple{typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##minimum#820", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xyb, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xyb, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.Pullback{Tuple{typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##maximum#816", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.Pullback{Tuple{typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##maximum#816", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.Pullback{Tuple{typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##minimum#820", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xya, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.ZBack{ChainRules.var"#-_pullback#1335"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#abs_pullback#1328"{Float64, Float64}}, Zygote.ZBack{ChainRules.var"#abs_pullback#1328"{Float64, Float64}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.Pullback{Tuple{typeof(RotmanLens.rl_solve), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}}, Tuple{Zygote.Pullback{Tuple{typeof(RotmanLens.rl_solve!), Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}}, Any}, Zygote.ZBack{ChainRules.var"#similar_pullback#914"{Tuple{StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, DataType}}}, Zygote.ZBack{ChainRules.var"#similar_pullback#914"{Tuple{StepRangeLen{Float64, Float64, Float64, Int64}, DataType}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:sinθ, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}}, Zygote.ZBack{ChainRules.var"#similar_pullback#914"{Tuple{StepRangeLen{Float64, Float64, Float64, Int64}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:y3, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, StepRangeLen{Float64, Float64, Float64, Int64}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:y3, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, StepRangeLen{Float64, Float64, Float64, Int64}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Int64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{3}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(pkpk_amptaper), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#log10_pullback#1325"{Float64, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#/_pullback#1336"{Float64, Float64, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.Pullback{Tuple{typeof(extrema), Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}}, Tuple{Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}, Zygote.Pullback{Tuple{Base.var"##extrema#304", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(extrema), Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Int64, Float64}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:excite, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Transpose{ComplexF64, Matrix{ComplexF64}}}}, Zygote.Pullback{Tuple{Type{Base.Generator}, var"#9#10", Transpose{ComplexF64, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}}, var"#9#10", Transpose{ComplexF64, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(convert), Type{var"#9#10"}, var"#9#10"}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{Transpose{ComplexF64, Matrix{ComplexF64}}}, Transpose{ComplexF64, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#Transpose_mat_pullback#2051"{ChainRulesCore.ProjectTo{AbstractArray, NamedTuple{(:element, :axes), Tuple{ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:parent, Zygote.Context{false}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{ComplexF64}}}, Zygote.var"#1958#back#173"{Zygote.var"#169#172"}, Zygote.Pullback{Tuple{typeof(convert), Type{Matrix{ComplexF64}}, Matrix{ComplexF64}}, Any}}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.var"#2214#back#309"{Zygote.Jnew{Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Float64}}, Zygote.var"#2214#back#309"{Zygote.Jnew{var"#9#10", Nothing, false}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{1}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{4}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(maxspilloverloss), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Int64, Float64}}, Zygote.ZBack{ChainRules.var"#log10_pullback#1325"{Float64, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2214#back#309"{Zygote.Jnew{var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Nothing, false}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:excite, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Transpose{ComplexF64, Matrix{ComplexF64}}}}, Zygote.Pullback{Tuple{typeof(minimum), Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}}, Tuple{Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}, Zygote.Pullback{Tuple{Base.var"##minimum#303", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(minimum), Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}}}, Zygote.Pullback{Tuple{Type{Base.Generator}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Base.OneTo{Int64}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Base.OneTo{Int64}}, Tuple{Zygote.Pullback{Tuple{typeof(convert), Type{var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.OneTo{Int64}}, Base.OneTo{Int64}}, Any}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.var"#2214#back#309"{Zygote.Jnew{Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}}}}}}}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Vector{Float64}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}}}})(Δ::Float64)
    @ Zygote C:\Users\peter\.julia\packages\Zygote\JeHtr\src\compiler\interface2.jl:0
 [16] #287
    @ C:\Users\peter\.julia\packages\Zygote\JeHtr\src\lib\lib.jl:206 [inlined]
 [17] (::Zygote.var"#2173#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}}, Zygote.Pullback{Tuple{var"#13#14", Vector{Float64}}, Tuple{Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, StepRangeLen{Float64, Float64, Float64, Int64}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Int64}}, Zygote.Pullback{Tuple{typeof(objective), Vector{Float64}, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}, Vector{Float64}}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.Pullback{Tuple{typeof(RotmanLens.port_apertures), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}}}, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}}, Any}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.Pullback{Tuple{Type{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ)}}, Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, Tuple{Zygote.Pullback{Tuple{Type{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}}, Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, Tuple{Zygote.var"#2224#back#311"{Zygote.Jnew{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, Nothing, true}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{3}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{NTuple{4, Float64}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Int64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{2}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(RotmanLens.rl_excite), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}}}, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}}, Any}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{4}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Int64}}, Zygote.Pullback{Tuple{typeof(pkpk_patherror), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#extrema_pullback#1464"{Matrix{Float64}, ChainRulesCore.ProjectTo{AbstractArray, NamedTuple{(:element, :axes), Tuple{ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}}}, CartesianIndex{2}, CartesianIndex{2}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.Pullback{Tuple{typeof(RotmanLens.compute_patherror), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Any}, Zygote.ZBack{ChainRules.var"#-_pullback#1335"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Float64}}}}, Zygote.Pullback{Tuple{typeof(ymatch), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xya, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.ZBack{ChainRules.var"#max_pullback#1341"{Bool, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#-_pullback#1335"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.Pullback{Tuple{typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##minimum#820", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xyb, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xyb, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.Pullback{Tuple{typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##maximum#816", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.Pullback{Tuple{typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##maximum#816", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.Pullback{Tuple{typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##minimum#820", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xya, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.ZBack{ChainRules.var"#-_pullback#1335"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#abs_pullback#1328"{Float64, Float64}}, Zygote.ZBack{ChainRules.var"#abs_pullback#1328"{Float64, Float64}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.Pullback{Tuple{typeof(RotmanLens.rl_solve), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}}, Tuple{Zygote.Pullback{Tuple{typeof(RotmanLens.rl_solve!), Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}}, Any}, Zygote.ZBack{ChainRules.var"#similar_pullback#914"{Tuple{StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, DataType}}}, Zygote.ZBack{ChainRules.var"#similar_pullback#914"{Tuple{StepRangeLen{Float64, Float64, Float64, Int64}, DataType}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:sinθ, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}}, Zygote.ZBack{ChainRules.var"#similar_pullback#914"{Tuple{StepRangeLen{Float64, Float64, Float64, Int64}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:y3, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, StepRangeLen{Float64, Float64, Float64, Int64}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:y3, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, StepRangeLen{Float64, Float64, Float64, Int64}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Int64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{3}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(pkpk_amptaper), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#log10_pullback#1325"{Float64, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#/_pullback#1336"{Float64, Float64, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.Pullback{Tuple{typeof(extrema), Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}}, Tuple{Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}, Zygote.Pullback{Tuple{Base.var"##extrema#304", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(extrema), Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Int64, Float64}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:excite, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Transpose{ComplexF64, Matrix{ComplexF64}}}}, Zygote.Pullback{Tuple{Type{Base.Generator}, var"#9#10", Transpose{ComplexF64, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}}, var"#9#10", Transpose{ComplexF64, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(convert), Type{var"#9#10"}, var"#9#10"}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{Transpose{ComplexF64, Matrix{ComplexF64}}}, Transpose{ComplexF64, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#Transpose_mat_pullback#2051"{ChainRulesCore.ProjectTo{AbstractArray, NamedTuple{(:element, :axes), Tuple{ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:parent, Zygote.Context{false}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{ComplexF64}}}, Zygote.var"#1958#back#173"{Zygote.var"#169#172"}, Zygote.Pullback{Tuple{typeof(convert), Type{Matrix{ComplexF64}}, Matrix{ComplexF64}}, Any}}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.var"#2214#back#309"{Zygote.Jnew{Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Float64}}, Zygote.var"#2214#back#309"{Zygote.Jnew{var"#9#10", Nothing, false}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{1}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{4}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(maxspilloverloss), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Int64, Float64}}, Zygote.ZBack{ChainRules.var"#log10_pullback#1325"{Float64, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2214#back#309"{Zygote.Jnew{var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Nothing, false}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:excite, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Transpose{ComplexF64, Matrix{ComplexF64}}}}, Zygote.Pullback{Tuple{typeof(minimum), Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}}, Tuple{Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}, Zygote.Pullback{Tuple{Base.var"##minimum#303", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(minimum), Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}}}, Zygote.Pullback{Tuple{Type{Base.Generator}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Base.OneTo{Int64}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Base.OneTo{Int64}}, Tuple{Zygote.Pullback{Tuple{typeof(convert), Type{var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.OneTo{Int64}}, Base.OneTo{Int64}}, Any}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.var"#2214#back#309"{Zygote.Jnew{Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}}}}}}}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Vector{Float64}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}}}}}})(Δ::Float64)
    @ Zygote C:\Users\peter\.julia\packages\ZygoteRules\OgCVT\src\adjoint.jl:71
 [18] Pullback
    @ C:\Users\peter\.julia\packages\NonconvexCore\HPl1t\src\models\vec_model.jl:86 [inlined]
 [19] (::Zygote.Pullback{Tuple{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Vector{Float64}}, Tuple{Zygote.var"#2173#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}}, Zygote.Pullback{Tuple{var"#13#14", Vector{Float64}}, Tuple{Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, StepRangeLen{Float64, Float64, Float64, Int64}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Int64}}, Zygote.Pullback{Tuple{typeof(objective), Vector{Float64}, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}, Vector{Float64}}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.Pullback{Tuple{typeof(RotmanLens.port_apertures), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}}}, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}}, Any}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.Pullback{Tuple{Type{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ)}}, Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, Tuple{Zygote.Pullback{Tuple{Type{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}}, Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, Tuple{Zygote.var"#2224#back#311"{Zygote.Jnew{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, Nothing, true}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{3}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{NTuple{4, Float64}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Int64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{2}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(RotmanLens.rl_excite), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}}}, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}}, Any}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{4}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Int64}}, Zygote.Pullback{Tuple{typeof(pkpk_patherror), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#extrema_pullback#1464"{Matrix{Float64}, ChainRulesCore.ProjectTo{AbstractArray, NamedTuple{(:element, :axes), Tuple{ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}}}, CartesianIndex{2}, CartesianIndex{2}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.Pullback{Tuple{typeof(RotmanLens.compute_patherror), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Any}, Zygote.ZBack{ChainRules.var"#-_pullback#1335"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Float64}}}}, Zygote.Pullback{Tuple{typeof(ymatch), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xya, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.ZBack{ChainRules.var"#max_pullback#1341"{Bool, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#-_pullback#1335"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.Pullback{Tuple{typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##minimum#820", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xyb, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xyb, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.Pullback{Tuple{typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##maximum#816", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.Pullback{Tuple{typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##maximum#816", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.Pullback{Tuple{typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##minimum#820", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xya, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.ZBack{ChainRules.var"#-_pullback#1335"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#abs_pullback#1328"{Float64, Float64}}, Zygote.ZBack{ChainRules.var"#abs_pullback#1328"{Float64, Float64}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.Pullback{Tuple{typeof(RotmanLens.rl_solve), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}}, Tuple{Zygote.Pullback{Tuple{typeof(RotmanLens.rl_solve!), Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}}, Any}, Zygote.ZBack{ChainRules.var"#similar_pullback#914"{Tuple{StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, DataType}}}, Zygote.ZBack{ChainRules.var"#similar_pullback#914"{Tuple{StepRangeLen{Float64, Float64, Float64, Int64}, DataType}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:sinθ, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}}, Zygote.ZBack{ChainRules.var"#similar_pullback#914"{Tuple{StepRangeLen{Float64, Float64, Float64, Int64}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:y3, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, StepRangeLen{Float64, Float64, Float64, Int64}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:y3, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, StepRangeLen{Float64, Float64, Float64, Int64}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Int64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{3}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(pkpk_amptaper), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#log10_pullback#1325"{Float64, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#/_pullback#1336"{Float64, Float64, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.Pullback{Tuple{typeof(extrema), Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}}, Tuple{Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}, Zygote.Pullback{Tuple{Base.var"##extrema#304", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(extrema), Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Int64, Float64}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:excite, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Transpose{ComplexF64, Matrix{ComplexF64}}}}, Zygote.Pullback{Tuple{Type{Base.Generator}, var"#9#10", Transpose{ComplexF64, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}}, var"#9#10", Transpose{ComplexF64, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(convert), Type{var"#9#10"}, var"#9#10"}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{Transpose{ComplexF64, Matrix{ComplexF64}}}, Transpose{ComplexF64, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#Transpose_mat_pullback#2051"{ChainRulesCore.ProjectTo{AbstractArray, NamedTuple{(:element, :axes), Tuple{ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:parent, Zygote.Context{false}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{ComplexF64}}}, Zygote.var"#1958#back#173"{Zygote.var"#169#172"}, Zygote.Pullback{Tuple{typeof(convert), Type{Matrix{ComplexF64}}, Matrix{ComplexF64}}, Any}}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.var"#2214#back#309"{Zygote.Jnew{Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Float64}}, Zygote.var"#2214#back#309"{Zygote.Jnew{var"#9#10", Nothing, false}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{1}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{4}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(maxspilloverloss), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Int64, Float64}}, Zygote.ZBack{ChainRules.var"#log10_pullback#1325"{Float64, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2214#back#309"{Zygote.Jnew{var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Nothing, false}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:excite, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Transpose{ComplexF64, Matrix{ComplexF64}}}}, Zygote.Pullback{Tuple{typeof(minimum), Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}}, Tuple{Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}, Zygote.Pullback{Tuple{Base.var"##minimum#303", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(minimum), Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}}}, Zygote.Pullback{Tuple{Type{Base.Generator}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Base.OneTo{Int64}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Base.OneTo{Int64}}, Tuple{Zygote.Pullback{Tuple{typeof(convert), Type{var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.OneTo{Int64}}, Base.OneTo{Int64}}, Any}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.var"#2214#back#309"{Zygote.Jnew{Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}}}}}}}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Vector{Float64}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:unflattenx, Zygote.Context{false}, NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}}, Zygote.ZBack{DifferentiableFlatten.var"#55#56"{DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}, Tuple{Vector{Float64}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Float64, Val{1}}, Tuple{Zygote.Pullback{Tuple{typeof(getindex), Float64, Int64}, Any}}}, Zygote.Pullback{Tuple{typeof(DifferentiableFlatten.maybeflatten), Float64}, Tuple{}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:f, Zygote.Context{false}, NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, var"#13#14"}}}})(Δ::Float64)
    @ Zygote C:\Users\peter\.julia\packages\Zygote\JeHtr\src\compiler\interface2.jl:0
 [20] #287
    @ C:\Users\peter\.julia\packages\Zygote\JeHtr\src\lib\lib.jl:206 [inlined]
 [21] (::Zygote.var"#2173#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}}, Zygote.Pullback{Tuple{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Vector{Float64}}, Tuple{Zygote.var"#2173#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}}, Zygote.Pullback{Tuple{var"#13#14", Vector{Float64}}, Tuple{Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, StepRangeLen{Float64, Float64, Float64, Int64}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Int64}}, Zygote.Pullback{Tuple{typeof(objective), Vector{Float64}, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}, Vector{Float64}}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.Pullback{Tuple{typeof(RotmanLens.port_apertures), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}}}, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}}, Any}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.Pullback{Tuple{Type{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ)}}, Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, Tuple{Zygote.Pullback{Tuple{Type{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}}, Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, Tuple{Zygote.var"#2224#back#311"{Zygote.Jnew{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, Nothing, true}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{3}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{NTuple{4, Float64}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Int64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{2}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(RotmanLens.rl_excite), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}}}, NamedTuple{(:ap_split, :ap_point, :ap_compensate, :bp_split, :bp_point, :bp_compensate, :ap_apex, :bp_apex, :ap_length, :bp_length, :λ), Tuple{Int64, Float64, Bool, Int64, Float64, Bool, Vararg{Float64, 5}}}}, Any}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{4}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Int64}}, Zygote.Pullback{Tuple{typeof(pkpk_patherror), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#extrema_pullback#1464"{Matrix{Float64}, ChainRulesCore.ProjectTo{AbstractArray, NamedTuple{(:element, :axes), Tuple{ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}}}, CartesianIndex{2}, CartesianIndex{2}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.Pullback{Tuple{typeof(RotmanLens.compute_patherror), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Any}, Zygote.ZBack{ChainRules.var"#-_pullback#1335"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Float64}}}}, Zygote.Pullback{Tuple{typeof(ymatch), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xya, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.ZBack{ChainRules.var"#max_pullback#1341"{Bool, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#-_pullback#1335"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.Pullback{Tuple{typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##minimum#820", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xyb, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xyb, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.Pullback{Tuple{typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##maximum#816", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.Pullback{Tuple{typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##maximum#816", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(maximum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.Pullback{Tuple{typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Tuple{Zygote.Pullback{Tuple{Base.var"##minimum#820", Colon, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(minimum), typeof(last), Vector{StaticArraysCore.SVector{2, Float64}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:xya, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Vector{StaticArraysCore.SVector{2, Float64}}}}, Zygote.ZBack{ChainRules.var"#-_pullback#1335"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#abs_pullback#1328"{Float64, Float64}}, Zygote.ZBack{ChainRules.var"#abs_pullback#1328"{Float64, Float64}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.Pullback{Tuple{typeof(RotmanLens.rl_solve), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}}, Tuple{Zygote.Pullback{Tuple{typeof(RotmanLens.rl_solve!), Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}}, Any}, Zygote.ZBack{ChainRules.var"#similar_pullback#914"{Tuple{StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, DataType}}}, Zygote.ZBack{ChainRules.var"#similar_pullback#914"{Tuple{StepRangeLen{Float64, Float64, Float64, Int64}, DataType}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:sinθ, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}}, Zygote.ZBack{ChainRules.var"#similar_pullback#914"{Tuple{StepRangeLen{Float64, Float64, Float64, Int64}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:y3, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, StepRangeLen{Float64, Float64, Float64, Int64}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:y3, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64}}, StepRangeLen{Float64, Float64, Float64, Int64}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Float64, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Int64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{3}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(pkpk_amptaper), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#log10_pullback#1325"{Float64, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#/_pullback#1336"{Float64, Float64, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.Pullback{Tuple{typeof(extrema), Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}}, Tuple{Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}, Zygote.Pullback{Tuple{Base.var"##extrema#304", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(extrema), Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Int64, Float64}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:excite, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Transpose{ComplexF64, Matrix{ComplexF64}}}}, Zygote.Pullback{Tuple{Type{Base.Generator}, var"#9#10", Transpose{ComplexF64, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}}, var"#9#10", Transpose{ComplexF64, Matrix{ComplexF64}}}, Tuple{Zygote.Pullback{Tuple{typeof(convert), Type{var"#9#10"}, var"#9#10"}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{Transpose{ComplexF64, Matrix{ComplexF64}}}, Transpose{ComplexF64, Matrix{ComplexF64}}}, Tuple{Zygote.ZBack{ChainRules.var"#Transpose_mat_pullback#2051"{ChainRulesCore.ProjectTo{AbstractArray, NamedTuple{(:element, :axes), Tuple{ChainRulesCore.ProjectTo{ComplexF64, NamedTuple{(), Tuple{}}}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:parent, Zygote.Context{false}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{ComplexF64}}}, Zygote.var"#1958#back#173"{Zygote.var"#169#172"}, Zygote.Pullback{Tuple{typeof(convert), Type{Matrix{ComplexF64}}, Matrix{ComplexF64}}, Any}}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.var"#2214#back#309"{Zygote.Jnew{Base.Generator{Transpose{ComplexF64, Matrix{ComplexF64}}, var"#9#10"}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}}}}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, Float64}}, Zygote.var"#2033#back#209"{Zygote.var"#back#207"{2, 2, Zygote.Context{false}, Float64}}, Zygote.var"#2214#back#309"{Zygote.Jnew{var"#9#10", Nothing, false}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_indexed_iterate), Vector{Float64}, Val{1}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(Base.indexed_iterate), Vector{Float64}, Int64, Int64}, Tuple{Zygote.var"#2017#back#200"{typeof(identity)}, Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{4}}, Tuple{Zygote.var"#2610#back#529"{Zygote.var"#539#541"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(maxspilloverloss), NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1346"{Int64, Float64}}, Zygote.ZBack{ChainRules.var"#log10_pullback#1325"{Float64, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}, Zygote.ZBack{ChainRules.var"#axes_pullback#305"}, Zygote.var"#2214#back#309"{Zygote.Jnew{var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Nothing, false}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:excite, Zygote.Context{false}, NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}, Transpose{ComplexF64, Matrix{ComplexF64}}}}, Zygote.Pullback{Tuple{typeof(minimum), Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}}, Tuple{Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}, Zygote.Pullback{Tuple{Base.var"##minimum#303", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(minimum), Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}}, Any}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}}}, Zygote.Pullback{Tuple{Type{Base.Generator}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Base.OneTo{Int64}}, Tuple{Zygote.Pullback{Tuple{Type{Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}, Base.OneTo{Int64}}, Tuple{Zygote.Pullback{Tuple{typeof(convert), Type{var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{Base.OneTo{Int64}}, Base.OneTo{Int64}}, Any}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.var"#2214#back#309"{Zygote.Jnew{Base.Generator{Base.OneTo{Int64}, var"#11#12"{NamedTuple{(:f1, :α, :β, :γ, :sinθ, :y3, :ϵᵣ, :xya, :xyb, :w, :ap_xys, :ap_ws, :ap_nxys, :bp_xys, :bp_ws, :bp_nxys, :excite, :ap_comp, :bp_comp), Tuple{Float64, Float64, Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, StepRangeLen{Float64, Float64, Float64, Int64}, Int64, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{StaticArraysCore.SVector{2, Float64}}, Vector{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{StaticArraysCore.SVector{2, Float64}}, Matrix{Float64}, Matrix{StaticArraysCore.SVector{2, Float64}}, Transpose{ComplexF64, Matrix{ComplexF64}}, Matrix{Float64}, Matrix{Float64}}}}}, Nothing, false}}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}}}}}}}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Vector{Float64}}}, Zygote.var"#1990#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:unflattenx, Zygote.Context{false}, NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}}, Zygote.ZBack{DifferentiableFlatten.var"#55#56"{DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}, Tuple{Vector{Float64}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Float64, Val{1}}, Tuple{Zygote.Pullback{Tuple{typeof(getindex), Float64, Int64}, Any}}}, Zygote.Pullback{Tuple{typeof(DifferentiableFlatten.maybeflatten), Float64}, Tuple{}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:f, Zygote.Context{false}, NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, var"#13#14"}}}}}})(Δ::Float64)
    @ Zygote C:\Users\peter\.julia\packages\ZygoteRules\OgCVT\src\adjoint.jl:71
 [22] Pullback
    @ C:\Users\peter\.julia\packages\NonconvexCore\HPl1t\src\functions\functions.jl:170 [inlined]
 [23] (::Zygote.Pullback{Tuple{NonconvexCore.var"##_#8", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}, Vector{Float64}}, Any})(Δ::Float64)
    @ Zygote C:\Users\peter\.julia\packages\Zygote\JeHtr\src\compiler\interface2.jl:0
 [24] #287
    @ C:\Users\peter\.julia\packages\Zygote\JeHtr\src\lib\lib.jl:206 [inlined]
 [25] #2173#back
    @ C:\Users\peter\.julia\packages\ZygoteRules\OgCVT\src\adjoint.jl:71 [inlined]
 [26] Pullback
    @ C:\Users\peter\.julia\packages\NonconvexCore\HPl1t\src\functions\functions.jl:169 [inlined]
 [27] (::Zygote.Pullback{Tuple{NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}, Vector{Float64}}, Tuple{Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}, Zygote.var"#2173#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing, Nothing}, Tuple{Nothing}}, Zygote.Pullback{Tuple{NonconvexCore.var"##_#8", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}, Vector{Float64}}, Any}}}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2017#back#200"{typeof(identity)}}})(Δ::Float64)
    @ Zygote C:\Users\peter\.julia\packages\Zygote\JeHtr\src\compiler\interface2.jl:0
 [28] Pullback
    @ C:\Users\peter\.julia\packages\NonconvexCore\HPl1t\src\functions\counting_function.jl:9 [inlined]
 [29] (::Zygote.Pullback{Tuple{NonconvexCore.CountingFunction{NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}}, Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}, Vector{Float64}}, Tuple{Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}, Zygote.var"#2173#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing, Nothing}, Tuple{Nothing}}, Zygote.Pullback{Tuple{NonconvexCore.var"##_#8", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}, Vector{Float64}}, Any}}}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2017#back#200"{typeof(identity)}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:counter, Zygote.Context{false}, NonconvexCore.CountingFunction{NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}}, Base.RefValue{Int64}}}, Zygote.Pullback{Tuple{typeof(getindex), Base.RefValue{Int64}}, Tuple{Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:x, Zygote.Context{false}, Base.RefValue{Int64}, Int64}}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:f, Zygote.Context{false}, NonconvexCore.CountingFunction{NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}}, NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}}}, Zygote.Pullback{Tuple{typeof(setindex!), Base.RefValue{Int64}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(setproperty!), Base.RefValue{Int64}, Symbol, Int64}, Tuple{Zygote.ZBack{Zygote.var"#convert_pullback#326"}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.var"#2200#back#307"{Zygote.var"#305#306"{Symbol, Base.RefValue{Any}}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:counter, Zygote.Context{false}, NonconvexCore.CountingFunction{NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}}, Base.RefValue{Int64}}}}})(Δ::Float64)   
    @ Zygote C:\Users\peter\.julia\packages\Zygote\JeHtr\src\compiler\interface2.jl:0
 [30] (::Zygote.var"#75#76"{Zygote.Pullback{Tuple{NonconvexCore.CountingFunction{NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}}, Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}, Vector{Float64}}, Tuple{Zygote.var"#2370#back#415"{Zygote.var"#pairs_namedtuple_pullback#414"{(), NamedTuple{(), Tuple{}}}}, Zygote.var"#2173#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing, Nothing}, Tuple{Nothing}}, Zygote.Pullback{Tuple{NonconvexCore.var"##_#8", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}, Vector{Float64}}, Any}}}, Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2017#back#200"{typeof(identity)}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:counter, Zygote.Context{false}, NonconvexCore.CountingFunction{NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}}, Base.RefValue{Int64}}}, Zygote.Pullback{Tuple{typeof(getindex), Base.RefValue{Int64}}, Tuple{Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:x, Zygote.Context{false}, Base.RefValue{Int64}, Int64}}}}, Zygote.ZBack{Zygote.var"#plus_pullback#341"{Tuple{Int64, Int64}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:f, Zygote.Context{false}, NonconvexCore.CountingFunction{NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}}, NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}}}, Zygote.Pullback{Tuple{typeof(setindex!), Base.RefValue{Int64}, Int64}, Tuple{Zygote.Pullback{Tuple{typeof(setproperty!), Base.RefValue{Int64}, Symbol, Int64}, Tuple{Zygote.ZBack{Zygote.var"#convert_pullback#326"}, Zygote.ZBack{ChainRules.var"#typeof_pullback#45"}, Zygote.ZBack{ChainRules.var"#fieldtype_pullback#421"}, Zygote.var"#2200#back#307"{Zygote.var"#305#306"{Symbol, Base.RefValue{Any}}}}}}}, Zygote.var"#2184#back#299"{Zygote.var"#back#298"{:counter, Zygote.Context{false}, NonconvexCore.CountingFunction{NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}}, Base.RefValue{Int64}}}}}})(Δ::Float64)
    @ Zygote C:\Users\peter\.julia\packages\Zygote\JeHtr\src\compiler\interface.jl:45
 [31] (::NonconvexNLopt.var"#update_cached_values#11"{NonconvexCore.CountingFunction{NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}}, Nothing, Nothing, NonconvexNLopt.var"#onehot#10"})(x::Vector{Float64}, updategrad::Bool)
    @ NonconvexNLopt C:\Users\peter\.julia\packages\NonconvexNLopt\yAKxM\src\NonconvexNLopt.jl:165
 [32] get_nlopt_problem(algorithm::Symbol, local_optimizer::Nothing, options::NLoptOptions{NamedTuple{(:suboptions, :ftol_rel, :ftol_abs, :xtol_rel, :xtol_abs), Tuple{NLoptOptions{NamedTuple{(), Tuple{}}}, Vararg{Float64, 4}}}}, obj::NonconvexCore.CountingFunction{NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}}, ineq_constr::Nothing, eq_constr::Nothing, x0::Vector{Float64}, xlb::Vector{Float64}, xub::Vector{Float64})
    @ NonconvexNLopt C:\Users\peter\.julia\packages\NonconvexNLopt\yAKxM\src\NonconvexNLopt.jl:190
 [33] get_nlopt_problem
    @ C:\Users\peter\.julia\packages\NonconvexNLopt\yAKxM\src\NonconvexNLopt.jl:126 [inlined]
 [34] NonconvexNLopt.NLoptWorkspace(model::NonconvexCore.VecModel{NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}, NonconvexCore.VectorOfFunctions{Vector{NonconvexCore.EqConstraint}}, NonconvexCore.VectorOfFunctions{Vector{NonconvexCore.IneqConstraint}}, NonconvexCore.VectorOfFunctions{Vector{NonconvexCore.SDConstraint}}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, optimizer::NLoptAlg{Nothing}, x0::Vector{Float64}; options::NLoptOptions{NamedTuple{(:suboptions, :ftol_rel, :ftol_abs, :xtol_rel, :xtol_abs), Tuple{NLoptOptions{NamedTuple{(), Tuple{}}}, Vararg{Float64, 4}}}}, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ NonconvexNLopt C:\Users\peter\.julia\packages\NonconvexNLopt\yAKxM\src\NonconvexNLopt.jl:78
 [35] NLoptWorkspace
    @ C:\Users\peter\.julia\packages\NonconvexNLopt\yAKxM\src\NonconvexNLopt.jl:71 [inlined]
 [36] #Workspace#3
    @ C:\Users\peter\.julia\packages\NonconvexNLopt\yAKxM\src\NonconvexNLopt.jl:105 [inlined]
 [37] Workspace
    @ C:\Users\peter\.julia\packages\NonconvexNLopt\yAKxM\src\NonconvexNLopt.jl:104 [inlined]
 [38] optimize(::NonconvexCore.VecModel{NonconvexCore.Objective{NonconvexCore.var"#79#81"{var"#13#14", DifferentiableFlatten.Unflatten{Tuple{Vector{Float64}}, DifferentiableFlatten.var"#unflatten_to_Tuple#11"{Tuple{Int64}, Tuple{Int64}, Tuple{typeof(identity)}}}}, Base.RefValue{Float64}, Set{Symbol}}, NonconvexCore.VectorOfFunctions{Vector{NonconvexCore.EqConstraint}}, NonconvexCore.VectorOfFunctions{Vector{NonconvexCore.IneqConstraint}}, NonconvexCore.VectorOfFunctions{Vector{NonconvexCore.SDConstraint}}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, ::NLoptAlg{Nothing}, ::Vector{Float64}; kwargs::Base.Pairs{Symbol, NLoptOptions{NamedTuple{(:suboptions, :ftol_rel, :ftol_abs, :xtol_rel, :xtol_abs), Tuple{NLoptOptions{NamedTuple{(), Tuple{}}}, Vararg{Float64, 4}}}}, Tuple{Symbol}, NamedTuple{(:options,), Tuple{NLoptOptions{NamedTuple{(:suboptions, :ftol_rel, :ftol_abs, :xtol_rel, :xtol_abs), Tuple{NLoptOptions{NamedTuple{(), Tuple{}}}, Vararg{Float64, 4}}}}}}})
    @ NonconvexCore C:\Users\peter\.julia\packages\NonconvexCore\HPl1t\src\models\vec_model.jl:62
 [39] optimize(::Model{Vector{Any}}, ::NLoptAlg{Nothing}, ::Vector{Float64}; kwargs::Base.Pairs{Symbol, NLoptOptions{NamedTuple{(:suboptions, :ftol_rel, :ftol_abs, :xtol_rel, :xtol_abs), Tuple{NLoptOptions{NamedTuple{(), Tuple{}}}, Vararg{Float64, 4}}}}, Tuple{Symbol}, NamedTuple{(:options,), Tuple{NLoptOptions{NamedTuple{(:suboptions, :ftol_rel, :ftol_abs, :xtol_rel, :xtol_abs), Tuple{NLoptOptions{NamedTuple{(), Tuple{}}}, Vararg{Float64, 4}}}}}}})
    @ NonconvexCore C:\Users\peter\.julia\packages\NonconvexCore\HPl1t\src\common.jl:233
 [40] top-level scope
    @ d:\peter\Documents\julia\packages\RotmanLens\sandbox\optimize1.jl:104

@simonp0420
Copy link
Author

Sorry, but I can't find the way to reopen the issue.

@mohamed82008 mohamed82008 reopened this Jul 10, 2023
@mohamed82008
Copy link
Member

mohamed82008 commented Jul 10, 2023

Please change your algorithm to :GN_DIRECT instead of :DIRECT and try again.

@mohamed82008
Copy link
Member

The supported algorithm symbols are in the documentation https://julianonconvex.github.io/Nonconvex.jl/stable/algorithms/nlopt/#Construct-an-instance.

@simonp0420
Copy link
Author

With :GN_DIRECT or any of the other legal choices it works perfectly. Thanks! And apologies for not reading the docs carefully enough.

@mohamed82008
Copy link
Member

No worries, glad it worked. I opened another issue to implement throwing a better error in cases like yours. The above error is very non-informative.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants