using ArgParse ############################################################################### # # Parsing command line # ############################################################################### function parse_commandline() settings = ArgParseSettings() @add_arg_table settings begin "--tol" help = "set numerical tolerance for the SDP solver" arg_type = Float64 default = 1e-14 "--iterations" help = "set maximal number of iterations for the SDP solver" arg_type = Int default = 60000 "--upper-bound" help = "Set an upper bound for the spectral gap" arg_type = Float64 default = Inf "--cpus" help = "Set number of cpus used by solver" arg_type = Int required = false "-N" help = "Consider elementary matrices EL(N)" arg_type = Int default = 2 "-p" help = "Matrices over field of p-elements (p=0 => over ZZ)" arg_type = Int default = 0 "--radius" help = "Radius of ball B_r(e,S) to find solution over" arg_type = Int default = 2 "-X" help = "Consider EL(N, ZZ⟨X⟩)" action = :store_true "--warmstart" help = "Use warmstart.jld as the initial guess for SCS" action = :store_true end return parse_args(settings) end const PARSEDARGS = parse_commandline() include("CPUselect.jl") set_parallel_mthread(PARSEDARGS, workers=true) include("groups/speciallinear.jl") include("Orbit.jl") main(SpecialLinear, PARSEDARGS)