diff --git a/main.jl b/main.jl index ba2fa81..57f25e0 100644 --- a/main.jl +++ b/main.jl @@ -3,41 +3,42 @@ using SCS.SCSSolver # using CSDP # using SDPA -function main(GROUP, parsed_args) +include("groups/Allgroups.jl") +using PropertyTGroups - radius = parsed_args["radius"] - tol = parsed_args["tol"] - iterations = parsed_args["iterations"] - upper_bound = parsed_args["upper-bound"] - warm = parsed_args["warmstart"] +struct Symmetrize end +struct Standard end - name, N = GROUP.groupname(parsed_args) - G, S = GROUP.generatingset(parsed_args) - if !PARSEDARGS["nosymmetry"] - autS = GROUP.autS(parsed_args) - end - - if !PARSEDARGS["nosymmetry"] - name = "o$(name)_r$radius" - else - name = "$(name)_r$radius" - end - - isdir(name) || mkdir(name) - - logger = PropertyT.setup_logging(joinpath(name, "$(upper_bound)"), :fulllog) - - info(logger, "Group: $name") +function summarize(logger, groupdir, iterations, tol, upper_bound, radius, G, S) + info(logger, "Group: $groupdir") info(logger, "Iterations: $iterations") info(logger, "Precision: $tol") info(logger, "Upper bound: $upper_bound") + info(logger, "Radius: $radius") info(logger, "Threads: $(Threads.nthreads())") info(logger, "Workers: $(workers())") - info(logger, G) + info(logger, string(G)) info(logger, "with generating set of size $(length(S))") - if !PARSEDARGS["nosymmetry"] - info(logger, "Symmetrising with $autS") - end +end + +function params(Gr::SymmetricGroup) + radius = Gr.args["radius"] + tol = Gr.args["tol"] + iterations = Gr.args["iterations"] + upper_bound = Gr.args["upper-bound"] + warm = Gr.args["warmstart"] + N = Gr.args["N"] + return radius, tol, iterations, upper_bound, warm, N +end + +function params(Gr::PropertyTGroup) + radius = Gr.args["radius"] + tol = Gr.args["tol"] + iterations = Gr.args["iterations"] + upper_bound = Gr.args["upper-bound"] + warm = Gr.args["warmstart"] + return radius, tol, iterations, upper_bound, warm +end solver = SCSSolver(eps=tol, max_iters=iterations, linearsolver=SCS.Direct, alpha=1.95, acceleration_lookback=1)