make AutS an argument of compute_orbit_data
This commit is contained in:
parent
fbfa968e78
commit
f9127c59b4
@ -194,14 +194,14 @@ function SOutFN_generating_set(logger, name::String, N::Int)
|
||||
end
|
||||
|
||||
function init_orbit_data{T<:Nemo.GroupElem}(logger, name::String, G::Nemo.Group,
|
||||
S::Vector{T}; radius=2)
|
||||
S::Vector{T}, AutS::Nemo.Group; radius=2)
|
||||
|
||||
ex(fname) = isfile(joinpath(name, fname))
|
||||
|
||||
files_exists = ex.(["delta.jld", "pm.jld", "U_pis.jld", "orbits.jld"])
|
||||
|
||||
if !all(files_exists)
|
||||
compute_orbit_data(logger, name, SOutFN, S, radius=radius)
|
||||
compute_orbit_data(logger, name, SOutFN, S, AutS, radius=radius)
|
||||
end
|
||||
|
||||
return 0
|
||||
|
@ -157,7 +157,8 @@ function Uπ_matrices(P_matrices; orth=orthSVD)
|
||||
return U_p_matrices
|
||||
end
|
||||
|
||||
function compute_orbit_data{T<:GroupElem}(logger, name::String, G::Group, S::Vector{T}; radius=2)
|
||||
|
||||
function compute_orbit_data{T<:GroupElem}(logger, name::String, G::Group, S::Vector{T}, AutS; radius=2)
|
||||
isdir(name) || mkdir(name)
|
||||
|
||||
info(logger, "Generating ball of radius 4")
|
||||
@ -173,30 +174,26 @@ function compute_orbit_data{T<:GroupElem}(logger, name::String, G::Group, S::Vec
|
||||
save(joinpath(name, "delta.jld"), "Δ", Δ.coeffs)
|
||||
save(joinpath(name, "pm.jld"), "pm", pm)
|
||||
|
||||
N = length(G.objectGroup.gens)
|
||||
info(logger, "WreathProduct")
|
||||
@time BN = WreathProduct(Nemo.FiniteField(2,1, "a")[1], PermutationGroup(N))
|
||||
|
||||
info(logger, "Decomposing E into orbits of B$(N)")
|
||||
@time orbs = orbit_decomposition(BN, E4, E_dict)
|
||||
info(logger, "Decomposing E into orbits of $(Aut_S)")
|
||||
@time orbs = orbit_decomposition(AutS, E4, E_dict)
|
||||
@assert sum(length(o) for o in orbs) == length(E4)
|
||||
save(joinpath(name, "orbits.jld"), "orbits", orbs)
|
||||
|
||||
info(logger, "Action matrices")
|
||||
E2 = E4[1:sizes[radius]]
|
||||
@time BNactionE_mreps = [matrix_repr(g, E2, E_dict) for g in elements(BN)]
|
||||
@time AutS_matrixreps = [matrix_repr(g, E2, E_dict) for g in elements(AutS)]
|
||||
|
||||
info(logger, "Projections")
|
||||
@time BN_mps = rankOne_projections(BN);
|
||||
@time AutS_mps = rankOne_projections(AutS);
|
||||
|
||||
@time π_E_projections = [Cstar_repr(p, BNactionE_mreps) for p in BN_mps]
|
||||
@time π_E_projections = [Cstar_repr(p, AutS_matrixreps) for p in AutS_mps]
|
||||
|
||||
info(logger, "Uπs...")
|
||||
@time Uπs = Uπ_matrices(π_E_projections);
|
||||
|
||||
multiplicities = [size(U,2) for U in Uπs];
|
||||
info(logger, "multiplicities = $multiplicities")
|
||||
dimensions = [Int(p[BN()]*Int(order(BN))) for p in BN_mps];
|
||||
dimensions = [Int(p[AutS()]*Int(order(AutS))) for p in AutS_mps];
|
||||
info(logger, "dimensions = $dimensions")
|
||||
@assert dot(multiplicities, dimensions) == sizes[radius]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user