@@ -109,20 +109,20 @@ function find_var_sccs(g::BipartiteGraph, assign=nothing)
109
109
return sccs
110
110
end
111
111
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
117
117
varsmap = zeros (Int, ndsts (graph))
118
118
eqsmap = zeros (Int, nsrcs (graph))
119
119
varidx = 0
120
120
eqidx = 0
121
- for vs in scc , v in vs
121
+ for vs in var_scc , v in vs
122
122
eq = var_eq_matching[v]
123
123
if eq != = unassigned
124
124
eqsmap[eq] = (eqidx += 1 )
125
- varsmap[var ] = (varidx += 1 )
125
+ varsmap[v ] = (varidx += 1 )
126
126
end
127
127
end
128
128
for i in diffvars_range (s)
@@ -139,9 +139,10 @@ function sorted_incidence_matrix(sys, val=true; only_algeqs=false, only_algvars=
139
139
140
140
I = Int[]
141
141
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)
145
146
only_algvars && (isalgvar (s, var) || continue )
146
147
i = eqsmap[eq]
147
148
j = varsmap[var]
0 commit comments