diff --git a/SL_orbit.jl b/SL_orbit.jl index b6781c1..d9f5fef 100644 --- a/SL_orbit.jl +++ b/SL_orbit.jl @@ -43,20 +43,22 @@ end function SL_generatingset(n::Int) indexing = [(i,j) for i in 1:n for j in 1:n if i≠j] G = Nemo.MatrixSpace(Nemo.ZZ, n, n) - S = [E(i,j,G) for (i,j) in indexing]; - S = vcat(S, [transpose(x) for x in S]); + S = [E(i,j,G) for (i,j) in indexing] + S = vcat(S, [transpose(x) for x in S]) + S = vcat(S, [inv(x) for x in S]) return G, unique(S) end function SL_generatingset(n::Int, p::Int) p == 0 && return SL_generatingset(n) (p > 1 && n > 1) || throw("Both n and p should be positive integers!") - @info("Size(SL($n,$p)) = $(SLsize(n,p))") + info("Size(SL($n,$p)) = $(SLsize(n,p))") F = Nemo.ResidueRing(Nemo.ZZ, p) G = Nemo.MatrixSpace(F, n, n) indexing = [(i,j) for i in 1:n for j in 1:n if i≠j] S = [E(i, j, G) for (i,j) in indexing] S = vcat(S, [transpose(x) for x in S]) + S = vcat(S, [inv(x) for x in S]) return G, unique(S) end