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

Error for quadratic function with hessian_reverse #1414

Open
tmigot opened this issue Apr 25, 2023 · 4 comments
Open

Error for quadratic function with hessian_reverse #1414

tmigot opened this issue Apr 25, 2023 · 4 comments
Labels
second order zygote over zygote, or otherwise

Comments

@tmigot
Copy link

tmigot commented Apr 25, 2023

Zygote.hessian_reverse(x -> x[1] * x[2]^2 + x[1]^2 * x[2], [-1.2; 1.0])

and I got the following error

ERROR: Need an adjoint for constructor Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}. Gradient is of type Vector{Float64}
Stacktrace:
  [1] error(s::String)
    @ Base .\error.jl:35
  [2] (::Zygote.Jnew{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing, false})(Δ::Vector{Float64})
    @ Zygote .julia\packages\Zygote\SuKWp\src\lib\lib.jl:330
  [3] (::Zygote.var"#2176#back#309"{Zygote.Jnew{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing, false}})(Δ::Vector{Float64})
    @ Zygote .julia\packages\ZygoteRules\OgCVT\src\adjoint.jl:71
  [4] Pullback
...
@ForceBru
Copy link

Also, the full error message is nasty:

julia> Zygote.hessian_reverse(x -> x[1] * x[2]^2 + x[1]^2 * x[2], [-1.2; 1.0])
ERROR: Need an adjoint for constructor Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}. Gradient is of type Vector{Float64}
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:35
  [2] (::Zygote.Jnew{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing, false})(Δ::Vector{Float64})
    @ Zygote ~/.julia/packages/Zygote/SuKWp/src/lib/lib.jl:330
  [3] (::Zygote.var"#2197#back#309"{Zygote.Jnew{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing, false}})(Δ::Vector{Float64})
    @ Zygote ~/.julia/packages/ZygoteRules/OgCVT/src/adjoint.jl:71
  [4] Pullback
    @ ~/.julia/packages/Zygote/SuKWp/src/lib/array.jl:71 [inlined]
  [5] (::Zygote.Pullback{Tuple{Type{Zygote.OneElement}, Float64, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Tuple{Zygote.ZBack{Zygote.var"#convert_pullback#325"}, Zygote.var"#2197#back#309"{Zygote.Jnew{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing, false}}, Zygote.Pullback{Tuple{typeof(convert), Type{Tuple{Base.OneTo{Int64}}}, Tuple{Base.OneTo{Int64}}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(convert), Type{Tuple{Int64}}, Tuple{Int64}}, Tuple{}}}})(Δ::Vector{Float64})
    @ Zygote ~/.julia/packages/Zygote/SuKWp/src/compiler/interface2.jl:0
  [6] Pullback
    @ ~/.julia/packages/Zygote/SuKWp/src/lib/array.jl:50 [inlined]
  [7] (::Zygote.Pullback{Tuple{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}, Float64}, Any})(Δ::Tuple{Vector{Float64}, Nothing})
    @ Zygote ~/.julia/packages/Zygote/SuKWp/src/compiler/interface2.jl:0
  [8] Pullback
    @ ~/.julia/packages/ZygoteRules/OgCVT/src/adjoint.jl:71 [inlined]
  [9] (::Zygote.Pullback{Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(ZygoteRules.unthunk_tangent), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{Symbol("#2591#_back"), Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}, Zygote.Pullback{Tuple{typeof(ZygoteRules.gradtuple1), Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}}, Tuple{Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.Pullback{Tuple{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}, Float64}, Any}}})(Δ::Tuple{Nothing, Vector{Float64}, Nothing})
    @ Zygote ~/.julia/packages/Zygote/SuKWp/src/compiler/interface2.jl:0
 [10] Pullback
    @ ~/.julia/packages/Zygote/SuKWp/src/tools/builtins.jl:12 [inlined]
 [11] (::Zygote.Pullback{Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Float64}, Tuple{Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:t, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{1, 1, Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(ZygoteRules.unthunk_tangent), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{Symbol("#2591#_back"), Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}, Zygote.Pullback{Tuple{typeof(ZygoteRules.gradtuple1), Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}}, Tuple{Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.Pullback{Tuple{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}, Float64}, Any}}}}})(Δ::Tuple{Nothing, Vector{Float64}, Nothing})
    @ Zygote ~/.julia/packages/Zygote/SuKWp/src/compiler/interface2.jl:0
 [12] Pullback
    @ ./REPL[2]:1 [inlined]
 [13] (::Zygote.Pullback{Tuple{Zygote.Pullback{Tuple{var"#3#4", Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}}}, Float64}, Tuple{Zygote.Pullback{Tuple{Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_input), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:back, Zygote.Context{false}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.var"#literal_pow_pullback#326"{2, Float64}}}, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Tuple{ChainRulesCore.NoTangent, ChainRulesCore.NoTangent, Float64, ChainRulesCore.NoTangent}}, Tuple{Zygote.var"#2863#back#683"{Zygote.var"#map_back#677"{typeof(Zygote.wrap_chainrules_output), 1, Tuple{Tuple{ChainRulesCore.NoTangent, ChainRulesCore.NoTangent, Float64, ChainRulesCore.NoTangent}}, Tuple{Val{4}}, Tuple{Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}, Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}, Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}}}}}}, Zygote.Pullback{Tuple{Zygote.var"#literal_pow_pullback#326"{2, Float64}, Float64}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{1, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Int64, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.ZBack{Zygote.var"#conj_pullback#346"}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:x, Zygote.Context{false}, Zygote.var"#literal_pow_pullback#326"{2, Float64}, Float64}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Zygote.ZBack{ChainRules.var"#-_pullback#1334"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Nothing, Float64, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{4, Zygote.Context{false}, Int64, Nothing}}}}, Zygote.Pullback{Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Float64}, Tuple{Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:t, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{1, 1, Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(ZygoteRules.unthunk_tangent), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{Symbol("#2591#_back"), Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}, Zygote.Pullback{Tuple{typeof(ZygoteRules.gradtuple1), Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}}, Tuple{Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.Pullback{Tuple{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}, Float64}, Any}}}}}, Zygote.Pullback{Tuple{Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_input), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:back, Zygote.Context{false}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.var"#literal_pow_pullback#326"{2, Float64}}}, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Tuple{ChainRulesCore.NoTangent, ChainRulesCore.NoTangent, Float64, ChainRulesCore.NoTangent}}, Tuple{Zygote.var"#2863#back#683"{Zygote.var"#map_back#677"{typeof(Zygote.wrap_chainrules_output), 1, Tuple{Tuple{ChainRulesCore.NoTangent, ChainRulesCore.NoTangent, Float64, ChainRulesCore.NoTangent}}, Tuple{Val{4}}, Tuple{Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}, Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}, Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}}}}}}, Zygote.Pullback{Tuple{Zygote.var"#literal_pow_pullback#326"{2, Float64}, Float64}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{1, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Int64, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.ZBack{Zygote.var"#conj_pullback#346"}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:x, Zygote.Context{false}, Zygote.var"#literal_pow_pullback#326"{2, Float64}, Float64}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Zygote.ZBack{ChainRules.var"#-_pullback#1334"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Nothing, Int64}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 8, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.Pullback{Tuple{Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Nothing}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 1, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Nothing, Float64, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{4, Zygote.Context{false}, Int64, Nothing}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Nothing, Float64, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{4, Zygote.Context{false}, Int64, Float64}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 3, Zygote.Context{false}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Nothing, Float64, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{4, Zygote.Context{false}, Int64, Nothing}}}}, Zygote.Pullback{Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Float64}, Tuple{Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:t, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{1, 1, Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(ZygoteRules.unthunk_tangent), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{Symbol("#2591#_back"), Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}, Zygote.Pullback{Tuple{typeof(ZygoteRules.gradtuple1), Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}}, Tuple{Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.Pullback{Tuple{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}, Float64}, Any}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Nothing, Int64}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}, Zygote.Pullback{Tuple{Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Nothing}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 4, Zygote.Context{false}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:t, Zygote.Context{false}, Zygote.Pullback{Tuple{var"#3#4", Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}}}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 10, Zygote.Context{false}, Zygote.ZBack{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Nothing, Float64, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{4, Zygote.Context{false}, Int64, Nothing}}}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Float64}, Tuple{Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:t, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{1, 1, Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(ZygoteRules.unthunk_tangent), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{Symbol("#2591#_back"), Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}, Zygote.Pullback{Tuple{typeof(ZygoteRules.gradtuple1), Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}}, Tuple{Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.Pullback{Tuple{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}, Float64}, Any}}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 2, Zygote.Context{false}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}}}, Zygote.Pullback{Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Float64}, Tuple{Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:t, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{1, 1, Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(ZygoteRules.unthunk_tangent), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{Symbol("#2591#_back"), Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}, Zygote.Pullback{Tuple{typeof(ZygoteRules.gradtuple1), Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}}, Tuple{Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.Pullback{Tuple{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}, Float64}, Any}}}}}, Zygote.Pullback{Tuple{Zygote.ZBack{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_input), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:back, Zygote.Context{false}, Zygote.ZBack{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}, Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}}, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Tuple{ChainRulesCore.NoTangent, Float64, Float64}}, Tuple{Zygote.var"#2863#back#683"{Zygote.var"#map_back#677"{typeof(Zygote.wrap_chainrules_output), 1, Tuple{Tuple{ChainRulesCore.NoTangent, Float64, Float64}}, Tuple{Val{3}}, Tuple{Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}}}}}}, Zygote.Pullback{Tuple{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}, Float64}, Tuple{Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:xs, Zygote.Context{false}, Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}, Tuple{Float64, Float64}}}, Zygote.var"#2863#back#683"{Zygote.var"#map_back#677"{Zygote.var"#339#341"{Float64}, 1, Tuple{Tuple{Float64, Float64}}, Tuple{Val{2}}, Tuple{Tuple{Float64, Zygote.Pullback{Tuple{Zygote.var"#339#341"{Float64}, Float64}, Tuple{Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:Δ, Zygote.Context{false}, Zygote.var"#339#341"{Float64}, Float64}}}}}, Tuple{Float64, Zygote.Pullback{Tuple{Zygote.var"#339#341"{Float64}, Float64}, Tuple{Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:Δ, Zygote.Context{false}, Zygote.var"#339#341"{Float64}, Float64}}}}}}}}, Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.var"#2197#back#309"{Zygote.Jnew{Zygote.var"#339#341"{Float64}, Nothing, false}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Float64, Float64}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Float64}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.Pullback{Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_input), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:back, Zygote.Context{false}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}}}, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Tuple{ChainRulesCore.NoTangent, Float64, Float64}}, Tuple{Zygote.var"#2863#back#683"{Zygote.var"#map_back#677"{typeof(Zygote.wrap_chainrules_output), 1, Tuple{Tuple{ChainRulesCore.NoTangent, Float64, Float64}}, Tuple{Val{3}}, Tuple{Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}}}}}}, Zygote.Pullback{Tuple{ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.Pullback{Tuple{ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, Float64}, Tuple{Zygote.ZBack{Zygote.var"#convert_pullback#325"}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:y, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo}, Float64}, Tuple{Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo{Float64}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#adjoint_pullback#1173"}, Zygote.Pullback{Tuple{ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, Float64}, Tuple{Zygote.ZBack{Zygote.var"#convert_pullback#325"}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:y, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:x, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}, Zygote.ZBack{ChainRules.var"#adjoint_pullback#1173"}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(ChainRulesCore.unthunk), Float64}, Tuple{}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo}, Float64}, Tuple{Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo{Float64}}}, Tuple{}}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:x, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Float64, Float64}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Float64}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Float64, Float64}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Float64}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 6, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 11, Zygote.Context{false}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 7, Zygote.Context{false}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 9, Zygote.Context{false}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Float64, Float64}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Float64}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Float64, Float64}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Float64}}}}, Zygote.Pullback{Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_input), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:back, Zygote.Context{false}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}}}, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Tuple{ChainRulesCore.NoTangent, Float64, Float64}}, Tuple{Zygote.var"#2863#back#683"{Zygote.var"#map_back#677"{typeof(Zygote.wrap_chainrules_output), 1, Tuple{Tuple{ChainRulesCore.NoTangent, Float64, Float64}}, Tuple{Val{3}}, Tuple{Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}}}}}}, Zygote.Pullback{Tuple{ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.Pullback{Tuple{ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, Float64}, Tuple{Zygote.ZBack{Zygote.var"#convert_pullback#325"}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:y, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo}, Float64}, Tuple{Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo{Float64}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#adjoint_pullback#1173"}, Zygote.Pullback{Tuple{ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, Float64}, Tuple{Zygote.ZBack{Zygote.var"#convert_pullback#325"}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:y, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:x, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}, Zygote.ZBack{ChainRules.var"#adjoint_pullback#1173"}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(ChainRulesCore.unthunk), Float64}, Tuple{}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo}, Float64}, Tuple{Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo{Float64}}}, Tuple{}}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:x, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Nothing, Float64, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{4, Zygote.Context{false}, Int64, Float64}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 5, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.accum), Vararg{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, 4}}, Tuple{Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing, Nothing}, Tuple{Nothing, Nothing, Nothing}}, Zygote.Pullback{Tuple{typeof(Base.Broadcast.broadcasted), typeof(Zygote.accum), Vararg{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, 4}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.Broadcast.broadcastable), Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}, Tuple{}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing, Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#combine_styles_pullback#1169"{NTuple{5, Nothing}}}}, Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{NTuple{4, Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#4121#back#1363"{Zygote.var"#bc_fwd_back#1401"{Vector{ForwardDiff.Dual{Nothing, Float64, 4}}, NTuple{4, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}, Val{4}}}}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.var"#2863#back#683"{Zygote.var"#map_back#677"{typeof(Base.Broadcast.broadcastable), 1, Tuple{Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}, Tuple{Val{2}}, Tuple{Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Zygote.Pullback{Tuple{typeof(Base.Broadcast.broadcastable), Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}, Tuple{}}}, Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Zygote.Pullback{Tuple{typeof(Base.Broadcast.broadcastable), Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}, Tuple{}}}}}}, Zygote.Pullback{Tuple{typeof(Base.Broadcast.broadcastable), Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}, Tuple{}}}}}}, Zygote.Pullback{Tuple{typeof(Base.Broadcast.materialize), Vector{Float64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Float64, Float64}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Float64}}}}}})(Δ::Tuple{Nothing, Vector{Float64}})
    @ Zygote ~/.julia/packages/Zygote/SuKWp/src/compiler/interface2.jl:0
 [14] Pullback
    @ ~/.julia/packages/Zygote/SuKWp/src/compiler/interface.jl:45 [inlined]
 [15] (::Zygote.Pullback{Tuple{Zygote.var"#75#76"{Zygote.Pullback{Tuple{var"#3#4", Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}}}}, Float64}, Tuple{Zygote.Pullback{Tuple{Zygote.Pullback{Tuple{var"#3#4", Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}}}, Float64}, Tuple{Zygote.Pullback{Tuple{Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_input), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:back, Zygote.Context{false}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.var"#literal_pow_pullback#326"{2, Float64}}}, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Tuple{ChainRulesCore.NoTangent, ChainRulesCore.NoTangent, Float64, ChainRulesCore.NoTangent}}, Tuple{Zygote.var"#2863#back#683"{Zygote.var"#map_back#677"{typeof(Zygote.wrap_chainrules_output), 1, Tuple{Tuple{ChainRulesCore.NoTangent, ChainRulesCore.NoTangent, Float64, ChainRulesCore.NoTangent}}, Tuple{Val{4}}, Tuple{Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}, Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}, Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}}}}}}, Zygote.Pullback{Tuple{Zygote.var"#literal_pow_pullback#326"{2, Float64}, Float64}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{1, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Int64, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.ZBack{Zygote.var"#conj_pullback#346"}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:x, Zygote.Context{false}, Zygote.var"#literal_pow_pullback#326"{2, Float64}, Float64}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Zygote.ZBack{ChainRules.var"#-_pullback#1334"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Nothing, Float64, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{4, Zygote.Context{false}, Int64, Nothing}}}}, Zygote.Pullback{Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Float64}, Tuple{Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:t, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{1, 1, Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(ZygoteRules.unthunk_tangent), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{Symbol("#2591#_back"), Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}, Zygote.Pullback{Tuple{typeof(ZygoteRules.gradtuple1), Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}}, Tuple{Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.Pullback{Tuple{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}, Float64}, Any}}}}}, Zygote.Pullback{Tuple{Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_input), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:back, Zygote.Context{false}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.var"#literal_pow_pullback#326"{2, Float64}}}, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Tuple{ChainRulesCore.NoTangent, ChainRulesCore.NoTangent, Float64, ChainRulesCore.NoTangent}}, Tuple{Zygote.var"#2863#back#683"{Zygote.var"#map_back#677"{typeof(Zygote.wrap_chainrules_output), 1, Tuple{Tuple{ChainRulesCore.NoTangent, ChainRulesCore.NoTangent, Float64, ChainRulesCore.NoTangent}}, Tuple{Val{4}}, Tuple{Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}, Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}, Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}}}}}}, Zygote.Pullback{Tuple{Zygote.var"#literal_pow_pullback#326"{2, Float64}, Float64}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{1, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Int64, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.ZBack{Zygote.var"#conj_pullback#346"}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:x, Zygote.Context{false}, Zygote.var"#literal_pow_pullback#326"{2, Float64}, Float64}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Zygote.ZBack{ChainRules.var"#-_pullback#1334"{Int64, Bool, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Nothing, Int64}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 8, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.Pullback{Tuple{Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Nothing}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 1, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Nothing, Float64, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{4, Zygote.Context{false}, Int64, Nothing}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Nothing, Float64, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{4, Zygote.Context{false}, Int64, Float64}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 3, Zygote.Context{false}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Nothing, Float64, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{4, Zygote.Context{false}, Int64, Nothing}}}}, Zygote.Pullback{Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Float64}, Tuple{Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:t, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{1, 1, Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(ZygoteRules.unthunk_tangent), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{Symbol("#2591#_back"), Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}, Zygote.Pullback{Tuple{typeof(ZygoteRules.gradtuple1), Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}}, Tuple{Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.Pullback{Tuple{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}, Float64}, Any}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Nothing, Int64}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}, Zygote.Pullback{Tuple{Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Nothing}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 4, Zygote.Context{false}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:t, Zygote.Context{false}, Zygote.Pullback{Tuple{var"#3#4", Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}}}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 10, Zygote.Context{false}, Zygote.ZBack{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Nothing, Float64, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{4, Zygote.Context{false}, Int64, Nothing}}}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Float64}, Tuple{Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:t, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{1, 1, Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(ZygoteRules.unthunk_tangent), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{Symbol("#2591#_back"), Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}, Zygote.Pullback{Tuple{typeof(ZygoteRules.gradtuple1), Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}}, Tuple{Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.Pullback{Tuple{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}, Float64}, Any}}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 2, Zygote.Context{false}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}}}, Zygote.Pullback{Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Float64}, Tuple{Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:t, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{1, 1, Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(ZygoteRules.unthunk_tangent), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{Symbol("#2591#_back"), Zygote.Context{false}, Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}, Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}, Zygote.Pullback{Tuple{typeof(ZygoteRules.gradtuple1), Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}}, Tuple{Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.Pullback{Tuple{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}, Float64}, Any}}}}}, Zygote.Pullback{Tuple{Zygote.ZBack{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_input), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:back, Zygote.Context{false}, Zygote.ZBack{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}, Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}}, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Tuple{ChainRulesCore.NoTangent, Float64, Float64}}, Tuple{Zygote.var"#2863#back#683"{Zygote.var"#map_back#677"{typeof(Zygote.wrap_chainrules_output), 1, Tuple{Tuple{ChainRulesCore.NoTangent, Float64, Float64}}, Tuple{Val{3}}, Tuple{Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}}}}}}, Zygote.Pullback{Tuple{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}, Float64}, Tuple{Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:xs, Zygote.Context{false}, Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}, Tuple{Float64, Float64}}}, Zygote.var"#2863#back#683"{Zygote.var"#map_back#677"{Zygote.var"#339#341"{Float64}, 1, Tuple{Tuple{Float64, Float64}}, Tuple{Val{2}}, Tuple{Tuple{Float64, Zygote.Pullback{Tuple{Zygote.var"#339#341"{Float64}, Float64}, Tuple{Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:Δ, Zygote.Context{false}, Zygote.var"#339#341"{Float64}, Float64}}}}}, Tuple{Float64, Zygote.Pullback{Tuple{Zygote.var"#339#341"{Float64}, Float64}, Tuple{Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:Δ, Zygote.Context{false}, Zygote.var"#339#341"{Float64}, Float64}}}}}}}}, Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.var"#2197#back#309"{Zygote.Jnew{Zygote.var"#339#341"{Float64}, Nothing, false}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Float64, Float64}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Float64}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}}}, Zygote.Pullback{Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_input), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:back, Zygote.Context{false}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}}}, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Tuple{ChainRulesCore.NoTangent, Float64, Float64}}, Tuple{Zygote.var"#2863#back#683"{Zygote.var"#map_back#677"{typeof(Zygote.wrap_chainrules_output), 1, Tuple{Tuple{ChainRulesCore.NoTangent, Float64, Float64}}, Tuple{Val{3}}, Tuple{Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}}}}}}, Zygote.Pullback{Tuple{ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.Pullback{Tuple{ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, Float64}, Tuple{Zygote.ZBack{Zygote.var"#convert_pullback#325"}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:y, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo}, Float64}, Tuple{Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo{Float64}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#adjoint_pullback#1173"}, Zygote.Pullback{Tuple{ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, Float64}, Tuple{Zygote.ZBack{Zygote.var"#convert_pullback#325"}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:y, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:x, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}, Zygote.ZBack{ChainRules.var"#adjoint_pullback#1173"}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(ChainRulesCore.unthunk), Float64}, Tuple{}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo}, Float64}, Tuple{Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo{Float64}}}, Tuple{}}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:x, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Float64, Float64}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Float64}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Float64, Float64}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Float64}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 6, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 11, Zygote.Context{false}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 7, Zygote.Context{false}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 9, Zygote.Context{false}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Float64, Float64}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Float64}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Float64, Float64}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Float64}}}}, Zygote.Pullback{Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Float64}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_input), Float64}, Tuple{}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:back, Zygote.Context{false}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}}}, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Tuple{ChainRulesCore.NoTangent, Float64, Float64}}, Tuple{Zygote.var"#2863#back#683"{Zygote.var"#map_back#677"{typeof(Zygote.wrap_chainrules_output), 1, Tuple{Tuple{ChainRulesCore.NoTangent, Float64, Float64}}, Tuple{Val{3}}, Tuple{Tuple{Nothing, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), ChainRulesCore.NoTangent}, Tuple{Zygote.var"#1973#back#190"{Zygote.var"#186#189"{Zygote.Context{false}, GlobalRef, Nothing}}}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}, Tuple{Float64, Zygote.Pullback{Tuple{typeof(Zygote.wrap_chainrules_output), Float64}, Tuple{}}}}}}}}, Zygote.Pullback{Tuple{ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}, Tuple{Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.Pullback{Tuple{ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, Float64}, Tuple{Zygote.ZBack{Zygote.var"#convert_pullback#325"}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:y, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo}, Float64}, Tuple{Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo{Float64}}}, Tuple{}}}}, Zygote.ZBack{ChainRules.var"#adjoint_pullback#1173"}, Zygote.Pullback{Tuple{ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}, Float64}, Tuple{Zygote.ZBack{Zygote.var"#convert_pullback#325"}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:y, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:x, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}, Zygote.ZBack{ChainRules.var"#adjoint_pullback#1173"}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.NoTangent}}, Tuple{}}, Zygote.Pullback{Tuple{typeof(ChainRulesCore.unthunk), Float64}, Tuple{}}, Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo}, Float64}, Tuple{Zygote.Pullback{Tuple{Type{ChainRulesCore.ProjectTo{Float64}}}, Tuple{}}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:x, Zygote.Context{false}, ChainRules.var"#times_pullback2#1345"{Float64, Float64}, Float64}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Nothing, Float64, Nothing}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{4, Zygote.Context{false}, Int64, Float64}}}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{11, 5, Zygote.Context{false}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.accum), Vararg{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, 4}}, Tuple{Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing, Nothing}, Tuple{Nothing, Nothing, Nothing}}, Zygote.Pullback{Tuple{typeof(Base.Broadcast.broadcasted), typeof(Zygote.accum), Vararg{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, 4}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.Broadcast.broadcastable), Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}, Tuple{}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing, Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#combine_styles_pullback#1169"{NTuple{5, Nothing}}}}, Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{NTuple{4, Nothing}, Tuple{Nothing, Nothing}}, Zygote.var"#4121#back#1363"{Zygote.var"#bc_fwd_back#1401"{Vector{ForwardDiff.Dual{Nothing, Float64, 4}}, NTuple{4, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}, Val{4}}}}}, Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.var"#2863#back#683"{Zygote.var"#map_back#677"{typeof(Base.Broadcast.broadcastable), 1, Tuple{Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}}, Tuple{Val{2}}, Tuple{Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Zygote.Pullback{Tuple{typeof(Base.Broadcast.broadcastable), Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}, Tuple{}}}, Tuple{Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}, Zygote.Pullback{Tuple{typeof(Base.Broadcast.broadcastable), Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}, Tuple{}}}}}}, Zygote.Pullback{Tuple{typeof(Base.Broadcast.broadcastable), Zygote.OneElement{Float64, 1, Tuple{Int64}, Tuple{Base.OneTo{Int64}}}}, Tuple{}}}}}}, Zygote.Pullback{Tuple{typeof(Base.Broadcast.materialize), Vector{Float64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(Zygote.gradindex), Tuple{Nothing, Float64, Float64}, Int64}, Tuple{Zygote.var"#2032#back#218"{Zygote.var"#back#216"{3, Zygote.Context{false}, Int64, Float64}}}}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:back, Zygote.Context{false}, Zygote.var"#75#76"{Zygote.Pullback{Tuple{var"#3#4", Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}}}}, Zygote.Pullback{Tuple{var"#3#4", Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{2}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{Zygote.var"#literal_pow_pullback#326"{2, Float64}}, Zygote.Pullback{Tuple{typeof(Zygote.literal_getindex), Vector{Float64}, Val{1}}, Tuple{Zygote.var"#2592#back#528"{Zygote.var"#538#540"{1, Float64, Vector{Float64}, Tuple{Int64}}}}}, Zygote.ZBack{ChainRules.var"#times_pullback2#1345"{Float64, Float64}}, Zygote.ZBack{Zygote.var"#plus_pullback#340"{Tuple{Float64, Float64}}}, Zygote.var"#1909#back#157"{Zygote.var"#153#156"}}}}}, Zygote.Pullback{Tuple{typeof(Zygote.tailmemaybe), Tuple{Nothing, Vector{Float64}}}, Tuple{Zygote.var"#2128#back#277"{Zygote.var"#273#276"}}}}})(Δ::Tuple{Vector{Float64}})
    @ Zygote ~/.julia/packages/Zygote/SuKWp/src/compiler/interface2.jl:0
 [16] Pullback
    @ ~/.julia/packages/Zygote/SuKWp/src/compiler/interface.jl:97 [inlined]
 [17] (::Zygote.Pullback{Tuple{typeof(Zygote.gradient), var"#3#4", Vector{Float64}}, Any})(Δ::Tuple{Vector{Float64}})
    @ Zygote ~/.julia/packages/Zygote/SuKWp/src/compiler/interface2.jl:0
 [18] Pullback
    @ ~/.julia/packages/Zygote/SuKWp/src/lib/grad.jl:75 [inlined]
 [19] (::Zygote.Pullback{Tuple{Zygote.var"#125#126"{var"#3#4"}, Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.gradient), var"#3#4", Vector{Float64}}, Any}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:f, Zygote.Context{false}, Zygote.var"#125#126"{var"#3#4"}, var"#3#4"}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{1, 1, Zygote.Context{false}, Vector{Float64}}}}})(Δ::Vector{Float64})
    @ Zygote ~/.julia/packages/Zygote/SuKWp/src/compiler/interface2.jl:0
 [20] #287
    @ ~/.julia/packages/Zygote/SuKWp/src/lib/lib.jl:206 [inlined]
 [21] (::Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}}, Zygote.Pullback{Tuple{Zygote.var"#125#126"{var"#3#4"}, Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{typeof(Zygote.gradient), var"#3#4", Vector{Float64}}, Any}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:f, Zygote.Context{false}, Zygote.var"#125#126"{var"#3#4"}, var"#3#4"}}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{1, 1, Zygote.Context{false}, Vector{Float64}}}}}}})(Δ::Vector{Float64})
    @ Zygote ~/.julia/packages/ZygoteRules/OgCVT/src/adjoint.jl:71
 [22] Pullback
    @ ./operators.jl:1035 [inlined]
 [23] (::Zygote.Pullback{Tuple{typeof(Base.call_composed), Tuple{Zygote.var"#125#126"{var"#3#4"}}, Tuple{Vector{Float64}}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, Any})(Δ::Vector{Float64})
    @ Zygote ~/.julia/packages/Zygote/SuKWp/src/compiler/interface2.jl:0
 [24] Pullback
    @ ./operators.jl:1034 [inlined]
 [25] Pullback
    @ ./operators.jl:1031 [inlined]
 [26] (::Zygote.Pullback{Tuple{Base.var"##_#97", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, ComposedFunction{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}, Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.call_composed), Tuple{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}, Tuple{Vector{Float64}}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, Tuple{Zygote.var"#2128#back#277"{Zygote.var"#273#276"}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, typeof(Zygote._jvec)}}, Zygote.Pullback{Tuple{typeof(Zygote._jvec), Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{typeof(vec), Vector{Float64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(Base.call_composed), Tuple{Zygote.var"#125#126"{var"#3#4"}}, Tuple{Vector{Float64}}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, Any}}}, Zygote.Pullback{Tuple{typeof(Base.unwrap_composed), ComposedFunction{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.unwrap_composed), typeof(Zygote._jvec)}, Tuple{Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{typeof(Base.maybeconstructor), typeof(Zygote._jvec)}, Tuple{}}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:outer, Zygote.Context{false}, ComposedFunction{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}, typeof(Zygote._jvec)}}, Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}, Tuple{Nothing}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.Pullback{Tuple{typeof(Base.unwrap_composed), Zygote.var"#125#126"{var"#3#4"}}, Tuple{Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{typeof(Base.maybeconstructor), Zygote.var"#125#126"{var"#3#4"}}, Tuple{}}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:inner, Zygote.Context{false}, ComposedFunction{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}, Zygote.var"#125#126"{var"#3#4"}}}}}}})(Δ::Vector{Float64})
    @ Zygote ~/.julia/packages/Zygote/SuKWp/src/compiler/interface2.jl:0
 [27] #287
    @ ~/.julia/packages/Zygote/SuKWp/src/lib/lib.jl:206 [inlined]
 [28] #2156#back
    @ ~/.julia/packages/ZygoteRules/OgCVT/src/adjoint.jl:71 [inlined]
 [29] Pullback
    @ ./operators.jl:1031 [inlined]
 [30] (::Zygote.Pullback{Tuple{ComposedFunction{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}, Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2352#back#414"{Zygote.var"#pairs_namedtuple_pullback#413"{(), NamedTuple{(), Tuple{}}}}, Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing, Nothing}, Tuple{Nothing}}, Zygote.Pullback{Tuple{Base.var"##_#97", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, ComposedFunction{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}, Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.call_composed), Tuple{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}, Tuple{Vector{Float64}}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, Tuple{Zygote.var"#2128#back#277"{Zygote.var"#273#276"}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, typeof(Zygote._jvec)}}, Zygote.Pullback{Tuple{typeof(Zygote._jvec), Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{typeof(vec), Vector{Float64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(Base.call_composed), Tuple{Zygote.var"#125#126"{var"#3#4"}}, Tuple{Vector{Float64}}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, Any}}}, Zygote.Pullback{Tuple{typeof(Base.unwrap_composed), ComposedFunction{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.unwrap_composed), typeof(Zygote._jvec)}, Tuple{Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{typeof(Base.maybeconstructor), typeof(Zygote._jvec)}, Tuple{}}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:outer, Zygote.Context{false}, ComposedFunction{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}, typeof(Zygote._jvec)}}, Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}, Tuple{Nothing}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.Pullback{Tuple{typeof(Base.unwrap_composed), Zygote.var"#125#126"{var"#3#4"}}, Tuple{Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{typeof(Base.maybeconstructor), Zygote.var"#125#126"{var"#3#4"}}, Tuple{}}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:inner, Zygote.Context{false}, ComposedFunction{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}, Zygote.var"#125#126"{var"#3#4"}}}}}}}}}, Zygote.var"#2000#back#200"{typeof(identity)}}})(Δ::Vector{Float64})
    @ Zygote ~/.julia/packages/Zygote/SuKWp/src/compiler/interface2.jl:0
 [31] (::Zygote.var"#75#76"{Zygote.Pullback{Tuple{ComposedFunction{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}, Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{Type{NamedTuple}}, Tuple{}}, Zygote.var"#2352#back#414"{Zygote.var"#pairs_namedtuple_pullback#413"{(), NamedTuple{(), Tuple{}}}}, Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing, Nothing}, Tuple{Nothing}}, Zygote.Pullback{Tuple{Base.var"##_#97", Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, ComposedFunction{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}, Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.call_composed), Tuple{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}, Tuple{Vector{Float64}}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, Tuple{Zygote.var"#2128#back#277"{Zygote.var"#273#276"}, Zygote.var"#2016#back#209"{Zygote.var"#back#207"{2, 1, Zygote.Context{false}, typeof(Zygote._jvec)}}, Zygote.Pullback{Tuple{typeof(Zygote._jvec), Vector{Float64}}, Tuple{Zygote.Pullback{Tuple{typeof(vec), Vector{Float64}}, Tuple{}}}}, Zygote.Pullback{Tuple{typeof(Base.call_composed), Tuple{Zygote.var"#125#126"{var"#3#4"}}, Tuple{Vector{Float64}}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, Any}}}, Zygote.Pullback{Tuple{typeof(Base.unwrap_composed), ComposedFunction{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}}, Tuple{Zygote.Pullback{Tuple{typeof(Base.unwrap_composed), typeof(Zygote._jvec)}, Tuple{Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{typeof(Base.maybeconstructor), typeof(Zygote._jvec)}, Tuple{}}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:outer, Zygote.Context{false}, ComposedFunction{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}, typeof(Zygote._jvec)}}, Zygote.var"#2156#back#289"{Zygote.var"#287#288"{Tuple{Tuple{Nothing}, Tuple{Nothing}}, Zygote.var"#2000#back#200"{typeof(identity)}}}, Zygote.Pullback{Tuple{typeof(Base.unwrap_composed), Zygote.var"#125#126"{var"#3#4"}}, Tuple{Zygote.var"#2000#back#200"{typeof(identity)}, Zygote.Pullback{Tuple{typeof(Base.maybeconstructor), Zygote.var"#125#126"{var"#3#4"}}, Tuple{}}}}, Zygote.var"#2167#back#299"{Zygote.var"#back#298"{:inner, Zygote.Context{false}, ComposedFunction{typeof(Zygote._jvec), Zygote.var"#125#126"{var"#3#4"}}, Zygote.var"#125#126"{var"#3#4"}}}}}}}}}, Zygote.var"#2000#back#200"{typeof(identity)}}}})(Δ::Vector{Float64})
    @ Zygote ~/.julia/packages/Zygote/SuKWp/src/compiler/interface.jl:45
 [32] withjacobian(f::Function, args::Vector{Float64})
    @ Zygote ~/.julia/packages/Zygote/SuKWp/src/lib/grad.jl:150
 [33] jacobian
    @ ~/.julia/packages/Zygote/SuKWp/src/lib/grad.jl:128 [inlined]
 [34] hessian_reverse(f::Function, x::Vector{Float64})
    @ Zygote ~/.julia/packages/Zygote/SuKWp/src/lib/grad.jl:75
 [35] top-level scope
    @ REPL[2]:1

GitHub doesn't wrap lines, so it may look fine at a first glance, but here's what I see in my terminal:

zygote_error

...it's not even the full error message - just part of some type. Sure, languages that support templates or generics are prone to such long error messages, but hopefully this can be improved at Zygote's level.

BTW, Zygote.hessian works fine:

julia> Zygote.hessian(x -> x[1] * x[2]^2 + x[1]^2 * x[2], [-1.2; 1.0])
2×2 Matrix{Float64}:
  2.0  -0.4
 -0.4  -2.4

Versions:

  • Zygote v0.6.60
  • Julia 1.9.0-rc2

@mcabbott mcabbott added the second order zygote over zygote, or otherwise label Apr 25, 2023
@mcabbott
Copy link
Member

I think this is some variant of #820, that the rule for the gradient of getindex is not itself Zygote-differentiable. #1328 ought to fix these.

@ToucheSir
Copy link
Member

@ForceBru the long error message is partly due to #1356, which we begrudgingly added because the existing code was wrong and negatively affecting compilation latency. Please show your support for JuliaLang/julia#48444 and similar efforts so we can get a more reasonable solution for this sooner than later.

More generally, there's a reason the docs note that hessian_reverse "is usually much slower, and more likely to find errors". It has to differentiate through Zygote's own internals, and Zygote is not sophisticated enough to do that efficiently.

@tmigot
Copy link
Author

tmigot commented Apr 26, 2023

Thanks @mcabbott and @ToucheSir for the feedback. From the documentation, I suspected some things might go wrong, but thought it's good to have some feedback and the example is simpler than #820

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
second order zygote over zygote, or otherwise
Projects
None yet
Development

No branches or pull requests

4 participants