Skip to content

Commit 1016572

Browse files
Thore KockerolsThore Kockerols
authored andcommitted
Refactor write_functions_mapping! to simplify steady state variable mapping
1 parent 4a53c96 commit 1016572

1 file changed

Lines changed: 4 additions & 7 deletions

File tree

src/MacroModelling.jl

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6991,7 +6991,7 @@ function write_functions_mapping!(𝓂::ℳ, max_perturbation_order::Int;
69916991
n_params = length(𝓂.parameters)
69926992
n_calib_params = length(𝓂.calibration_equations_parameters)
69936993
n_vars = length(𝓂.var)
6994-
n_ss = length(dyn_ss_idx)
6994+
n_ss = n_vars
69956995
n_exo = length(𝓂.exo)
69966996

69976997
# Create symbolic arrays for full vectors (not indexed subsets)
@@ -7029,8 +7029,7 @@ function write_functions_mapping!(𝓂::ℳ, max_perturbation_order::Int;
70297029

70307030
# Map steady state variables (for calibration equations)
70317031
# Find which variables appear in steady state and map them to ss_sym
7032-
for (i, ss_idx) in enumerate(dyn_ss_idx)
7033-
var = 𝓂.var[ss_idx]
7032+
for (i, var) in enumerate(𝓂.var)
70347033
var_str = string(var)
70357034
# Steady state: k₍ₛₛ₎ -> ss_sym[i]
70367035
direct_substitution_dict[Symbol(var_str * "₍ₛₛ₎")] = ss_sym[i]
@@ -7053,11 +7052,9 @@ function write_functions_mapping!(𝓂::ℳ, max_perturbation_order::Int;
70537052
timing_to_ss_dict = Dict{Symbol, Symbol}()
70547053
for var in 𝓂.var
70557054
var_str = string(var)
7056-
timing_to_ss_dict[Symbol(var_str * "₍₀₎")] = Symbol(var_str * "₍ₛₛ₎")
7057-
timing_to_ss_dict[Symbol(var_str * "₍₋₁₎")] = Symbol(var_str * "₍ₛₛ₎")
7058-
timing_to_ss_dict[Symbol(var_str * "₍₁₎")] = Symbol(var_str * "₍ₛₛ₎")
7055+
timing_to_ss_dict[var] = Symbol(var_str * "₍ₛₛ₎")
70597056
end
7060-
7057+
70617058
calib_eqs_direct = 𝓂.calibration_equations |>
70627059
x -> replace_symbols.(x, Ref(timing_to_ss_dict)) |> # Convert timing to steady state
70637060
x -> replace_symbols.(x, Ref(calib_replacements)) |>

0 commit comments

Comments
 (0)