mirror of
https://github.com/kalmarek/PropertyT.jl.git
synced 2024-09-18 09:38:00 +02:00
threaded minimalprojections
This commit is contained in:
parent
94074750cf
commit
9a62cc2444
@ -112,7 +112,7 @@ end
|
|||||||
|
|
||||||
function minimalprojections(G::PermutationGroup, T::Type=Rational{Int})
|
function minimalprojections(G::PermutationGroup, T::Type=Rational{Int})
|
||||||
if G.n == 1
|
if G.n == 1
|
||||||
return [(one(GroupRing(G), T), one(GroupRing(G), T))]
|
return [one(GroupRing(G), T)]
|
||||||
elseif G.n < 8
|
elseif G.n < 8
|
||||||
RG = GroupRing(G, fastm=true)
|
RG = GroupRing(G, fastm=true)
|
||||||
else
|
else
|
||||||
@ -120,16 +120,22 @@ function minimalprojections(G::PermutationGroup, T::Type=Rational{Int})
|
|||||||
end
|
end
|
||||||
|
|
||||||
RGidems = idempotents(RG, T)
|
RGidems = idempotents(RG, T)
|
||||||
chars = [PropertyT.PermCharacter(p) for p in Partitions(G.n)]
|
l = length(Partitions(G.n))
|
||||||
|
|
||||||
return [
|
parts = collect(Partitions(G.n))
|
||||||
(rankOne_projection(chi, RGidems), PropertyT.central_projection(RG, chi))
|
chars = [PropertyT.PermCharacter(p) for p in parts]
|
||||||
for chi in chars]
|
min_projs = Vector{eltype(RGidems)}(l)
|
||||||
|
|
||||||
|
Threads.@threads for i in 1:l
|
||||||
|
chi = PropertyT.PermCharacter(parts[i])
|
||||||
|
min_projs[i] = rankOne_projection(chi,RGidems)*central_projection(RG,chi)
|
||||||
|
end
|
||||||
|
|
||||||
|
return min_projs
|
||||||
end
|
end
|
||||||
|
|
||||||
function rankOne_projections(G::PermutationGroup, T::Type=Rational{Int})
|
function rankOne_projections(G::PermutationGroup, T::Type=Rational{Int})
|
||||||
mps = minimalprojections(G, T)
|
return minimalprojections(G, T)
|
||||||
return [idem*cproj for (idem, cproj) in mps]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function rankOne_projections(BN::WreathProduct, T::Type=Rational{Int})
|
function rankOne_projections(BN::WreathProduct, T::Type=Rational{Int})
|
||||||
|
Loading…
Reference in New Issue
Block a user