diff --git a/experimental/MatroidRealizationSpaces/src/realization_space.jl b/experimental/MatroidRealizationSpaces/src/realization_space.jl index 53df759d346d..a237d510abcf 100644 --- a/experimental/MatroidRealizationSpaces/src/realization_space.jl +++ b/experimental/MatroidRealizationSpaces/src/realization_space.jl @@ -159,7 +159,7 @@ function realization_space_matrix(M::Matroid, B::Vector{Int}, F::Ring) unUsedRowsForOnes = collect(2:rk) for col in 1:(n - rk), row in 1:rk circ = circs[col] - if !(B[row] == minimum(circ)) && B[row] in circ + if !(B[row] == minimum(circ; init=inf)) && B[row] in circ if row in unUsedRowsForOnes unUsedRowsForOnes = setdiff(unUsedRowsForOnes, [row]) else @@ -191,7 +191,7 @@ function realization_space_matrix(M::Matroid, B::Vector{Int}, F::Ring) circ = circs[col] c = nonIdCols[col] - if B[row] == minimum(circ) + if B[row] == minimum(circ; init=inf) mat[row, c] = R(1) elseif B[row] in circ if row in unUsedRowsForOnes @@ -850,6 +850,7 @@ function reduce_realization_space( for j in 1:n g = gcd(Xnew[:, j]...) + is_zero(g) && continue prime_divisors = poly_2_prime_divisors(g) for f in prime_divisors if f in normal_Sgens diff --git a/experimental/MatroidRealizationSpaces/test/runtests.jl b/experimental/MatroidRealizationSpaces/test/runtests.jl index fcc0622ba5a9..ca32c6990471 100644 --- a/experimental/MatroidRealizationSpaces/test/runtests.jl +++ b/experimental/MatroidRealizationSpaces/test/runtests.jl @@ -149,3 +149,8 @@ end @test is_reduced(RS) == false end +@testset "realization spaces with loops" begin + r = matroid_from_bases([[3,5],[3,4],[2,5],[2,4]],5) + X = realization_space(r,char=0) +end +