From e5bc0a04498d5781ba047f0c1b0e205c30792b8b Mon Sep 17 00:00:00 2001 From: joaquimg Date: Tue, 24 Feb 2026 21:53:02 -0300 Subject: [PATCH 1/2] Organize access to `updated_parameters` --- src/parametric_functions.jl | 71 ++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 41 deletions(-) diff --git a/src/parametric_functions.jl b/src/parametric_functions.jl index bd770fde..78082df7 100644 --- a/src/parametric_functions.jl +++ b/src/parametric_functions.jl @@ -221,34 +221,27 @@ function _delta_parametric_constant( delta_constant = zero(T) for term in affine_parameter_terms(f) p = p_idx(term.variable) - if !isnan(model.updated_parameters[p]) - delta_constant += - term.coefficient * - (model.updated_parameters[p] - model.parameters[p]) + new_p = model.updated_parameters[p] + if !isnan(new_p) + delta_constant += term.coefficient * (new_p - model.parameters[p]) end end for term in quadratic_parameter_parameter_terms(f) p1 = p_idx(term.variable_1) p2 = p_idx(term.variable_2) - isnan_1 = isnan(model.updated_parameters[p1]) - isnan_2 = isnan(model.updated_parameters[p2]) + new_p1 = model.updated_parameters[p1] + new_p2 = model.updated_parameters[p2] + isnan_1 = isnan(new_p1) + isnan_2 = isnan(new_p2) if !isnan_1 || !isnan_2 - new_1 = ifelse( - isnan_1, - model.parameters[p1], - model.updated_parameters[p1], - ) - new_2 = ifelse( - isnan_2, - model.parameters[p2], - model.updated_parameters[p2], - ) + old_p1 = model.parameters[p1] + old_p2 = model.parameters[p2] + new_1 = ifelse(isnan_1, old_p1, new_p1) + new_2 = ifelse(isnan_2, old_p2, new_p2) delta_constant += - ( - term.coefficient / - ifelse(term.variable_1 == term.variable_2, 2, 1) - ) * - (new_1 * new_2 - model.parameters[p1] * model.parameters[p2]) + (term.coefficient / + ifelse(term.variable_1 == term.variable_2, 2, 1)) * + (new_1 * new_2 - old_p1 * old_p2) end end return delta_constant @@ -403,10 +396,9 @@ function _delta_parametric_constant( delta_constant = zero(T) for term in affine_parameter_terms(f) p = p_idx(term.variable) - if !isnan(model.updated_parameters[p]) - delta_constant += - term.coefficient * - (model.updated_parameters[p] - model.parameters[p]) + new_p = model.updated_parameters[p] + if !isnan(new_p) + delta_constant += term.coefficient * (new_p - model.parameters[p]) end end return delta_constant @@ -521,10 +513,10 @@ function _delta_parametric_constant( delta_constant = zeros(T, length(f.c)) for term in vector_affine_parameter_terms(f) p = p_idx(term.scalar_term.variable) - if !isnan(model.updated_parameters[p]) + new_p = model.updated_parameters[p] + if !isnan(new_p) delta_constant[term.output_index] += - term.scalar_term.coefficient * - (model.updated_parameters[p] - model.parameters[p]) + term.scalar_term.coefficient * (new_p - model.parameters[p]) end end return delta_constant @@ -747,21 +739,18 @@ function _delta_parametric_constant( var2 = term.scalar_term.variable_2 p1 = p_idx(var1) p2 = p_idx(var2) - - if !isnan(model.updated_parameters[p1]) || - !isnan(model.updated_parameters[p2]) - old_val1 = model.parameters[p1] - old_val2 = model.parameters[p2] - new_val1 = - !isnan(model.updated_parameters[p1]) ? - model.updated_parameters[p1] : old_val1 - new_val2 = - !isnan(model.updated_parameters[p2]) ? - model.updated_parameters[p2] : old_val2 - + new_p1 = model.updated_parameters[p1] + new_p2 = model.updated_parameters[p2] + isnan_1 = isnan(new_p1) + isnan_2 = isnan(new_p2) + if !isnan_1 || !isnan_2 + old_p1 = model.parameters[p1] + old_p2 = model.parameters[p2] + new_1 = isnan_1 ? old_p1 : new_p1 + new_2 = isnan_2 ? old_p2 : new_p2 coef = term.scalar_term.coefficient / (var1 == var2 ? 2 : 1) delta_constants[idx] += - coef * (new_val1 * new_val2 - old_val1 * old_val2) + coef * (new_1 * new_2 - old_p1 * old_p2) end end From 8af356dd26bb4d88117a5bd854adb437b541824e Mon Sep 17 00:00:00 2001 From: joaquimg Date: Tue, 24 Feb 2026 23:28:45 -0300 Subject: [PATCH 2/2] fmt --- src/parametric_functions.jl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/parametric_functions.jl b/src/parametric_functions.jl index 78082df7..d0f1deec 100644 --- a/src/parametric_functions.jl +++ b/src/parametric_functions.jl @@ -239,9 +239,10 @@ function _delta_parametric_constant( new_1 = ifelse(isnan_1, old_p1, new_p1) new_2 = ifelse(isnan_2, old_p2, new_p2) delta_constant += - (term.coefficient / - ifelse(term.variable_1 == term.variable_2, 2, 1)) * - (new_1 * new_2 - old_p1 * old_p2) + ( + term.coefficient / + ifelse(term.variable_1 == term.variable_2, 2, 1) + ) * (new_1 * new_2 - old_p1 * old_p2) end end return delta_constant @@ -749,8 +750,7 @@ function _delta_parametric_constant( new_1 = isnan_1 ? old_p1 : new_p1 new_2 = isnan_2 ? old_p2 : new_p2 coef = term.scalar_term.coefficient / (var1 == var2 ? 2 : 1) - delta_constants[idx] += - coef * (new_1 * new_2 - old_p1 * old_p2) + delta_constants[idx] += coef * (new_1 * new_2 - old_p1 * old_p2) end end