1
0
mirror of https://github.com/kalmarek/PropertyT.jl.git synced 2024-11-23 08:15:29 +01:00

indentation

This commit is contained in:
kalmarek 2017-11-08 11:10:30 +01:00
parent ea6a6722be
commit 6f0087b8c7

View File

@ -49,47 +49,45 @@ end
# #
############################################################################### ###############################################################################
function central_projection(RG::GroupRing, chi::AbstractCharacter, function central_projection(RG::GroupRing, chi::AbstractCharacter, T::Type=Rational{Int})
T::Type=Rational{Int}) result = RG(T)
result = RG(T) result.coeffs = full(result.coeffs)
result.coeffs = full(result.coeffs) dim = chi(RG.group())
dim = chi(RG.group()) ord = Int(order(RG.group))
ord = Int(order(RG.group))
for g in RG.basis for g in RG.basis
result[g] = convert(T, (dim//ord)*chi(g)) result[g] = convert(T, (dim//ord)*chi(g))
end end
return result return result
end end
function idempotents(RG::GroupRing{PermGroup}, T::Type=Rational{Int}) function idempotents(RG::GroupRing{PermGroup}, T::Type=Rational{Int})
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
Id = one(RG,T) Id = one(RG,T)
transp = convert(T, RG(RG.group([2,1]))) transp = convert(T, RG(RG.group([2,1])))
return GroupRingElem{T}[1//2*(Id + transp), 1//2*(Id - transp)] return GroupRingElem{T}[1//2*(Id + transp), 1//2*(Id - transp)]
end
projs = Vector{Vector{perm}}()
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]])
i = 0
while (l-1)*i <= RG.group.n
v = RG.group(circshift(collect(1:RG.group.n), i))
k = inv(v)*u*v
push!(projs, generateGroup([k], RG.group.n))
i += 1
end
end
end idems = Vector{GroupRingElem{T}}()
projs = Vector{Vector{perm}}() for p in projs
for l in 2:RG.group.n append!(idems, [RG(p, T), RG(p, T, alt=true)])
u = RG.group([circshift([i for i in 1:l], -1); [i for i in l+1:RG.group.n]]) end
i = 0
while (l-1)*i <= RG.group.n
v = RG.group(circshift(collect(1:RG.group.n), i))
k = inv(v)*u*v
push!(projs, generateGroup([k], RG.group.n))
i += 1
end
end
idems = Vector{GroupRingElem{T}}() return unique(idems)
for p in projs
append!(idems, [RG(p, T), RG(p, T, alt=true)])
end
return unique(idems)
end end
function rankOne_projection{S}(chi::PropertyT.PermCharacter, idems::Vector{GroupRingElem{S}}) function rankOne_projection{S}(chi::PropertyT.PermCharacter, idems::Vector{GroupRingElem{S}})
@ -163,7 +161,7 @@ function rankOne_projections(BN::WreathProduct, T::Type=Rational{Int})
last_emb = g->BN(Nemo.emb!(BN.P(), g, range[i+1:end])) last_emb = g->BN(Nemo.emb!(BN.P(), g, range[i+1:end]))
Sk_first = [RBN(p, first_emb) for p in SNprojs_nc[i]] Sk_first = [RBN(p, first_emb) for p in SNprojs_nc[i]]
Sk_last = [RBN(p, last_emb ) for p in SNprojs_nc[N-i]] Sk_last = [RBN(p, last_emb) for p in SNprojs_nc[N-i]]
append!(all_projs, append!(all_projs,
[Qs[i]*p1*p2 for (p1,p2) in Base.product(Sk_first,Sk_last)]) [Qs[i]*p1*p2 for (p1,p2) in Base.product(Sk_first,Sk_last)])
@ -187,18 +185,18 @@ doc"""
> forming 'products' by adding `op` (which is `*` by default). > forming 'products' by adding `op` (which is `*` by default).
""" """
function products{T<:GroupElem}(X::AbstractVector{T}, Y::AbstractVector{T}, op=*) function products{T<:GroupElem}(X::AbstractVector{T}, Y::AbstractVector{T}, op=*)
result = Vector{T}() result = Vector{T}()
seen = Set{T}() seen = Set{T}()
for x in X for x in X
for y in Y for y in Y
z = op(x,y) z = op(x,y)
if !in(z, seen) if !in(z, seen)
push!(seen, z) push!(seen, z)
push!(result, z) push!(result, z)
end end
end end
end end
return result return result
end end
doc""" doc"""