FUNCTION: Toc - express any symmetric function in the basis of cycle
                indices 
CALLING SEQUENCE:
-   Toc(sf)
-   Toc(sf, b)
-   SYMF[Toc](sf)
-   SYMF[Toc](sf, b)
-  
     
PARAMETERS:
- sf =  any symmetric function
- b  =  any name of a known basis
 
  
SYNOPSIS:
-  The  Toc function  expresses  any  symmetric  function  in  the basis of
  cycle indices, i.e. as a linear combination of cycle indices c[part]  of
  conjugacy classes corresponding to the partition part=[...,3^i,2^j,1^k]:
 
       c[part] = convert(part,`+`)! / SfZee(part) * ... p3^i p2^j p1^k
 
  In other words, the c-basis is proportional to the p-basis.
 
 
-  The input is any expression in terms of the  basic  symmetric  functions.
 
 
-  The symmetric function sf is expanded and  the result is  not  collected.
 
 
-  One may specify by a second argument, say b, that sf is solely expressed
  in terms of the known basis b.
 
 
-  One may add 'noexpand' just  after  the  argument  sf  to choose not  to
  expand the symmetric function sf before treating it.
 
 
-  One may collect the result by adding  a  third  argument: this  is  done
  by  Toc(sf, b, 'collect'). For  instance,  Toc(sf, 'c', 'collect')   may
  be used to collect the argument sf.
 
 
-  Whenever there is a conflict  between  the function name Toc and another
  name  used  in  the  same  session, use  the   long   form   SYMF['Toc'].
 
 
EXAMPLES:
> with(SYMF):
> Toc((1+q)^3*e3*e2):                            # expands the input
> Toc((1+q)^3*e3*e2,noexpand):                   # does not expand (1+q)^3
> Toc((1+q)^3*e3*e2,collect):                    # collects the result
> Toc((1+q)^3*e3*e2,noexpand,'e'):               # the most efficient
> Toc((1+q)^3*e3*e2,'e',collect):                # specifies a basis
> Toc((1+q)^3*e3*e2,noexpand,'e',collect):
> Toc(c[2,1]*h4 - 2*q*p3);
 
     1/840 c[4, 2, 1] + 1/420 c[3, 2, 1, 1] + 1/280 c[2, 2, 2, 1]
 
     + 1/140 c[2, 2, 1, 1, 1] + 1/168 c[2, 1, 1, 1, 1, 1] - c[3] q
 
SEE ALSO: Toe Toh Tom Top Tos