[GAP Forum] Accessing information in character tables

Thomas Breuer thomas.breuer at math.rwth-aachen.de
Fri Sep 18 09:41:24 BST 2009


Dear GAP Forum,

Ravi Kulkarni wrote:

> I need to calculate det(1-tg) for g in a finite group (say C2 x S4).
> Is there some way to programatically access the information in the
> power maps that are
> displayed with each character table?
> Right now, I am doing it by hand - printing the table and then looking
> up the conjugacy class of
> powers of g manually - but I keep feeling there should be a better way
> to do it...
> Any suggestions would be most welcome please...

Power maps of a character table can be accessed with `PowerMap',
see the GAP Reference Manual (type ?PowerMap in GAP).

Concerning the specific question about computing determinants,
let G be a group, rho be an ordinary matrix representation of G,
chi be the character afforded by rho, t be an indeterminate,
and g be an element in G.
Then det( rho(1) - t * rho(g) ) can be computed from the values of chi
plus the power map information, using that this determinant is
the product of ( 1 - t x ) where x ranges over the eigenvalues of rho(g).
In GAP, one can use the function `EigenvaluesChar' for computing
the multiplicities of the roots of unity in question as eigenvalues;
again, see the GAP Reference Manual.

Here is an example:

1. Create a small group, take one of its representations,
   compute class representatives in the image group of the representation,
   and compute the character.

gap> g:= DirectProduct( Group( (1,2) ), SymmetricGroup( 4 ) );;
gap> rep:= IrreducibleRepresentations( g )[10];;
gap> tbl:= CharacterTable( g );;
gap> ccl:= List( ConjugacyClasses( tbl ), c -> Representative( c )^rep );;
gap> chi:= List( ccl, Trace );
[ 3, -1, 0, -1, 1, -3, 1, 0, 1, -1 ]

2. Compute the multiplicities of eigenvalues from the character.

gap> ev:= List( [ 1 .. Length( chi ) ],
>               i -> EigenvaluesChar( tbl, chi, i ) );
[ [ 3 ], [ 2, 1 ], [ 1, 1, 1 ], [ 2, 1 ], [ 1, 0, 1, 1 ], [ 3, 0 ], [ 1, 2 ], 
  [ 1, 0, 1, 0, 1, 0 ], [ 1, 2 ], [ 1, 1, 1, 0 ] ]

3. Create an indeterminate.

gap> t:= Indeterminate( Rationals, "t" );
t

4. Write a small GAP function that computes the determinant from the
   eigenvalues data.

gap> detfromev:= function( evs, t )
> local det, i;
> det:= 1;
> for i in [ 1 .. Length( evs ) ] do
>   det:= det * ( 1 - t * E( Length( evs ) )^i )^evs[i];
> od;
> return det;
> end;;

5. Compute the determinants.

gap> dets:= List( ev, x -> detfromev( x, t ) );
[ -t^3+3*t^2-3*t+1, -t^3-t^2+t+1, -t^3+1, -t^3-t^2+t+1, -t^3+t^2-t+1, 
  t^3+3*t^2+3*t+1, t^3-t^2-t+1, t^3+1, t^3-t^2-t+1, t^3+t^2+t+1 ]

6. Compute the determinants directly from the matrices,
   in order to check the result.

gap> id:= One( ccl[1] );
[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ]
gap> List( ccl, x -> Determinant( id - x * t ) ) = dets;
true

All the best,
Thomas



More information about the Forum mailing list