1
0
mirror of https://github.com/kalmarek/PropertyT.jl.git synced 2024-11-19 07:20:28 +01:00

rankOne_projections take a GroupRing now

This commit is contained in:
kalmarek 2018-08-15 19:13:26 +02:00
parent 0c2f5b1a9a
commit 677ae32ee2
2 changed files with 7 additions and 9 deletions

View File

@ -162,7 +162,7 @@ function compute_orbit_data{T<:GroupElem}(logger, name::String, S::Vector{T}, au
reps = matrix_reps(reps) reps = matrix_reps(reps)
info(logger, "Projections") info(logger, "Projections")
@logtime logger autS_mps = Projections.rankOne_projections(autS); @logtime logger autS_mps = Projections.rankOne_projections(GroupRing(autS));
@logtime logger π_E_projections = [Cstar_repr(p, reps) for p in autS_mps] @logtime logger π_E_projections = [Cstar_repr(p, reps) for p in autS_mps]

View File

@ -142,11 +142,9 @@ function rankOne_projection(chi::PermCharacter, idems::Vector{T}) where {T<:Grou
throw("Couldn't find rank-one projection for $chi") throw("Couldn't find rank-one projection for $chi")
end end
function rankOne_projections(G::Generic.PermGroup, T::Type=Rational{Int}) function rankOne_projections(RG::GroupRing{G}, T::Type=Rational{Int}) where G<:Generic.PermGroup
if G.n == 1 if RG.group.n == 1
return [one(GroupRing(G), T)] return [GroupRingElem([one(T)], RG)]
else
RG = GroupRing(G, fastm=false)
end end
RGidems = idempotents(RG, T) RGidems = idempotents(RG, T)
@ -165,14 +163,14 @@ function orbit_selector(n::Integer, k::Integer,
return Projections.DirectProdCharacter(ntuple(i -> (i <= k ? chi : psi), n)) return Projections.DirectProdCharacter(ntuple(i -> (i <= k ? chi : psi), n))
end end
function rankOne_projections(Bn::WreathProduct, T::Type=Rational{Int}) function rankOne_projections(RBn::GroupRing{G}, T::Type=Rational{Int}) where {G<:WreathProduct}
Bn = RBn.group
N = Bn.P.n N = Bn.P.n
# projections as elements of the group rings RSₙ # projections as elements of the group rings RSₙ
Sn_rankOnePr = [rankOne_projections(PermutationGroup(Int8(i))) for i in 1:N] Sn_rankOnePr = [rankOne_projections(GroupRing(PermutationGroup(i))) for i in typeof(N)(1):N]
# embedding into group ring of BN # embedding into group ring of BN
RBn = GroupRing(Bn)
RN = GroupRing(Bn.N) RN = GroupRing(Bn.N)
sign, id = collect(characters(Bn.N.group)) sign, id = collect(characters(Bn.N.group))