@@ -14,10 +14,11 @@ using ImplicitDifferentiation:
1414ImplicitDifferentiation. chainrules_suggested_backend (rc:: RuleConfig ) = AutoChainRules (rc)
1515
1616function ChainRulesCore. rrule (
17- rc:: RuleConfig , implicit:: ImplicitFunction , x:: AbstractArray , args:: Vararg{Any,N} ;
17+ rc:: RuleConfig , implicit:: ImplicitFunction , x:: AbstractArray , args:: Vararg{Any,N}
1818) where {N}
19+ (; conditions, linear_solver) = implicit
1920 y, z = implicit (x, args... )
20- c = implicit . conditions (x, y, z, args... )
21+ c = conditions (x, y, z, args... )
2122
2223 suggested_backend = chainrules_suggested_backend (rc)
2324 Aᵀ = build_Aᵀ (implicit, x, y, z, c, args... ; suggested_backend)
@@ -27,11 +28,11 @@ function ChainRulesCore.rrule(
2728 function implicit_pullback ((dy, dz))
2829 dy = unthunk (dy)
2930 dy_vec = vec (dy)
30- dc_vec = implicit . linear_solver (Aᵀ, - dy_vec)
31+ dc_vec = linear_solver (Aᵀ, - dy_vec)
3132 dx_vec = Bᵀ (dc_vec)
3233 dx = reshape (dx_vec, size (x))
3334 df = NoTangent ()
34- dargs = ntuple (unimplemented_tangent, N )
35+ dargs = ntuple (unimplemented_tangent, Val (N) )
3536 return (df, project_x (dx), dargs... )
3637 end
3738
0 commit comments