#############################################################################
##
#F                             CHEVIE library
##
#Y  Copyright 1992--1993,  Lehrstuhl D f"ur Mathematik,    RWTH Aachen,   and
#Y                         IWR   der   Universit"at    Heidelberg,   Germany.
##
##
#A {\sc H.~N.~Ward}, On Ree's series of simple groups,
#A {\em Trans.\ Amer.\ Math.\ Soc.} {\bf 121} (1966), 62--89.
##
lprint(`**************************************************************************`);
lprint(`*                                                                        *`);
lprint(`*                                                                        *`);
lprint(`*                 Generic Character Table of Ree's group                 *`);
lprint(`*                                                                        *`);
lprint(`*                    ^2G_2(q^2), q^2 = 3^{2*m+1}                        *`);
lprint(`*                                                                        *`);
lprint(`**************************************************************************`);

q:='q':qQ:='qQ':iI:='iI':jJ:='jJ':kK:='kK':lL:='lL':
sqrt3:=sqrt(3):

# Charakterwerte:

`ree` := array( -2 .. 14, -1 .. 14, [

[`^2G_2(q)`,`2G2003`,
q**6*(q**2+1+q*sqrt3)*(q**2+1-q*sqrt3)*(q**2+1)*(q-1)*(q+1),
14,14,14,14],

[[],[],
[``,[1,0],[`^2G_2`,`1`],`1`],
[``,[1,1],[`^2G_2`,`X`],`X`],
[``,[1,2],[`^2G_2`,`T`],`T`],
[``,[1,3],[`^2G_2`,`T^{-1}`],`T^{-1}`],
[``,[1,4],[`^2G_2`,`Y`],`Y`],
[``,[1,5],[`^2G_2`,`YT`],`YT`],
[``,[1,6],[`^2G_2`,`YT^{-1}`],`YT^{-1}`],
[``,[2,0],[`A_1`,`1`],`J`],
[``,[2,1],[`A_1`,`T`],`JT`],
[``,[2,2],[`A_1`,`T^{-1}`],`JT^{-1}`],
[``,[3,0],[`A_0`,`1`],`R^a and JR^a`],
[``,[4,0],[`A_0`,`1`],`V`],
[``,[5,0],[`A_0`,`1`],`S^a and JS^a`],
[``,[6,0],[`A_0`,`1`],`W`]
],

[` `,
1,
1,
(q-1)*(q+1)*(q**2+1+q*sqrt3)*(q**2+1-q*sqrt3)*(q**2+1),
1/2*q**2*(q-1)*(q+1)*(q**2+1+q*sqrt3)*(q**2+1-q*sqrt3)*(q**2+1),
1/2*q**2*(q-1)*(q+1)*(q**2+1+q*sqrt3)*(q**2+1-q*sqrt3)*(q**2+1),
1/3*q**4*(q-1)*(q+1)*(q**2+1+q*sqrt3)*(q**2+1-q*sqrt3)*(q**2+1),
1/3*q**4*(q-1)*(q+1)*(q**2+1+q*sqrt3)*(q**2+1-q*sqrt3)*(q**2+1),
1/3*q**4*(q-1)*(q+1)*(q**2+1+q*sqrt3)*(q**2+1-q*sqrt3)*(q**2+1),
q**4*(q**2+1+q*sqrt3)*(q**2+1-q*sqrt3),
1/2*q**4*(q-1)*(q+1)*(q**2+1+q*sqrt3)*(q**2+1-q*sqrt3)*(q**2+1),
1/2*q**4*(q-1)*(q+1)*(q**2+1+q*sqrt3)*(q**2+1-q*sqrt3)*(q**2+1),
q**6*(q**2+1+q*sqrt3)*(q**2+1-q*sqrt3)*(q**2+1),
q**6*(q-1)*(q+1)*(q**2+1)*(q**2+1+q*sqrt3),
q**6*(q-1)*(q+1)*(q**2+1+q*sqrt3)*(q**2+1-q*sqrt3),
q**6*(q-1)*(q+1)*(q**2+1)*(q**2+1-q*sqrt3)],


[[``,[1,0],[`^2G_2`,0],`xi_1, one`],
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1],

[[``,[1,1],[`^2G_2`,1],`xi_5`], 
1/6*sqrt3*q*(q-1)*(q+1)*(q^2+1+q*sqrt3),
1/6*sqrt3*q*(q-1)*(q+1)*(q^2+1+q*sqrt3),
-1/2*(q^2+q/sqrt3),
1/2/sqrt3*(-q+q^2*EW4),
1/2/sqrt3*(-q-q^2*EW4),
q/sqrt3,
-q/2/sqrt3*(1+sqrt3*EW4),
-q/2/sqrt3*(1-sqrt3*EW4),
-1/2*(q^2-1),
1/2*(1-q*EW4),
1/2*(1+q*EW4),
0,
-1,
1,
0],

[[``,[1,2],[`^2G_2`,2],`xi_6`], 
1/6*sqrt3*q*(q-1)*(q+1)*(q^2+1-q*sqrt3),
1/6*sqrt3*q*(q-1)*(q+1)*(q^2+1-q*sqrt3),
1/2*(q^2-q/sqrt3),
1/2/sqrt3*(-q+q^2*EW4),
1/2/sqrt3*(-q-q^2*EW4),
q/sqrt3,
-q/2/sqrt3*(1+sqrt3*EW4),
-q/2/sqrt3*(1-sqrt3*EW4),
1/2*(q^2-1),
-1/2*(1-q*EW4),
-1/2*(1+q*EW4),
0,
0,
-1,
1],

[[``,[1,3],[`^2G_2`,3],`xi_7`], 
1/6*sqrt3*q*(q-1)*(q+1)*(q^2+1+q*sqrt3),
1/6*sqrt3*q*(q-1)*(q+1)*(q^2+1+q*sqrt3),
-1/2*(q^2+q/sqrt3),
1/2/sqrt3*(-q-q^2*EW4),
1/2/sqrt3*(-q+q^2*EW4),
q/sqrt3,
-q/2/sqrt3*(1-sqrt3*EW4),
-q/2/sqrt3*(1+sqrt3*EW4),
-1/2*(q^2-1),
1/2*(1+q*EW4),
1/2*(1-q*EW4),
0,
-1,
1,
0],

[[``,[1,4],[`^2G_2`,4],`xi_8`], 
1/6*sqrt3*q*(q-1)*(q+1)*(q^2+1-q*sqrt3),
1/6*sqrt3*q*(q-1)*(q+1)*(q^2+1-q*sqrt3),
1/2*(q^2-q/sqrt3),
1/2/sqrt3*(-q-q^2*EW4),
1/2/sqrt3*(-q+q^2*EW4),
q/sqrt3,
-q/2/sqrt3*(1-sqrt3*EW4),
-q/2/sqrt3*(1+sqrt3*EW4),
1/2*(q^2-1),
-1/2*(1+q*EW4),
-1/2*(1-q*EW4),
0,
0,
-1,
1],

[[``,[1,5],[`^2G_2`,5],`xi_9`], 
1/sqrt3*q*(q^4-1),
1/sqrt3*q*(q^4-1),
-q/sqrt3,
1/sqrt3*(-q+q^2*EW4),
1/sqrt3*(-q-q^2*EW4),
-q/sqrt3,
q/2/sqrt3*(1+sqrt3*EW4),
q/2/sqrt3*(1-sqrt3*EW4),
0,
0,
0,
0,
-1,
0,
1],

[[``,[1,6],[`^2G_2`,6],`xi_{10}`], 
1/sqrt3*q*(q^4-1),
1/sqrt3*q*(q^4-1),
-q/sqrt3,
1/sqrt3*(-q-q^2*EW4),
1/sqrt3*(-q+q^2*EW4),
-q/sqrt3,
q/2/sqrt3*(1-sqrt3*EW4),
q/2/sqrt3*(1+sqrt3*EW4),
0,
0,
0,
0,
-1,
0,
1],

[[``,[1,7],[`^2G_2`,7],`xi_3, St`], 
q^6,
q^6,
0,
0,
0,
0,
0,
0,
q^2,
0,
0,
1,
-1,
-1,
-1],

[[``,[2,0],[`A_1`,[2]],`xi_2`], 
(q^2+1-q*sqrt3)*(q^2+1+q*sqrt3),
(q^2+1-q*sqrt3)*(q^2+1+q*sqrt3),
1-q^2,
1,
1,
1,
1,
1,
-1,
-1,
-1,
EW2^iI,
0,
EW2^iI+EW2^jJ+EW2^(iI+jJ),
0],

[[``,[2,1],[`A_1`,[1,1]],`xi_4`], 
q^2*(q^2+1-q*sqrt3)*(q^2+1+q*sqrt3),
q^2*(q^2+1-q*sqrt3)*(q^2+1+q*sqrt3),
q^2,
0,
0,
0,
0,
0,
-q^2,
0,
0,
EW2^iI,
0,
-(EW2^iI+EW2^jJ+EW2^(iI+jJ)),
0],

[[``,[3,0],[`A_0`,[1]],`eta_r and eta_r'`],
(q**2+1)*(q**2+1+q*sqrt3)*(q**2+1-q*sqrt3),
(q**2+1)*(q**2+1+q*sqrt3)*(q**2+1-q*sqrt3),
1,
1,
1,
1,
1,
1,
(q^2+1)*EW2^kK,
EW2^kK,
EW2^kK,
GEWZ2^(iI*kK)+GEWZ2^(-iI*kK),
0,
0,
0],

[[``,[4,0],[`A_0`,[1]],`eta_i^-`], 
(q-1)*(q+1)*(q^2+sqrt3*q+1)*(q^2+1),
(q-1)*(q+1)*(q^2+sqrt3*q+1)*(q^2+1),
-q^2-1-sqrt3*q,
-sqrt3*q-1,
-sqrt3*q-1,
-1,
-1,
-1,
0,
0,
0,
0,
-(GEWC12p^(iI*kK)+GEWC12p^((sqrt3*q-1)*iI*kK)+GEWC12p^((sqrt3*q-2)*iI*kK)+
GEWC12p^(-iI*kK)+GEWC12p^((-sqrt3*q+1)*iI*kK)+GEWC12p^((-sqrt3*q+2)*iI*kK)),
0,
0],

[[``,[5,0],[`A_0`,[1]],`eta_t and eta_t'`], 
(q-1)*(q+1)*(q^2+1-q*sqrt3)*(q^2+1+q*sqrt3),
(q-1)*(q+1)*(q^2+1-q*sqrt3)*(q^2+1+q*sqrt3),
2*q^2-1,
-1,
-1,
-1,
-1,
-1,
(EW2^kK+EW2^(kK+lL)+EW2^lL)*(q^2-1),
-(EW2^kK+EW2^(kK+lL)+EW2^lL),
-(EW2^kK+EW2^(kK+lL)+EW2^lL),
0, 
0,
# Miniprogramm zur Berechnung des folgenden Charakterwertes:
#iI:='iI';jJ:='jJ'; sqrt3:=sqrt(3);
#i0:='iI';j0:='jJ';
#for r to 5 do 
#  i.r:=normal((1+sqrt3*q)/2*i.(r-1)+(q^2+1)/4*j.(r-1));
#  j.r:=normal(i.(r-1)+(1+q/sqrt3)/2*j.(r-1));
#od;
#for r from 0 to 5 do
#  a.r:=GEWY2^(2*i.r*kK)*EW2^(j.r*lL);
#  setCongruence2G2003();
#  b.r:=qscew2GEW(GEW2qscew(a.r));
#  unsetCongruence2G2003();
#  b.r:=normal(b.r);
#od;
#sqrt3:='sqrt3';
#for r from 0 to 5 do lprint(`+`,subs(3^(1/2)='sqrt3', b.r));od;
-(GEWY2^(2*iI*kK+1/2*jJ*lL*q^2+1/2*jJ*lL)
+GEWY2^(iI*kK*q*sqrt3+iI*kK+1/2*kK*jJ*q^2+1/2*kK*jJ+1/2*lL*iI*q^2+1/2*lL*iI)
+GEWY2^(iI*kK*q*sqrt3-iI*kK+1/2*kK*jJ*q^2+1/2*kK*jJ+
                          1/2*lL*iI*q^2+1/2*lL*iI+1/2*jJ*lL*q^2+1/2*jJ*lL)
+GEWY2^(-2*iI*kK+1/2*jJ*lL*q^2+1/2*jJ*lL)
+GEWY2^(-iI*kK*q*sqrt3-iI*kK+1/2*kK*jJ*q^2+1/2*kK*jJ+1/2*lL*iI*q^2+1/2*lL*iI)
+GEWY2^(iI*kK-iI*kK*q*sqrt3+1/2*kK*jJ*q^2+1/2*kK*jJ+
                         1/2*lL*iI*q^2+1/2*lL*iI+1/2*jJ*lL*q^2+1/2*jJ*lL)),

0],

[[``,[4,0],[`A_0`,[1]],`eta_i^+`], 
(q-1)*(q+1)*(q^2-sqrt3*q+1)*(q^2+1),
(q-1)*(q+1)*(q^2-sqrt3*q+1)*(q^2+1),
-q^2-1+sqrt3*q,
sqrt3*q-1,
sqrt3*q-1,
-1,
-1,
-1,
0,
0,
0,
0,
0,
0,
-(GEWC12pp^(iI*kK)+GEWC12pp^((sqrt3*q+2)*iI*kK)+GEWC12pp^((sqrt3*q+1)*iI*kK)+
GEWC12pp^(-iI*kK)+GEWC12pp^((-sqrt3*q-2)*iI*kK)+GEWC12pp^((-sqrt3*q-1)*iI*kK))]

]):

# Klassensummen:
Klassen2G2003Summe1:=proc(tt) tt; end:
Klassen2G2003Summe2:=proc(tt) tt; end:
Klassen2G2003Summe3:=proc(tt) tt; end:
Klassen2G2003Summe4:=proc(tt) tt; end:
Klassen2G2003Summe5:=proc(tt) tt; end:
Klassen2G2003Summe6:=proc(tt) tt; end:
Klassen2G2003Summe7:=proc(tt) tt; end:

Klassen2G2003Summe8:=proc(tt) tt; end:
Klassen2G2003Summe9:=proc(tt) tt; end:
Klassen2G2003Summe10:=proc(tt) tt; end:

Klassen2G2003Summe11:=proc(tt) 
  local s1, s2, s3;
  s1:=eesubs(iI=0, tt);
  s2:=eesubs(iI=(q^2-1)/2,tt);
  s3:=nesum(tt, iI=0..q^2-2);
  linkomb(1/2,s3,-1/2,s2,-1/2,s1);
end:

Klassen2G2003Summe12:=proc(tt) 
  linkomb(1/6,nesum(tt, iI=1..q^2-sqrt3*q));
end:

Klassen2G2003Summe13:=proc(tt) 
  local s1, s2;
  s1:=eesubs(iI=(q^2+1)/4,tt);
  s2:=nesum(tt, iI=1..(q^2-1)/2);
  s2:=linkomb(1/6,s2,-1/6,s1);
  s1:=eesubs(jJ=0, s2);
  s2:=eesubs(jJ=1, s2);
  linkomb(1,s1,1,s2);
end:

Klassen2G2003Summe14:=proc(tt) 
  linkomb(1/6,nesum(tt, iI=1..q^2+sqrt3*q));
end:

# Charaktersummen:
Char2G2003Summe1:=proc(tt) tt; end:
Char2G2003Summe2:=proc(tt) tt; end:
Char2G2003Summe3:=proc(tt) tt; end:
Char2G2003Summe4:=proc(tt) tt; end:
Char2G2003Summe5:=proc(tt) tt; end:
Char2G2003Summe6:=proc(tt) tt; end:
Char2G2003Summe7:=proc(tt) tt; end:
Char2G2003Summe8:=proc(tt) tt; end:

Char2G2003Summe9:=proc(tt) tt; end:
Char2G2003Summe10:=proc(tt) tt; end:

Char2G2003Summe11:=proc(tt) 
  local s1, s2, s3;
  s1:=eesubs(kK=0, tt);
  s2:=eesubs(kK=(q^2-1)/2,tt);
  s3:=nesum(tt, kK=0..q^2-2);
  linkomb(1/2,s3,-1/2,s2,-1/2,s1);
end:

Char2G2003Summe12:=proc(tt) 
  linkomb(1/6,nesum(tt, kK=1..q^2-sqrt3*q));
end:

Char2G2003Summe13:=proc(tt) 
  local s1, s2;
  s1:=eesubs(kK=(q^2+1)/4,tt);
  s2:=nesum(tt, kK=1..(q^2-1)/2);
  s2:=linkomb(1/6,s2,-1/6,s1);
  s1:=eesubs(lL=0, s2);
  s2:=eesubs(lL=1, s2);
  linkomb(1,s1,1,s2);
end:

Char2G2003Summe14:=proc(tt) 
  linkomb(1/6,nesum(tt, kK=1..q^2+sqrt3*q));
end:


# Parameterinformationen:
Klassen.`ree`.Parameter := array(-1..14,[
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[kK=1..q^2-1],[[kK,(q^2-1)/2]]],
[[kK=1..q^2-sqrt3*q+1],[[kK,q^2-sqrt3*q+1]]],
[[kK=1..(q^2+1)/2,lL=1..2],[[kK,(q^2+1)/4]]],
[[kK=1..q^2+sqrt3*q+1],[[kK,q^2-sqrt3*q+1]]]
]):

Char.`ree`.Parameter := array(-2..14,[
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[],[]],
[[iI=1..q^2-1],[[iI,(q^2-1)/2]]],
[[iI=1..q^2-sqrt3*q+1],[[iI,q^2-sqrt3*q+1]]],
[[iI=1..(q^2+1)/2,jJ=1..2],[[iI,(q^2+1)/4]]],
[[iI=1..q^2+sqrt3*q+1],[[iI,q^2-sqrt3*q+1]]]
]):





# Kongruenzen und parameter-Prozedur:
setCongruence2G2003 := proc()
  qQ := 'qQ';
  q := sqrt3*(4*qQ-1);
  NULL;
end:

unsetCongruence2G2003 := proc()
  q := 'q';
  qQ := (q/sqrt3+1)/4;
  NULL;
end:

parameter2G2003:=proc(x,char,class)
 subs(iI=iI.class,jJ=jJ.class,kK=kK.char,lL=lL.char,x)
end:

# Informationen:
Information.`2G2003`:=TEXT(
``,
`- Information about the generic character table of the Ree groups`,
`  ``^2G_2(q)``.   The possible values for q are given by `,
`   $q^2 = 3^{2*m+1}$ with m a non negative integer.`,
``,
`- CHEVIE-name of the table: ``ree```,
``,
`- Most of the table was determined in:`,
`  {\\sc H.~N.~Ward}, On Ree's series of simple groups,`,
`    {\\em Trans.\\ Amer.\\ Math.\\ Soc.} {\\bf 121} (1966), 62--89.`,
``,
`- The values of the irreducible Deligne-Lusztig-characters are`,
`  computed by F.Luebeck.`,
``,
`- The names of class types and character types used in the above`,
`  cited article can be recovered as fourths components of the `,
`  information given by ``PrintInfoClass`` and ``PrintInfoChar``.`,
`  These names are also used as names for the unipotent parts of`,
`  the classes.`,
``
):



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