%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% $Id: lrcalc.tex,v 1.1.1.1 2004/10/04 17:25:16 nthiery Exp $
% File:		lib/COMBINAT/DOC/lrcalc.tex
% Authors:	Nicolas M. Thiéry <nthiery@users.sourceforge.net>
% Purpose:	Documentation for the domain combinat::lrcalc
% Created:	Sun Jul 11 01:15:09 2004
% License:	LGPL
% Project:	MuPAD-Combinat, http://mupad-combinat.sf.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{Mhelppage}{lrcalc}{Nicolas M. Thiéry}
  [ImplState=stable,TestState=stable,DocState=stable]
%\Mproofread{...}{...}{...}

\begin{MInfo}
  \eng{Interface with \Mex{lrcalc}}
  \de{}
\end{MInfo}

\begin{MIntro}
  \eng{\Mthis{} is an interface with Anders Buch's
    Littlewood-Richardson Calculator.}
  \de{}
\end{MIntro}

\begin{MDetails}
  \eng{\Mthis{} is a dynamic module interface with Anders Buch's C
    library for computing Littlewood-Richardson coefficients and the
    related operations on Schur symmetric functions. See
    \url{http://home.imf.au.dk/abuch/lrcalc/} for details on this
    library.}
  
  \eng{This library is designed as a raw low-level interface to
    \Mex{lrcalc}, and is not necessarily consistent with the rest of
    the \Mup{combinat} library.}
  
  \eng{See e.g. \Mup{examples::SymmetricFunctions} for higher-level
    interfaces. }
\end{MDetails}

\begin{MMethodDetails}{lrcoef}
  \infoEng{Littlewood-Richardson coefficient}
  \call{\Mtype{partition} nu, \Mtype{partition} lambda, \Mtype{partition} mu}%
  \eng{Returns the Littlewood-Richardson coefficient
    $c_{\lambda,\mu}^\nu$, which is the coefficient of the Schur
    function $s_\nu$ in the product $s_\lambda s_\mu$.}
\end{MMethodDetails}

\begin{MMethodDetails}{skew}
  \infoEng{Expansion of a skew Schur function in the basis of Schur functions}
  \call{\Mtype{partition} nu, \Mtype{partition} lambda}%
  \eng{Returns the list of all partitions $\mu$ for which the
    Littlewood-Richardson coefficient $c^\nu_{\lambda,\mu}$ is
    non-zero, with that coefficient in front.}
\end{MMethodDetails}

\begin{MMethodDetails}{mult}
  \infoEng{Expansion of a product of two Schur functions in the basis
    of Schur functions}
  \call{\Mtype{partition} lambda, \Mtype{partition} mu}%
  \eng{Returns the list of all partitions $\nu$ for which the
    Littlewood-Richardson coefficient $c^\nu_{\lambda,\mu}$ is
    non-zero, with that coefficient in front.}
\end{MMethodDetails}

\begin{MMethodDetails}{coprod}
  \infoEng{Expansion of the coproduct of a Schur function}
  \call{\Mtype{partition} nu}%
  
  \eng{Returns the list of all pairs of partitions $\lambda$ and $\mu$
    for which the Littlewood-Richardson coefficient
    $c^\nu_{\lambda,\mu}$ is non-zero, with that coefficient in
    front.}
\end{MMethodDetails}

\begin{MExample}{ex-basic}
  We start by computing the Littlewood-Richardson coefficient for
  $\nu:=(3,2,1)$, $\lambda:=(2,1)$ and $\mu:=(2,1)$:
  \begin{Mexin}
combinat::lrcalc::lrcoef([3, 2, 1], [2, 1], [2, 1])
  \end{Mexin}
  \begin{Mexout}
                               2
  \end{Mexout}
  Most of the remaining methods return linear combination of
  partitions (or of pairs of partitions), which are represented in the
  usual poly2list format. For example, the skew Schur function
  $s_{(3,2,1)/(2,1)}$ expands on Schur functions as $s_3 + 2 s_{2,1} +
  s_{1,1,1}$:
  \begin{Mexin}
combinat::lrcalc::skew([3, 2, 1], [2, 1])
  \end{Mexin}
  \begin{Mexout}
            [[1, [3]], [2, [2, 1]], [1, [1, 1, 1]]]
  \end{Mexout}
  This gives the expansion of the product of the two Schur functions
  $s_{2,1} s_{2,1}$:
  \begin{Mexin}
combinat::lrcalc::mult([2, 1], [2, 1])
  \end{Mexin}
  \begin{Mexout}
[[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]]]
  \end{Mexout}

  \begin{Mexin}
combinat::lrcalc::coprod([3, 2, 1])
  \end{Mexin}
  \begin{Mexout}
[[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]]]]
  \end{Mexout}

  \begin{Mexin}
combinat::lrcalc::lrcoef([12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1],
                         [8, 7, 6, 5, 4, 3, 2, 1],
                         [8, 7, 6, 6, 5, 4, 3, 2, 1])
  \end{Mexin}
  \begin{Mexout}
                            7869992
  \end{Mexout}
\end{MExample}

% Little experimentation to get an idea of the complexity c(n) when
% multiplying the parts of the partitions by an integer factor n.
%
%for k from 1 to 100000 do 
%    t :=time((c:=combinat::lrcalc::lrcoef(op(map([[8, 6, 4, 1, 1], [5,4,2], [5,2,2]], map, _mult, k)))));
%    print(t,c,float(t/c^2/ln(c)));
%end_for

\begin{MChanges}
  \version{3.1}
  \eng[New domain]{\Mthis{} is a new domain} %
\end{MChanges}

\end{Mhelppage}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 
