@@ -176,23 +176,22 @@ end
176
176
177
177
# If setting A or b for DualLinearCache, put the Dual-stripped versions in the LinearCache
178
178
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
190
179
if sym === :A
180
+ setproperty! (dc. linear_cache, sym, nodual_value (val))
181
+ setfield! (dc, :dual_A , val)
191
182
setfield! (dc, :partials_A , partial_vals (val))
192
183
elseif sym === :b
184
+ setproperty! (dc. linear_cache, sym, nodual_value (val))
185
+ setfield! (dc, :dual_b , val)
193
186
setfield! (dc, :partials_b , partial_vals (val))
194
187
elseif sym === :u
188
+ setproperty! (dc. linear_cache, sym, nodual_value (val))
189
+ setfield! (dc, :dual_u , val)
195
190
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)
196
195
end
197
196
end
198
197
0 commit comments