@@ -221,34 +221,28 @@ function _delta_parametric_constant(
221221 delta_constant = zero (T)
222222 for term in affine_parameter_terms (f)
223223 p = p_idx (term. variable)
224- if ! isnan (model. updated_parameters[p])
225- delta_constant +=
226- term. coefficient *
227- (model. updated_parameters[p] - model. parameters[p])
224+ new_p = model. updated_parameters[p]
225+ if ! isnan (new_p)
226+ delta_constant += term. coefficient * (new_p - model. parameters[p])
228227 end
229228 end
230229 for term in quadratic_parameter_parameter_terms (f)
231230 p1 = p_idx (term. variable_1)
232231 p2 = p_idx (term. variable_2)
233- isnan_1 = isnan (model. updated_parameters[p1])
234- isnan_2 = isnan (model. updated_parameters[p2])
232+ new_p1 = model. updated_parameters[p1]
233+ new_p2 = model. updated_parameters[p2]
234+ isnan_1 = isnan (new_p1)
235+ isnan_2 = isnan (new_p2)
235236 if ! isnan_1 || ! isnan_2
236- new_1 = ifelse (
237- isnan_1,
238- model. parameters[p1],
239- model. updated_parameters[p1],
240- )
241- new_2 = ifelse (
242- isnan_2,
243- model. parameters[p2],
244- model. updated_parameters[p2],
245- )
237+ old_p1 = model. parameters[p1]
238+ old_p2 = model. parameters[p2]
239+ new_1 = ifelse (isnan_1, old_p1, new_p1)
240+ new_2 = ifelse (isnan_2, old_p2, new_p2)
246241 delta_constant +=
247242 (
248243 term. coefficient /
249244 ifelse (term. variable_1 == term. variable_2, 2 , 1 )
250- ) *
251- (new_1 * new_2 - model. parameters[p1] * model. parameters[p2])
245+ ) * (new_1 * new_2 - old_p1 * old_p2)
252246 end
253247 end
254248 return delta_constant
@@ -403,10 +397,9 @@ function _delta_parametric_constant(
403397 delta_constant = zero (T)
404398 for term in affine_parameter_terms (f)
405399 p = p_idx (term. variable)
406- if ! isnan (model. updated_parameters[p])
407- delta_constant +=
408- term. coefficient *
409- (model. updated_parameters[p] - model. parameters[p])
400+ new_p = model. updated_parameters[p]
401+ if ! isnan (new_p)
402+ delta_constant += term. coefficient * (new_p - model. parameters[p])
410403 end
411404 end
412405 return delta_constant
@@ -521,10 +514,10 @@ function _delta_parametric_constant(
521514 delta_constant = zeros (T, length (f. c))
522515 for term in vector_affine_parameter_terms (f)
523516 p = p_idx (term. scalar_term. variable)
524- if ! isnan (model. updated_parameters[p])
517+ new_p = model. updated_parameters[p]
518+ if ! isnan (new_p)
525519 delta_constant[term. output_index] +=
526- term. scalar_term. coefficient *
527- (model. updated_parameters[p] - model. parameters[p])
520+ term. scalar_term. coefficient * (new_p - model. parameters[p])
528521 end
529522 end
530523 return delta_constant
@@ -747,21 +740,17 @@ function _delta_parametric_constant(
747740 var2 = term. scalar_term. variable_2
748741 p1 = p_idx (var1)
749742 p2 = p_idx (var2)
750-
751- if ! isnan (model. updated_parameters[p1]) ||
752- ! isnan (model. updated_parameters[p2])
753- old_val1 = model. parameters[p1]
754- old_val2 = model. parameters[p2]
755- new_val1 =
756- ! isnan (model. updated_parameters[p1]) ?
757- model. updated_parameters[p1] : old_val1
758- new_val2 =
759- ! isnan (model. updated_parameters[p2]) ?
760- model. updated_parameters[p2] : old_val2
761-
743+ new_p1 = model. updated_parameters[p1]
744+ new_p2 = model. updated_parameters[p2]
745+ isnan_1 = isnan (new_p1)
746+ isnan_2 = isnan (new_p2)
747+ if ! isnan_1 || ! isnan_2
748+ old_p1 = model. parameters[p1]
749+ old_p2 = model. parameters[p2]
750+ new_1 = isnan_1 ? old_p1 : new_p1
751+ new_2 = isnan_2 ? old_p2 : new_p2
762752 coef = term. scalar_term. coefficient / (var1 == var2 ? 2 : 1 )
763- delta_constants[idx] +=
764- coef * (new_val1 * new_val2 - old_val1 * old_val2)
753+ delta_constants[idx] += coef * (new_1 * new_2 - old_p1 * old_p2)
765754 end
766755 end
767756
0 commit comments