@@ -942,7 +942,16 @@ Keyword arguments:
942942 `available_vars` will not be searched for in the observed equations.
943943"""
944944function observed_equations_used_by (sys:: AbstractSystem , exprs;
945- involved_vars = vars (exprs; op = Union{Shift, Differential, Initial}), obs = observed (sys), available_vars = [])
945+ involved_vars = nothing , obs = observed (sys), available_vars = Set {SymbolicT} ())
946+ if involved_vars === nothing
947+ involved_vars = Set {SymbolicT} ()
948+ SU. search_variables! (involved_vars, exprs; is_atomic = OperatorIsAtomic {Union{Shift, Differential, Initial}} ())
949+ elseif ! (involved_vars isa Set{SymbolicT})
950+ involved_vars = Set {SymbolicT} (involved_vars)
951+ end
952+ if ! (available_vars isa Set)
953+ available_vars = Set (available_vars)
954+ end
946955 if iscomplete (sys) && obs == observed (sys)
947956 cache = getmetadata (sys, MutableCacheKey, nothing )
948957 obs_graph_cache = get! (cache, ObservedGraphCacheKey) do
@@ -956,10 +965,6 @@ function observed_equations_used_by(sys::AbstractSystem, exprs;
956965 graph = observed_dependency_graph (obs)
957966 end
958967
959- if ! (available_vars isa Set)
960- available_vars = Set (available_vars)
961- end
962-
963968 obsidxs = BitSet ()
964969 for sym in involved_vars
965970 sym in available_vars && continue
0 commit comments