Skip to content

Commit 9672db4

Browse files
committed
Fix sorted_incidence_matrix
1 parent 5df7991 commit 9672db4

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

src/structural_transformation/utils.jl

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -109,20 +109,20 @@ function find_var_sccs(g::BipartiteGraph, assign=nothing)
109109
return sccs
110110
end
111111

112-
function sorted_incidence_matrix(sys, val=true; only_algeqs=false, only_algvars=false)
113-
var_eq_matching, var_scc = algebraic_variables_scc(sys)
114-
s = structure(sys)
115-
@unpack fullvars, graph = s
116-
g = graph
112+
function sorted_incidence_matrix(ts::TransformationState, val=true; only_algeqs=false, only_algvars=false)
113+
var_eq_matching, var_scc = algebraic_variables_scc(ts)
114+
fullvars = ts.fullvars
115+
s = ts.structure
116+
graph = ts.structure.graph
117117
varsmap = zeros(Int, ndsts(graph))
118118
eqsmap = zeros(Int, nsrcs(graph))
119119
varidx = 0
120120
eqidx = 0
121-
for vs in scc, v in vs
121+
for vs in var_scc, v in vs
122122
eq = var_eq_matching[v]
123123
if eq !== unassigned
124124
eqsmap[eq] = (eqidx += 1)
125-
varsmap[var] = (varidx += 1)
125+
varsmap[v] = (varidx += 1)
126126
end
127127
end
128128
for i in diffvars_range(s)
@@ -139,9 +139,10 @@ function sorted_incidence_matrix(sys, val=true; only_algeqs=false, only_algvars=
139139

140140
I = Int[]
141141
J = Int[]
142-
for eq in 𝑠vertices(g)
143-
only_algeqs && (isalgeq(s, eq) || continue)
144-
for var in 𝑠neighbors(g, eq)
142+
algeqs_set = algeqs(s)
143+
for eq in 𝑠vertices(graph)
144+
only_algeqs && (eq in algeqs_set || continue)
145+
for var in 𝑠neighbors(graph, eq)
145146
only_algvars && (isalgvar(s, var) || continue)
146147
i = eqsmap[eq]
147148
j = varsmap[var]

0 commit comments

Comments
 (0)