FUNCTION:  ClassRep - find conjugacy class representatives,    
CALLING SEQUENCE:  ClassRep(w,R);,                   ClassRep(R);,    
PARAMETERS:  R = a root system data Structure
             w = a list of integers representing a member of W(R)
SYNOPSIS:   
  If R is a root system of Rank n, members of the Coxeter group W(R) are
  represented as lists of integers in the range 1..n. The group element
  corresponding to w = [i_1,...,i_l] is the product of the generators
  Indexed by i_1,...,i_l. The Indexing follows Base(R).
  ClassRep(w,R) produces a canonical representative of the conjugacy class
  of W(R) that contains w. Two elements w1 and w2 of W(R) are conjugate if
  and only if,                      ClassRep(w1,R)=ClassRep(w2,R).
  ClassRep(R) returns the list of canonical representatives for every
  conjugacy class of W. The ordering of the list is consistent with the
  ordering used by the functions ClassSize, Cprod, PermChar, Induce,
  IrrChars, and Restrict. The identity element [] is always first.
  The conjugacy class representatives for the exceptional groups E-F-H are
  read from prestored lists in the Coxeter/lib subdirectory. The lists for
  the remaining irreducible cases are generated "on demand".
  The algorithm for finding the representative for a particular w proceeds
  by breaking R into irreducible components, and then separately determining
  the canonical representative for each component of w. For types I2 and G2,
  brute force is used. For the groups of type H3 and H4, it uses the
  characteristic polynomial of w. For all other groups, it uses a faithful
  rePresentation of W(R) as a subgroup of a hyperoctahedral group G with the
  property that distinct conjugacy classes of W(R) map to distinct conjugacy
  classes of G. Some extra parity tricks are also necessary to separate
  certain conjugacy classes of type D.
  For a description of root system data Structures, see Coxeter[Structure].
EXAMPLES:   
  ClassRep([1,2,3,4,3,4,1],A2^2);    yields            [1,3,4]
  w0:=LongestElt(D4);
  ClassRep(w0,D4);                   yields   [1,2,3,1,2,3,4,3,1,2,3,4]
  ClassRep(I2[5]);                   yields   [[],[1],[1,2],[1,2,1,2]]
    ,SEE ALSO:  Base, ClassSize, CharPoly, Cprod, PermChar, Induce,
           IrrChars, Restrict, Structure):
