Littlewood-Richardson Calculator
Copyright (C) 1999 Anders S. Buch (abuch@math.mit.edu)


INSTALLATION

This file explains how to install and use the programs.  See the file
CHANGELOG for a list of bug-fixes and enhancements.

To compile the programs, simply type "./configure" at your shell
prompt in the this directory.

% ./configure

This will compile the C programs and install them in a subdirectory
called bin under this directory.  The program ./configure assumes that
you have a standard unix-type operating system with gcc and GNU make
installed.  (If your system is different, you may have to edit the 
makefiles in the mathlib and lrcoef directories.)

After successful installation, you will have the following programs in
the bin directory under the current directory:

    lrcoef, skew, mult, coprod

To use the programs, include the bin directory in your path.  This is
done with the command (for csh/tcsh users):

% set path = ( $path `pwd`/bin )

(Note that the above line only works if you are in the lrcalc
directory.  You might prefer to edit your .cshrc file to set the path
automatically when you login to your computer.  Just add the above
"set path" command to the end of your .cshrc, but replace `pwd` with
the full path of the lrcalc directory.)

A very brief description of the programs is as follows:


lrcoef:  Compute a single Littlewood-Richardson coefficient.
------

The command "lrcoef z - x - y" computes the Littlewood-Richardson
coefficient c^z_{x,y} which is the coefficient of the Schur function
s_z in the product s_x * s_y.

Example:

% lrcoef 3 2 1 - 2 1 - 2 1
2


skew:  Expand a skew Schur function in the basis of Schur functions.
----

The command "skew z / x" lists all partitions y for which the
Littlewood-Richardson coefficient c^z_{x,y} is non-zero, with that
coefficient in front.

Example:

% skew 3 2 1 / 2 1
1  (3)
2  (2, 1)
1  (1, 1, 1)


mult:  Expand a product of two Schur functions in the basis of Schur
----   functions.

The command "mult x - y" lists all partitions z for which the
Littlewood-Richardson coefficient c^z_{x,y} is non-zero, with that
coefficient in front.

Example:

% mult 2 1 - 2 1
1  (3, 3)
1  (4, 2)
1  (2, 2, 1, 1)
1  (2, 2, 2)
2  (3, 2, 1)
1  (4, 1, 1)
1  (3, 1, 1, 1)


coprod:  Calculate coproducts in the ring of symmetric functions.
------

The command "coprod z" lists all pairs of partitions x and y for which
the Littlewood-Richardson coefficient c^z_{x,y} is non-zero, with that
coefficient in front.

Example:

% coprod 3 2 1

1  (3, 1)  (2)
1  (2, 2)  (1, 1)
1  (3, 1)  (1, 1)
1  (2, 1)  (3)
2  (2, 1)  (2, 1)
1  (2, 2, 1)  (1)
1  (3, 2, 1)  ()
1  (3, 2)  (1)
1  (2, 1, 1)  (2)
1  (3, 1, 1)  (1)
1  (1, 1, 1)  (2, 1)
1  (2, 1, 1)  (1, 1)
1  (2, 2)  (2)



MAPLE INTERFACE

The file lrcalc in this directory provides an interface between the
above C programs and Maple.  It allows you to combine the notational
convenience of Maple with the speed of C programs.

To use the interface, simply type "read lrcalc;" after starting Maple.
You can move the file lrcalc to your directory with personal Maple
files if you prefer.  Note, however, that if you move the compiled C
programs in the bin subdirectory to somewhere else, then you will need
to change the last line of lrcalc accordingly.

The notation used by the Maple interface is the same as in John
Stembridge's "SF" Maple package for computing with symmetric
functions.  I hope this will make it easier to use SF with the Maple
interface.

The Maple interface defines three Maple functions:

    tos, skew, lrcoef

The following Maple session gives an example of how to use them:


% maple
    |\^/|     Maple V Release 4 (WMI Campus Wide License)
._|\|   |/|_. Copyright (c) 1981-1996 by Waterloo Maple Inc. All rights
 \  MAPLE  /  reserved. Maple and Maple V are registered trademarks of
 <____ ____>  Waterloo Maple Inc.
      |       Type ? for help.
> read lrcalc;
> lrcoef([3,2,1], [2,1], [2,1]);
                                       2

> skew(s[3,2,1], s[2,1]);
                         s[3] + 2 s[2, 1] + s[1, 1, 1]

> tos(s[2,1] * s[2,1]);
s[3, 3] + s[4, 2] + s[2, 2, 1, 1] + s[2, 2, 2] + 2 s[3, 2, 1] + s[4, 1, 1]

     + s[3, 1, 1, 1]

> lrcoef( s[12,11,10,9,8,7,6,5,4,3,2,1],\
>  s[8,7,6,5,4,3,2,1], s[8,7,6,6,5,4,3,2,1]);
                                    7869992



Enjoy!

Anders Skovsted Buch  (Nov 15, 1999)
