Skip to content

Commit 9b4dd00

Browse files
fix: correctly handle parameter dependencies
1 parent 730ad20 commit 9b4dd00

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/systems/parameter_buffer.jl

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ function MTKParameters(
4646
bigdefs = merge(defs, p)
4747
p = Dict()
4848
missing_params = Set()
49+
pdeps = has_parameter_dependencies(sys) ? parameter_dependencies(sys) : nothing
4950

5051
for sym in all_ps
5152
ttsym = default_toterm(sym)
@@ -78,6 +79,16 @@ function MTKParameters(
7879
delete!(missing_params, ttsym)
7980
end
8081

82+
if pdeps !== nothing
83+
for (sym, expr) in pdeps
84+
sym = unwrap(sym)
85+
ttsym = default_toterm(sym)
86+
delete!(missing_params, sym)
87+
delete!(missing_params, ttsym)
88+
p[sym] = p[ttsym] = expr
89+
end
90+
end
91+
8192
isempty(missing_params) || throw(MissingParametersError(collect(missing_params)))
8293

8394
p = Dict(unwrap(k) => fixpoint_sub(v, bigdefs) for (k, v) in p)
@@ -151,8 +162,7 @@ function MTKParameters(
151162
# Don't narrow nonnumeric types
152163
nonnumeric_buffer = nonnumeric_buffer
153164

154-
if has_parameter_dependencies(sys) &&
155-
(pdeps = parameter_dependencies(sys)) !== nothing
165+
if pdeps !== nothing
156166
pdeps = Dict(k => fixpoint_sub(v, pdeps) for (k, v) in pdeps)
157167
dep_exprs = ArrayPartition((Any[missing for _ in 1:length(v)] for v in dep_buffer)...)
158168
for (sym, val) in pdeps

0 commit comments

Comments
 (0)