Skip to content

Commit 96244fd

Browse files
committed
streamline
1 parent 9c11cc2 commit 96244fd

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

ext/LinearSolveForwardDiffExt.jl

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -176,23 +176,22 @@ end
176176

177177
# If setting A or b for DualLinearCache, put the Dual-stripped versions in the LinearCache
178178
function Base.setproperty!(dc::DualLinearCache, sym::Symbol, val)
179-
# If the property is A or b, also update it in the LinearCache
180-
if sym === :A || sym === :b || sym === :u
181-
setproperty!(dc.linear_cache, sym, nodual_value(val))
182-
elseif hasfield(DualLinearCache, sym)
183-
setfield!(dc,sym,val)
184-
elseif hasfield(LinearSolve.LinearCache, sym)
185-
setproperty!(dc.linear_cache, sym, val)
186-
end
187-
188-
189-
# Update the partials if setting A or b
190179
if sym === :A
180+
setproperty!(dc.linear_cache, sym, nodual_value(val))
181+
setfield!(dc, :dual_A, val)
191182
setfield!(dc, :partials_A, partial_vals(val))
192183
elseif sym === :b
184+
setproperty!(dc.linear_cache, sym, nodual_value(val))
185+
setfield!(dc, :dual_b, val)
193186
setfield!(dc, :partials_b, partial_vals(val))
194187
elseif sym === :u
188+
setproperty!(dc.linear_cache, sym, nodual_value(val))
189+
setfield!(dc, :dual_u, val)
195190
setfield!(dc, :partials_u, partial_vals(val))
191+
elseif hasfield(DualLinearCache, sym)
192+
setfield!(dc,sym,val)
193+
elseif hasfield(LinearSolve.LinearCache, sym)
194+
setproperty!(dc.linear_cache, sym, val)
196195
end
197196
end
198197

0 commit comments

Comments
 (0)