Skip to content

Commit c2c3eeb

Browse files
committed
Add observed
1 parent 33d5b5c commit c2c3eeb

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/systems/alias_elimination.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ function alias_elimination(sys)
1818
s = structure(sys)
1919
@unpack fullvars, graph = s
2020

21-
subs = Dict()
21+
subs = OrderedDict()
2222
if length(v_eliminated) - n_null_vars > 0
2323
for v in v_eliminated[n_null_vars+1:end]
2424
subs[fullvars[v]] = iszeroterm(v_types, v) ? 0.0 :
@@ -45,11 +45,12 @@ function alias_elimination(sys)
4545
dels = sort(collect(dels))
4646
deleteat!(eqs, dels)
4747

48+
dict = Dict(subs)
4849
for (ieq, eq) in enumerate(eqs)
4950
if !isdiffeq(eq) && !_iszero(eq.lhs)
5051
eq = 0 ~ eq.rhs - eq.lhs
5152
end
52-
eqs[ieq] = eq.lhs ~ fixpoint_sub(eq.rhs, subs)
53+
eqs[ieq] = eq.lhs ~ fixpoint_sub(eq.rhs, dict)
5354
end
5455

5556
newstates = []
@@ -62,6 +63,7 @@ function alias_elimination(sys)
6263

6364
@set! sys.eqs = eqs
6465
@set! sys.states = newstates
66+
@set! sys.observed = [get_observed(sys); [lhs ~ rhs for (lhs, rhs) in pairs(subs)]]
6567
@set! sys.structure = nothing
6668
return sys
6769
end

0 commit comments

Comments
 (0)