Skip to content

Commit 5249fbb

Browse files
Merge pull request #101 from baggepinnen/patch-1
performance improvement in state_indexing
2 parents 742dc91 + eea20ba commit 5249fbb

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)