Skip to content

Commit 3cc7795

Browse files
committed
Write to old coefficient array
1 parent ce6de0b commit 3cc7795

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

src/systems/alias_elimination.jl

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,6 @@ function bareiss!(
247247
pivot = last_pivot = 1
248248
tmp_incidence = Int[]
249249
tmp_coeffs = Int[]
250-
vars = Set{Int}()
251250

252251
# j -> vj
253252
# e -> ei
@@ -266,8 +265,8 @@ function bareiss!(
266265
end
267266

268267
if vj > 0 # has a pivot
269-
pivot = cadj[ei][vj]
270-
deleteat!(cadj[ei] , vj)
268+
pivot = old_cadj[ei][vj]
269+
deleteat!(old_cadj[ei] , vj)
271270
v = eadj[ei][vj]
272271
deleteat!(eadj[ei], vj)
273272
if ei != k
@@ -288,22 +287,21 @@ function bareiss!(
288287
if vj === nothing # `v` is not in in `e`
289288
continue
290289
else # remove `v`
291-
coeff = cadj[ei][vj]
292-
deleteat!(cadj[ei], vj)
290+
coeff = old_cadj[ei][vj]
291+
deleteat!(old_cadj[ei], vj)
293292
deleteat!(eadj[ei], vj)
294293
end
295294

296295
# the pivot row
297296
kvars = eadj[k]
298-
kcoeffs = cadj[k]
297+
kcoeffs = old_cadj[k]
299298
# the elimination target
300299
ivars = eadj[ei]
301-
icoeffs = cadj[ei]
300+
icoeffs = old_cadj[ei]
302301

303302
empty!(tmp_incidence)
304303
empty!(tmp_coeffs)
305-
empty!(vars)
306-
union!(vars, ivars, kvars)
304+
vars = union(ivars, kvars)
307305

308306
for v in vars
309307
ck = getcoeff(kvars, kcoeffs, v)
@@ -316,12 +314,12 @@ function bareiss!(
316314
end
317315

318316
eadj[ei], tmp_incidence = tmp_incidence, eadj[ei]
319-
cadj[ei], tmp_coeffs = tmp_coeffs, cadj[ei]
317+
old_cadj[ei], tmp_coeffs = tmp_coeffs, old_cadj[ei]
320318
end
321319
last_pivot = pivot
322320
# add `v` in the front of the `k`-th equation
323321
pushfirst!(eadj[k], v)
324-
pushfirst!(cadj[k], pivot)
322+
pushfirst!(old_cadj[k], pivot)
325323
end
326324

327325
return m # fully ranked

0 commit comments

Comments
 (0)