February 10, 2004.

    |\^/|     Maple 9 (SUN SPARC SOLARIS)
._|\|   |/|_. Copyright (c) Maplesoft, a division of Waterloo Maple Inc. 2003
 \  MAPLE  /  All rights reserved. Maple is a trademark of
 <____ ____>  Waterloo Maple Inc.
      |       Type ? for help.

    |\^/|     Maple 8 (SUN SPARC SOLARIS)
._|\|   |/|_. Copyright (c) 2002 by Waterloo Maple Inc.
 \  MAPLE  /  All rights reserved. Maple is a registered trademark of
 <____ ____>  Waterloo Maple Inc.
      |       Type ? for help.

That is, this version should work for both Maple 8 and Maple 9, possibly even
for earlier versions; I cannot check that. (Maple 7 appears to be O.K. as well.)

A few comments about the program: 
1) It basically consists of several convenient procedures to compute
   certain intersection numbers on Mbar(g,n). Some of the files and
procedures used are adapted from the earlier program to compute
intersection numbers of divisors; as a result, they have less-than-imaginative
names.
2) Probably the most useful procedure is "klp" for computing intersection
   numbers of the kappa, lambda, and psi classes on Mbar(g,n). See below.

> read KaLa5:

The command  klrij(g,n)  gives the list of classes on Mbar(g,n) considered
(ch.i are the odd components of the Chern character of the Hodge bundle
in degrees 1, 3, ..., 2g-1 --- all other components vanish (except ch0)).

> klrij(2,2);
                 [ps1, ps2, ka1, ka2, ka3, ka4, ka5, ch1, ch3]

The command klmgn(g,n,[a1,a2,..,a.k]) computes the intersection number
on Mbar(g,n) of the corresponding classes. If the dimensions don't add up,
you will know:

> klmgn(2,2,[1,1,1]);
                               [2, 2, [1, 1, 1]]

> klmgn(2,2,[1,1,9]);
                                      -1
                                     -----
                                     17280

> lamb(3);
                                            3
                                         ch1
                                 2 ch3 + ----
                                          6

> klmgn(2,2,[1,1,8$3]);
                                    1/1440

This makes sense, since lambda_3 is zero in genus 2.

The command  klp(g,n,x) computes the intersection number x, where x is a
polynomial in the classes ps1, ps2, ..., ps.n, ka1, ka2, ..., ka.(3*g-3+n),
la1, la2, ..., la.g , with all terms of the right degree.
If la.i with i>g is used, you will know. Of course, with a small change
in the program, you can make those numbers zero.
WARNING: In general, we need 3*g-3+n < 20 at present.

> klp(2,2,ps1^2*la1^3);
                                    1/1440

> klp(2,2,ps1^2*la3);
                                         2
                                [2, 2, D1  la3]

> klp(2,2,ps2*ka2*la1^2);
                                     7/720

A few more examples:

> klp(3,0,ka1*la3*la2);
                                   1/120960

> 1/42*2/8/720;
                                   1/120960

> klp(3,1,ps1^2*la3*la2);
                                   1/120960

> klp(4,2,ps1^2*ps2^2*la4*la3);
                                   1/276480

> klp(4,1,ps1^3*la4*la3);
                                   1/3225600

> %%/%;
                                     35/3

These are examples of intersection numbers that are known, or for which
there are conjectural formulas that are true for the first so many g.
See my paper with Pandharipande, math.AG/9810173, and papers quoted there.

May 2, 2001: The last comments are somewhat outdated. In particular, several
of those conjectural formulas have been proved now. See e.g. later papers
with Pandharipande.

February 10, 2004: Some more examples:

> klp(3,0,la1^6);
                                    1/90720

> klp(4,0,la1^9);
                                   1/113400

> klp(5,0,la1^12);
                                      31
                                    ------
                                    680400

> klp(6,0,la1^15);
                                     431
                                    ------
                                    481140

Together, this just takes a few seconds.

> klp(7,0,la1^18);
                                   32017001
                                   ---------
                                   638512875

This takes 35 secs on our main server and 16 secs on the Linux machine
intended for computations.
Genus 8 and higher (more precisely, certain numbers involving moduli spaces
of dimension 20 or higher) cannot be computed with this program (one of
several imperfections).

If you have any questions, please let me know.

Carel Faber
Inst. f. Matematik
K.T.H.
100 44 Stockholm
Sweden

faber@math.kth.se

