diff --git a/groups/Allgroups.jl b/groups/Allgroups.jl index 4cb8762..fb259e0 100644 --- a/groups/Allgroups.jl +++ b/groups/Allgroups.jl @@ -4,7 +4,7 @@ using AbstractAlgebra using Nemo using Groups -export PropertyTGroup, SymmetrizedGroup, GAPGroup +export PropertyTGroup, SymmetrizedGroup, GAPGroup, Naive, Symmetrize, abstract type PropertyTGroup end @@ -12,6 +12,9 @@ abstract type SymmetrizedGroup <: PropertyTGroup end abstract type GAPGroup <: PropertyTGroup end +struct Symmetrize end +struct Naive end + include("autfreegroup.jl") include("speciallinear.jl") diff --git a/main.jl b/main.jl index 1cd6f12..edd43be 100644 --- a/main.jl +++ b/main.jl @@ -13,9 +13,6 @@ using SCS.SCSSolver include("groups/Allgroups.jl") using PropertyTGroups -struct Symmetrize end -struct Standard end - function summarize(groupdir, iterations, tol, upper_bound, radius, G, S) info("Group: $groupdir") info("Iterations: $iterations") @@ -73,6 +70,11 @@ function main(Gr::PropertyTGroup) return main(Symmetrize, Gr, dir=groupdir) end end + +function main(::Type{Symmetrize}, Gr::SymmetrizedGroup; dir=tempname()) + + radius, tol, iterations, upper_bound, warm, N = params(Gr) + G = PropertyTGroups.group(Gr) S = PropertyTGroups.generatingset(Gr) @@ -88,14 +90,10 @@ end return PropertyT.check_property_T(sett) end -function main(::Type{Standard}, Gr::SymmetrizedGroup) +function main(::Type{Naive}, Gr::SymmetrizedGroup; dir="") radius, tol, iterations, upper_bound, warm, _ = params(Gr) - groupdir = "$(PropertyTGroups.name(Gr))_r$radius" - isdir(groupdir) || mkdir(groupdir) - logger = PropertyT.setup_logging(joinpath(groupdir, "$(upper_bound)"), :fulllog) - G = PropertyTGroups.group(Gr) S = PropertyTGroups.generatingset(Gr) @@ -114,24 +112,17 @@ function main(::Type{Standard}, Gr::SymmetrizedGroup) end - -function main(Gr::GAPGroup) +function main(::Type{Naive}, Gr::GAPGroup; dir="") radius, tol, iterations, upper_bound, warm = params(Gr) - groupdir = "$(PropertyTGroups.name(Gr))_r$radius" - isdir(groupdir) || mkdir(groupdir) - logger = PropertyT.setup_logging(joinpath(groupdir, "$(upper_bound)"), :fulllog) - G = PropertyTGroups.group(Gr) S = PropertyTGroups.generatingset(Gr) relations = [k*inv(v) for (k,v) in G.rels] - prepare_pm_delta(groupdir, GAP_groupcode(S, relations), radius) + prepare_pm_delta(dir, GAP_groupcode(S, relations), radius) - S = unique([S; inv.(S)]) - - summarize(logger, groupdir, iterations, tol, upper_bound, radius, G, S) + summarize(dir, iterations, tol, upper_bound, radius, G, S) solver = scs_solver(tol, iterations)