GroupsWithPropertyT/Orbit.jl

48 lines
1.2 KiB
Julia

using SCS.SCSSolver
# using Mosek
using Nemo
if VERSION >= v"0.6.0"
import Nemo.Generic.perm
end
using PropertyT
using Groups
function main(GROUP, parsed_args)
radius = parsed_args["radius"]
tol = parsed_args["tol"]
iterations = parsed_args["iterations"]
upper_bound = parsed_args["upper-bound"]
name, N = GROUP.groupname(parsed_args)
G, S = GROUP.generatingset(parsed_args)
AutS = GROUP.autS(parsed_args)
name = "$(name)_r$radius"
isdir(name) || mkdir(name)
logger = PropertyT.setup_logging(joinpath(name, "$(upper_bound)"))
info(logger, "Group: $name")
info(logger, "Iterations: $iterations")
info(logger, "Precision: $tol")
info(logger, "Upper bound: $upper_bound")
info(logger, "Threads: $(Threads.nthreads())")
info(logger, "Workers: $(workers())")
info(logger, G)
info(logger, "Symmetric generating set of size $(length(S))")
# info(logger, S)
solver = SCSSolver(eps=tol, max_iters=iterations, linearsolver=SCS.Direct)
# solver = Mosek.MosekSolver(
# MSK_DPAR_INTPNT_CO_TOL_REL_GAP=tol,
# MSK_IPAR_INTPNT_MAX_ITERATIONS=iterations,
# QUIET=false)
sett = Settings(name, N, G, S, AutS, radius, solver, upper_bound, tol)
PropertyT.check_property_T(sett)
end