1
0
mirror of https://github.com/kalmarek/PropertyT.jl.git synced 2024-10-15 16:10:35 +02:00

Introduce {Perm,DirectProd}Character <: AbstractCharacter <: Function

This commit is contained in:
kalmar 2017-07-27 22:05:15 +02:00
parent b89598c67c
commit 536542c3a6

View File

@ -1,11 +1,28 @@
###############################################################################
#
# Character of DirectProducts
# Characters of Symmetric Group and DirectProduct
#
###############################################################################
function epsilon(i, g::DirectProductGroupElem)
return reduce(*, 1, ((-1)^isone(g.elts[j]) for j in 1:i))
abstract AbstractCharacter <: Function
immutable PermCharacter <: AbstractCharacter
p::Partition
end
immutable DirectProdCharacter <: AbstractCharacter
i::Int
end
function (chi::PermCharacter)(g::Nemo.perm)
R = Nemo.partitionseq(chi.p)
p = Partition(Nemo.permtype(g))
return Int(Nemo.MN1inner(R, p, 1, Nemo._charvalsTable))
end
## NOTE: this works only for Z/2!!!!
function (chi::DirectProdCharacter)(g::DirectProductGroupElem)
return reduce(*, 1, ((-1)^isone(g.elts[j]) for j in 1:chi.i))
end
###############################################################################