FUNCTION: SfScalar - scalar product of symmetric functions
 
CALLING SEQUENCE:
-   SfScalar(sf_1, sf_2)
-   SfScalar(sf_1, sf_2, sfp)
-   SYMF[SfScalar](sf_1, sf_2)
-   SYMF[SfScalar](sf_1, sf_2, sfp)
-  
     
PARAMETERS:
- sf_1, sf_2 =  any symmetric functions
- sfp        =  any procedure accepting a partition as input
 
  
SYNOPSIS:
-  The SfScalar function computes the scalar product between the  symmetric
  functions sf_1 and sf_2.
 
 
-  This  scalar  product  is  such  that  Schur  functions  constitute   an
  orthonormal basis.
 
 
-  The p-basis  is  an  orthogonal  basis. Let  sf=...p3^i p2^j p1^k,  then
  SfScalar(sf, sf) = SfZee([...3^i, 2^j, 1^k]).
 
 
-  One can choose another scalar product, for which the p-basis will  still
  remain orthogonal by replacing SfZee with any  procedure  sfp  accepting
  partitions.
 
 
-  One may  specify  that  sf_1  is  expressed  on  basis  b_1  and sf_2 is
  expressed on basis b_2 by adding two arguments as follows:
 
    1. SfScalar(sf_1, sf_2, b_1, b_2)
    2. SfScalar(sf_1, sf_2, b_1, b_2, sfp)
 
 
-  When specifying the bases, it uses the property that the Schur basis  is
  orthonormal, and the monomial basis is the dual basis of  the  basis  of
  products  of   complete   symmetric   functions, for  the  usual  scalar
  product described previously.
 
 
-  Whenever there is  a conflict  between  the function name  SfScalar  and
  another   name   used   in   the   same   session, use   the   long form
  SYMF['SfScalar'].
 
 
EXAMPLES:
> with(SYMF):
> SfScalar(p3^2*p1, p3^2*p1, 'p', 'p');
 
                                       18
 
> SfZee([3,3,1]);
 
                                       18
 
> SfScalar(s[6,3,3,3] + q*s[14,3,3], s[6,3,3,3] - q*s[14,3,1], 's', 's');
 
                                        1
 
SEE ALSO: SfZee