FUNCTION:  NameOf - name of a root system or Coxeter group,    
CALLING SEQUENCE:  NameOf(R);,                   NameOf(R,'pi');,    
PARAMETERS:  R = a root system data Structure
            pi = (optional) a name,SYNOPSIS:   
  NameOf(R) returns the name of the isomorphism type of the root system
  or Coxeter group specified by R; i.e., a monomial in the names of the
  irreducible root systems. If a second argument is specified, it will be
  assigned a permutation [p_1,...,p_n] of [1,2,..,n] (n=Rank(R)). This
  permutation indicates an ordering of Base(R) that is isomorphic to the
  ordering used by Base(N) and Diagram(N), where N = NameOf(R). Thus if
  the permutation is [2,3,1] and S=Base(R), then [S[2],S[3],S[1]] will be
  an ordered Base isomorphic to Base(NameOf(R)).
  If R is a Coxeter matrix, then the assigned permutation (if requested)
  indicates a re-ordering of the rows and columns of R that agrees with
  CoxMatrix(N), where N = NameOf(R). Note also that in this case, the
  NameOf function cannot distinguish between B.n and C.n, or G2 and I2[6],
  or B2 and I2[4]. In these cases, the name returned will be the first
  member of each of these pairs.
  If R is a list of simple roots, the NameOf function will confirm that
  R is a Base for some root system, but does not distinguish between
  crystallographic and non-crystallographic Bases that generate the same
  Reflection group. Exceptions to this occur for non-crystallographic 
  Bases whose Reflection groups are the same as W(B2) or W(G2). In these
  cases, the name returned is I2[4] or I2[6], respectively.
  If R is not a matrix or list, it is assumed that R itself is a root
  system name and NameOf(R) simply returns R. The assigned permutation
  (if requested) is [1,2,...,n], where n=Rank(R).,     
  For a description of root system data Structures, see Coxeter[Structure].
EXAMPLES:   
  NameOf([e1+e2,e1-e2]);                    yields       A1^2
  S:=Base(F4); r:=HighestRoot(F4);
  NameOf([-r,S[2],S[3],S[4]],'pi'), pi;     yields   B4, [2,3,4,1]
  m:=array([[1,5],[5,1]]);
  NameOf(m);                                yields       I2[5] 
  NameOf(E5);                               yields        E5
  m:=CartanMatrix(E5); NameOf(m);          yields        D5
SEE ALSO:  Base, CartanMatrix, CoxMatrix, Diagram, Rank, Structure):
