Skip to content

Commit eea20ba

Browse files
authored
performance improvement in state_indexing
1 parent 742dc91 commit eea20ba

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/state_indexing.jl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,11 @@ for (t1, t2) in [
252252
return MultipleGetters(ContinuousTimeseries(), sym)
253253
end
254254
sym_arr = sym isa Tuple ? collect(sym) : sym
255-
num_observed = count(x -> is_observed(sys, x), sym)
255+
num_observed = 0
256+
for s in sym
257+
num_observed += is_observed(sys, s)
258+
num_observed > 1 && break # exit early, we only need to know whether 0, 1, or more
259+
end
256260
if !is_time_dependent(sys)
257261
if num_observed == 0 || num_observed == 1 && sym isa Tuple
258262
return MultipleGetters(nothing, getu.((sys,), sym))
@@ -275,7 +279,6 @@ for (t1, t2) in [
275279
ts_idxs = collect(ts_idxs)
276280
end
277281

278-
num_observed = count(x -> is_observed(sys, x), sym)
279282
if num_observed == 0 || num_observed == 1 && sym isa Tuple
280283
getters = getu.((sys,), sym)
281284
return MultipleGetters(ts_idxs, getters)

0 commit comments

Comments
 (0)