@@ -247,7 +247,6 @@ function bareiss!(
247
247
pivot = last_pivot = 1
248
248
tmp_incidence = Int[]
249
249
tmp_coeffs = Int[]
250
- vars = Set {Int} ()
251
250
252
251
# j -> vj
253
252
# e -> ei
@@ -266,8 +265,8 @@ function bareiss!(
266
265
end
267
266
268
267
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)
271
270
v = eadj[ei][vj]
272
271
deleteat! (eadj[ei], vj)
273
272
if ei != k
@@ -288,22 +287,21 @@ function bareiss!(
288
287
if vj === nothing # `v` is not in in `e`
289
288
continue
290
289
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)
293
292
deleteat! (eadj[ei], vj)
294
293
end
295
294
296
295
# the pivot row
297
296
kvars = eadj[k]
298
- kcoeffs = cadj [k]
297
+ kcoeffs = old_cadj [k]
299
298
# the elimination target
300
299
ivars = eadj[ei]
301
- icoeffs = cadj [ei]
300
+ icoeffs = old_cadj [ei]
302
301
303
302
empty! (tmp_incidence)
304
303
empty! (tmp_coeffs)
305
- empty! (vars)
306
- union! (vars, ivars, kvars)
304
+ vars = union (ivars, kvars)
307
305
308
306
for v in vars
309
307
ck = getcoeff (kvars, kcoeffs, v)
@@ -316,12 +314,12 @@ function bareiss!(
316
314
end
317
315
318
316
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]
320
318
end
321
319
last_pivot = pivot
322
320
# add `v` in the front of the `k`-th equation
323
321
pushfirst! (eadj[k], v)
324
- pushfirst! (cadj [k], pivot)
322
+ pushfirst! (old_cadj [k], pivot)
325
323
end
326
324
327
325
return m # fully ranked
0 commit comments