FUNCTION:  Cprod - inner product of characters or class functions,    
CALLING SEQUENCE:  Cprod(f,g,R); ,    
PARAMETERS:  R  = a root system data Structure
            f,g = lists representing class functions on W(R)
SYNOPSIS:   
  A character or class function on W(R) is represented as a list of
  values [a_1,...,a_l], where a_i is the value of the function on an
  element in the i-th conjugacy class of W(R). The ordering of the 
  conjugacy classes is the same as the ordering used by the functions
  ClassRep, ClassSize, PermChar, Induce, IrrChars, and Restrict.
  In particular, the value at the identity element is listed first.
  If f and g are two such class functions, Cprod(f,g,R) computes the
  standard (real) inner product of f and g; namely, the sum over i of
  (1/m)*f[i]*g[i]*N_i, where N_i is the Size of the i-th conjugacy class
  and m=Size(R). Note that this is not a complex Hermitian inner product.

  The irreducible characters of W(R) are orthonormal with respect to Cprod.

  For a description of root system data Structures, see Coxeter[Structure].
EXAMPLES:   ,  chi:=PermChar([2,3],B3);
  # compute the number of (A2,A2)-double cosets in B3:
  Cprod(chi,chi,B3);                       yields              4
  # compute the multiplicities of irreducible characters in chi:
  map(Cprod,IrrChars(B3),chi,B3);         yields    [1,0,0,1,0,1,0,1,0,0]
    
SEE ALSO:  ClassRep, ClassSize, PermChar, Induce, IrrChars, Restrict,
           Size, Structure):
