#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
-~----------~----~----~----~------~----~------~--~---

Reply via email to