#4487: [with patch; needs work] add method to evaluate characters of permutation
and matrix groups
--------------------------+-------------------------------------------------
Reporter: wdj | Owner: joyner
Type: enhancement | Status: new
Priority: major | Milestone: sage-3.2.1
Component: group_theory | Resolution:
Keywords: |
--------------------------+-------------------------------------------------
Comment (by saliola):
* As suggested, I switched from GroupCharacter to ClassFunction. Note that
this also changes the function being wrapped: GAP's ClassFunction instead
of Character. Besides being more general, it also eliminates the odd
behaviour you noticed above:
{{{
sage: G = GL(2,3)
sage: sage: len(G.conjugacy_class_representatives())
8
sage: chi2 = ClassFunction(G, [-1, -1, -1, -1, -1, 1, -1, -1])
sage: chi2.irreducible_constituents()
[Character of General Linear Group of degree 2 over Finite Field of size
3,
Character of General Linear Group of degree 2 over Finite Field of size
3,
Character of General Linear Group of degree 2 over Finite Field of size
3,
Character of General Linear Group of degree 2 over Finite Field of size
3,
Character of General Linear Group of degree 2 over Finite Field of size
3,
Character of General Linear Group of degree 2 over Finite Field of size
3]
sage: chi2 = ClassFunction(G, [1, 1, 1, 1, 1,1, 1, 1])
sage: chi2.irreducible_constituents()
[Character of General Linear Group of degree 2 over Finite Field of size
3]
sage: chi2 = ClassFunction(G, [2, 2, 2, 2, 2, 2, 2, 2])
sage: chi2.irreducible_constituents()
[Character of General Linear Group of degree 2 over Finite Field of size
3]
}}}
* I also fixed it so that Sage values are output instead of GAP elements.
Thanks for pointing out gfq_gap_to_sage. I fixed this by adding a
_base_ring data attribute that is set to the appropriate Cyclotomic Field
(like is done in the character_table method). This should also make it
possible to extend the code to work with values in arbitrary sage rings.
{{{
sage: G = GL(2,3)
sage: chi = G.irreducible_characters()[3]
sage: g = G.conjugacy_class_representatives()[6]
sage: chi(g)
zeta8^3 + zeta8
}}}
* Unfortunately, though, it seems that Cyclotomic field elements aren't
converted to GAP elements correctly, so using them as values won't work.
{{{
sage: G = GL(2,3)
sage: z = CyclotomicField(8).an_element; z
zeta8
sage: values = [2, 1, -2, -1, 0, -z^3 - z, z^3 + z, 0]
sage: xi = gap.ClassFunction(G, values); xi
ClassFunction( CharacterTable( GL(2,3) ),
[ 2, 1, -2, -1, 0, (-1*zeta8-1*zeta8^3), (zeta8+zeta8^3), 0 ] )
sage: ClassFunction(G, values)
Traceback: ...
}}}
I think this might be a bug:
{{{
sage: K = CyclotomicField(8)
sage: z = K.an_element; z
zeta8
sage: K(gap.E(8))
zeta8
sage: K(gap.E(8)) == z
True
sage: gap(z)
(zeta8)
sage: gap.E(8) == gap(z)
False
sage: gap(z)**4
!-1
}}}
I'm not sure what !-1 means. Any ideas?
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/4487#comment:6>
Sage <http://sagemath.org/>
Sage - Open Source Mathematical Software: Building the Car Instead of
Reinventing the Wheel
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en
-~----------~----~----~----~------~----~------~--~---