From b45adc2e003580a3613d6a5f7fa711702643b54e Mon Sep 17 00:00:00 2001 From: kalmarek Date: Sun, 16 Sep 2018 17:53:10 +0200 Subject: [PATCH] add external constructors for SAut i SL --- groups/autfreegroup.jl | 7 ++++--- groups/speciallinear.jl | 22 +++++++++++----------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/groups/autfreegroup.jl b/groups/autfreegroup.jl index 252973d..2ebc398 100644 --- a/groups/autfreegroup.jl +++ b/groups/autfreegroup.jl @@ -1,9 +1,10 @@ struct SpecialAutomorphismGroup{N} <: SymmetrizedGroup group::AutGroup +end - function SpecialAutomorphismGroup(args::Dict) - return new{args["SAut"]}(AutGroup(FreeGroup(N), special=true)) - end +function SpecialAutomorphismGroup(args::Dict) + N = args["SAut"] + return SpecialAutomorphismGroup{N}(AutGroup(FreeGroup(N), special=true)) end name(G::SpecialAutomorphismGroup{N}) where N = "SAutF$(N)" diff --git a/groups/speciallinear.jl b/groups/speciallinear.jl index 722823c..aa94391 100644 --- a/groups/speciallinear.jl +++ b/groups/speciallinear.jl @@ -2,20 +2,20 @@ struct SpecialLinearGroup{N} <: SymmetrizedGroup group::AbstractAlgebra.Group p::Int X::Bool +end - function SpecialLinearGroup(args::Dict) - N = args["SL"] - p = args["p"] - X = args["X"] +function SpecialLinearGroup(args::Dict) + N = args["SL"] + p = args["p"] + X = args["X"] - if p == 0 - G = MatrixSpace(Nemo.ZZ, N, N) - else - R = Nemo.NmodRing(UInt(p)) - G = MatrixSpace(R, N, N) - end - return new{N}(G, p, X) + if p == 0 + G = MatrixSpace(Nemo.ZZ, N, N) + else + R = Nemo.NmodRing(UInt(p)) + G = MatrixSpace(R, N, N) end + return SpecialLinearGroup{N}(G, p, X) end function name(G::SpecialLinearGroup{N}) where N