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 _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum