Skip to content

Commit 8751c41

Browse files
Fix nondeterministic ordering in first-order transformation
1 parent 9ed6e5c commit 8751c41

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/systems/diffeqs/first_order_transform.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,21 @@ function ode_order_lowering!(eqs, naming_scheme)
2828
idv = extract_idv(eqs[1])
2929
D = Differential(idv, 1)
3030
var_order = Dict{Variable,Int}()
31+
vars = Variable[]
3132
dv_name = eqs[1].lhs.args[1].subtype
3233

3334
for eq in eqs
3435
var, maxorder = extract_var_order(eq)
3536
maxorder == 1 && continue # fast pass
3637
if maxorder > get(var_order, var, 0)
3738
var_order[var] = maxorder
39+
var vars || push!(vars, var)
3840
end
3941
lhs_renaming!(eq, D, naming_scheme)
4042
rhs_renaming!(eq, naming_scheme)
4143
end
4244

43-
for var keys(var_order)
45+
for var vars
4446
order = var_order[var]
4547
for o in (order-1):-1:1
4648
lhs = D(lower_varname(var, idv, o-1, naming_scheme))

0 commit comments

Comments
 (0)