Skip to content

Commit 7a4d004

Browse files
committed
Minor optimization
1 parent e28b5dc commit 7a4d004

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/systems/reduction.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,10 @@ function topsort_observed(eqs, states)
135135
end
136136

137137
idx = 0
138-
order = zeros(Int, neqs)
138+
ordered_eqs = similar(eqs)
139139
while !isempty(q)
140140
𝑠eq = dequeue!(q)
141-
order[idx+=1] = 𝑠eq
141+
ordered_eqs[idx+=1] = eqs[𝑠eq]
142142
var = assigns[𝑠eq]
143143
for 𝑑eq in 𝑑neighbors(graph, var)
144144
degree = degrees[𝑑eq] = degrees[𝑑eq] - 1
@@ -148,15 +148,15 @@ function topsort_observed(eqs, states)
148148

149149
idx == neqs || throw(ArgumentError("The obversed equations have at least one cycle."))
150150

151-
return eqs[order]
151+
return ordered_eqs
152152
end
153153

154154
function observed2graph(eqs, states)
155155
graph = BipartiteGraph(length(eqs), length(states))
156156
v2j = Dict(states .=> 1:length(states))
157157

158-
# `eqs[eq_idx]` defines `assigns[eq_idx]` var
159-
assigns = Vector{Any}(undef, length(eqs))
158+
# `assigns: eq -> var`, `eq` defines `var`
159+
assigns = similar(eqs, Int)
160160

161161
for (i, eq) in enumerate(eqs)
162162
lhs_j = get(v2j, eq.lhs, nothing)

0 commit comments

Comments
 (0)