#############################################################################
##
#F                             CHEVIE library
##
#Y  Copyright 1992--1993,  Lehrstuhl D f"ur Mathematik,    RWTH Aachen,   and
#Y                         IWR   der   Universit"at    Heidelberg,   Germany.
##
#T : Orthogonalitaetsrelationen o.k. uep
#############################################################################
#									    #
#	Die Charaktertafel von Sz(q^2), q^2 = 2^(2n+1)		            #
#              								    #
#############################################################################
lprint(`**************************************************************************`);
lprint(`*                                                                        *`);
lprint(`*                                                                        *`);
lprint(`*               Generic Character Table of Sz(q^2),                      *`);
lprint(`*                                                                        *`);
lprint(`*                        q^2 = 2^{2m+1}                                  *`);
lprint(`*                                                                        *`);
lprint(`**************************************************************************`);

q:='q':aA:='aA':bB:='bB':cC:='cC':sS:='sS':kK:='kK':uU:='uU':r2:='r2':
EW4:='EW4':GEWZ2:='GEWZ2':GEWC8p:='GEWC8p':GEWC8pp:='GEWC8pp':

`Sz` := array( -2 .. 7, -1.. 7, [

	[`Sz(q)`,`2B2002`,q^4*(q^4+1)*(q^2-1),7,7,7,7],

 [
  [` `],
  [` `],
  [` `,[1,0],[`^2B_2`,`u_0`]],
  [` `,[1,1],[`^2B_2`,`u_1`]],
  [` `,[1,2],[`^2B_2`,`u_2`]],
  [` `,[1,3],[`^2B_2`,`u_3`]],
  [` `,[2,0],[`A_0`,[1]]],
  [` `,[3,0],[`A_0`,[1]]],
  [` `,[4,0],[`A_0`,[1]]]
 ],

 [` `,1,1,(q^2-1)*(q^4+1),q^2/2*(q^2-1)*(q^4+1),q^2/2*(q^2-1)*(q^4+1),
  q^4*(q^4+1),q^4*(q^2-1)*(q^2-r2*q+1),q^4*(q^2-1)*(q^2+r2*q+1)],

 [[` `,[1,0],[`^2B_2`,`1`],`1`],
  1, 1, 1, 1, 1, 1, 1, 1],

 [[` `,[1,1],[`^2B_2`,`2B2[a]`],`2B2[a]`],
  q/r2*(q^2-1), q/r2*(q^2-1), -q/r2, q/r2*EW4, -q/r2*EW4, 0, 1, -1],
	
 [[` `,[1,2],[`^2B_2`,`2B2[b]`],`2B2[b]`],
  q/r2*(q^2-1), q/r2*(q^2-1), -q/r2, -q/r2*EW4, q/r2*EW4, 0, 1, -1],

 [[` `,[1,3],[`^2B_2`,`\\epsilon`],`St`],
  q^4, q^4, 0, 0, 0, 1, -1, -1],

 [[` `,[2,0],[`A_0`,[1]],`chi5`],
  q^4+1, q^4+1, 1, 1, 1, GEWZ2^(sS*aA)+GEWZ2^(-sS*aA), 0, 0],

 [[` `,[3,0],[`A_0`,[1]],`chi6`],
  (q^2-1)*(q^2-r2*q+1), (q^2-1)*(q^2-r2*q+1), r2*q-1, -1, -1, 0,
  -(GEWC8p^(kK*bB)+GEWC8p^(-kK*bB)+GEWC8p^(q^2*kK*bB)+GEWC8p^(-q^2*kK*bB)), 0],

 [[` `,[4,0],[`A_0`,[1]],`chi7`],
  (q^2-1)*(q^2+r2*q+1), (q^2-1)*(q^2+r2*q+1), -r2*q-1, -1, -1, 0, 0,
  -(GEWC8pp^(uU*cC)+GEWC8pp^(-uU*cC)+GEWC8pp^(q^2*uU*cC)+GEWC8pp^(-q^2*uU*cC))]

]):

Klassen.`Sz`.Parameter := array(-1..7,[
 [[],[]],
 [[],[]],
 [[],[]],
 [[],[]],
 [[],[]],
 [[],[]],
 [[aA=1..q^2-1],[[aA,q^2-1]]],
 [[bB=1..q^2+r2*q+1],[[bB,q^2+r2*q+1]]],
 [[cC=1..q^2-r2*q+1],[[cC,q^2-r2*q+1]]]
]):

Char.`Sz`.Parameter := array(-2..7,[
 [[],[]],
 [[],[]],
 [[],[]],
 [[],[]],
 [[],[]],
 [[],[]],
 [[],[]],
 [[sS=1..q^2-1],[[sS,q^2-1]]],
 [[kK=1..q^2+r2*q+1],[[kK,q^2+r2*q+1]]],
 [[uU=1..q^2-r2*q+1],[[uU,q^2-r2*q+1]]]
]):

Klassen.`2B2002`.Summe.1 :=proc(tt) tt end:

Klassen.`2B2002`.Summe.2:=proc(tt) tt end:
Klassen.`2B2002`.Summe.3 :=proc(tt) tt end:
Klassen.`2B2002`.Summe.4 :=proc(tt) tt end:
Klassen.`2B2002`.Summe.5 :=proc(tt)
   local s1;
   s1 := nesum(tt,aA=1..q^2-2);
   linkomb(1/2,s1);
end:

Klassen.`2B2002`.Summe.6 :=proc(tt) 
   local s1; 
   s1 := nesum(tt,bB=1..q^2 + r2*q); 
   linkomb(1/4,s1);
end:

Klassen.`2B2002`.Summe.7 :=proc(tt)  
   local s1;  
   s1 := nesum(tt,cC=1..q^2 - r2*q);  
   linkomb(1/4,s1); 
end:

Char.`2B2002`.Summe.1 :=proc(tt) tt end:
Char.`2B2002`.Summe.2 :=proc(tt) tt end:
Char.`2B2002`.Summe.3 :=proc(tt) tt end:
Char.`2B2002`.Summe.4 :=proc(tt) tt end:
Char.`2B2002`.Summe.5 :=proc(tt)
   local s1;
   s1 := nesum(tt,sS=1..q^2-2);
   linkomb(1/2,s1);
end:
Char.`2B2002`.Summe.6 :=proc(tt)
   local s1;
   s1 := nesum(tt,kK=1..q^2 + r2*q);
   linkomb(1/4,s1);
end:
Char.`2B2002`.Summe.7 :=proc(tt)
   local s1;
   s1 := nesum(tt,uU=1..q^2 - r2*q);
   linkomb(1/4,s1);
end:


parameter2B2002:=proc(x,char,class)
	subs(aA=aA.class,bB=bB.class,cC=cC.class,sS=sS.char,kK=kK.char,uU=uU.char,x)
end:

r2 := sqrt(2):

 
setCongruence.`2B2002` := proc()
  qQ := 'qQ';
  q := r2*qQ;
  NULL;
end:

unsetCongruence.`2B2002` := proc()
  q := 'q';
  qQ := q/r2;
  NULL;
end:

# 5) Informationen:
Information.`2B2002`:=TEXT(
`- Information about the generic character table of $^2B_2(q^2)$.`,
``,
`- CHEVIE-name of the table: ``Sz```,
``,
`- The table was first computed in:`,
`  {\\sc M. Suzuki}, On a class of doubly transitive groups, {\\em Ann. of`,
`    Math. \\bf75} (1962), 105--145.`,
``
):

g := `Sz`:
print(`g := ``Sz`` `);
