Skip to content

Commit 8bb4eb6

Browse files
committed
Call default_toterm on each default only once
1 parent a0ce384 commit 8bb4eb6

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/systems/nonlinear/initializesystem.jl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -190,11 +190,13 @@ function generate_initializesystem_timevarying(sys::AbstractSystem;
190190
push!(pars, get_iv(sys))
191191

192192
# 8) use observed equations for guesses of observed variables if not provided
193+
guessed = Set(keys(defs)) # x(t), D(x(t)), ...
194+
guessed = union(guessed, Set(default_toterm.(guessed))) # x(t), D(x(t)), xˍt(t), ...
193195
for eq in trueobs
194-
haskey(defs, eq.lhs) && continue
195-
any(x -> isequal(default_toterm(x), eq.lhs), keys(defs)) && continue
196-
197-
defs[eq.lhs] = eq.rhs
196+
if !(eq.lhs in guessed)
197+
defs[eq.lhs] = eq.rhs
198+
#push!(guessed, eq.lhs) # should not encounter eq.lhs twice, so don't need to track it
199+
end
198200
end
199201
append!(eqs_ics, trueobs)
200202

0 commit comments

Comments
 (0)