mirror of
https://github.com/kalmarek/PropertyT.jl.git
synced 2024-11-29 17:50:27 +01:00
update to parametrised perms in Nemo
This commit is contained in:
parent
3161779c1c
commit
94fa72ae80
@ -100,7 +100,7 @@ function matrix_repr(p::perm)
|
|||||||
return sparse(1:N, p.d, [1.0 for _ in 1:N])
|
return sparse(1:N, p.d, [1.0 for _ in 1:N])
|
||||||
end
|
end
|
||||||
|
|
||||||
function matrix_reps{T<:GroupElem}(preps::Dict{T,perm})
|
function matrix_reps(preps::Dict{T,perm{I}}) where {T<:GroupElem, I<:Integer}
|
||||||
kk = collect(keys(preps))
|
kk = collect(keys(preps))
|
||||||
mreps = Vector{SparseMatrixCSC{Float64, Int}}(length(kk))
|
mreps = Vector{SparseMatrixCSC{Float64, Int}}(length(kk))
|
||||||
Threads.@threads for i in 1:length(kk)
|
Threads.@threads for i in 1:length(kk)
|
||||||
|
@ -67,7 +67,7 @@ function central_projection(RG::GroupRing, chi::AbstractCharacter, T::Type=Ratio
|
|||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
|
||||||
function idempotents(RG::GroupRing{Generic.PermGroup}, T::Type=Rational{Int})
|
function idempotents(RG::GroupRing{Generic.PermGroup{S}}, T::Type=Rational{S}) where S<:Integer
|
||||||
if RG.group.n == 1
|
if RG.group.n == 1
|
||||||
return GroupRingElem{T}[one(RG,T)]
|
return GroupRingElem{T}[one(RG,T)]
|
||||||
elseif RG.group.n == 2
|
elseif RG.group.n == 2
|
||||||
@ -76,7 +76,7 @@ function idempotents(RG::GroupRing{Generic.PermGroup}, T::Type=Rational{Int})
|
|||||||
return GroupRingElem{T}[1//2*(Id + transp), 1//2*(Id - transp)]
|
return GroupRingElem{T}[1//2*(Id + transp), 1//2*(Id - transp)]
|
||||||
|
|
||||||
end
|
end
|
||||||
projs = Vector{Vector{Generic.perm}}()
|
projs = Vector{Vector{Generic.perm{S}}}()
|
||||||
for l in 2:RG.group.n
|
for l in 2:RG.group.n
|
||||||
u = RG.group([circshift([i for i in 1:l], -1); [i for i in l+1:RG.group.n]])
|
u = RG.group([circshift([i for i in 1:l], -1); [i for i in l+1:RG.group.n]])
|
||||||
i = 0
|
i = 0
|
||||||
@ -129,14 +129,15 @@ function rankOne_projections(G::Generic.PermGroup, T::Type=Rational{Int})
|
|||||||
end
|
end
|
||||||
|
|
||||||
RGidems = idempotents(RG, T)
|
RGidems = idempotents(RG, T)
|
||||||
l = length(Partitions(G.n))
|
l = length(AllParts(G.n))
|
||||||
|
|
||||||
parts = collect(Partitions(G.n))
|
chars = [PropertyT.PermCharacter(p) for p in AllParts(G.n)]
|
||||||
chars = [PropertyT.PermCharacter(p) for p in parts]
|
|
||||||
min_projs = Vector{eltype(RGidems)}(l)
|
min_projs = Vector{eltype(RGidems)}(l)
|
||||||
|
|
||||||
for i in 1:l
|
i = 0
|
||||||
chi = PropertyT.PermCharacter(parts[i])
|
for part in AllParts(G.n)
|
||||||
|
i += 1
|
||||||
|
chi = PropertyT.PermCharacter(part)
|
||||||
min_projs[i] = rankOne_projection(chi,RGidems)*central_projection(RG,chi)
|
min_projs[i] = rankOne_projection(chi,RGidems)*central_projection(RG,chi)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user