@@ -860,12 +860,9 @@ function cse_and_array_hacks(sys, obs, subeqs, unknowns, neweqs; cse = true, arr
860
860
# map of array observed variable (unscalarized) to number of its
861
861
# scalarized terms that appear in observed equations
862
862
arr_obs_occurrences = Dict ()
863
- # to check if array variables occur in unscalarized form anywhere
864
- all_vars = Set ()
865
863
for (i, eq) in enumerate (obs)
866
864
lhs = eq. lhs
867
865
rhs = eq. rhs
868
- vars! (all_vars, rhs)
869
866
870
867
# HACK 1
871
868
if cse && is_getindexed_array (rhs)
@@ -920,7 +917,6 @@ function cse_and_array_hacks(sys, obs, subeqs, unknowns, neweqs; cse = true, arr
920
917
tempvar; T = Symbolics. symtype (rhs_arr)))
921
918
tempvar = setmetadata (
922
919
tempvar, Symbolics. ArrayShapeCtx, Symbolics. shape (rhs_arr))
923
- vars! (all_vars, rhs_arr)
924
920
tempeq = tempvar ~ rhs_arr
925
921
rhs_to_tempvar[rhs_arr] = tempvar
926
922
push! (obs, tempeq)
@@ -946,18 +942,10 @@ function cse_and_array_hacks(sys, obs, subeqs, unknowns, neweqs; cse = true, arr
946
942
cnt == 0 && continue
947
943
arr_obs_occurrences[arg1] = cnt + 1
948
944
end
949
- for eq in neweqs
950
- vars! (all_vars, eq. rhs)
951
- end
952
945
953
- # also count unscalarized variables used in callbacks
954
- for ev in Iterators. flatten ((continuous_events (sys), discrete_events (sys)))
955
- vars! (all_vars, ev)
956
- end
957
946
obs_arr_eqs = Equation[]
958
947
for (arrvar, cnt) in arr_obs_occurrences
959
948
cnt == length (arrvar) || continue
960
- arrvar in all_vars || continue
961
949
# firstindex returns 1 for multidimensional array symbolics
962
950
firstind = first (eachindex (arrvar))
963
951
scal = [arrvar[i] for i in eachindex (arrvar)]
0 commit comments