GROWI – A program for the computation of Gromov-Witten invariants

GROWI is a C++ program for the computation of Gromov-Witten invariants. The current version 1.0.3 can compute:

  • (absolute) Gromov-Witten invariants of projective spaces in any genus,
  • (absolute) Gromov-Witten invariants of any hypersurface in a projective space in genus 0,
  • relative Gromov-Witten invariants of projective spaces relative any hypersurface in genus 0.
Descendants can be used in all these invariants.


Computation of a single Gromov-Witten invariant:

> growi lines in cubic surface
> growi elliptic cubics in P^2 thru H^2:9
> growi G=2,D=5 in P^4 thru H^3*psi^22

Writing a C++ program that uses the GROWI functions: With the following file

// Elliptic space curves of degree d through 2d points

int main (int argc, char *argv[])
  rational n0,n1;

  for (int d=1; d<=8; d++) {
    n0 = GW(rational D=d in P^3 thru H^3:2*d);
    n1 = GW(elliptic D=d in P^3 thru H^3:2*d);
    cout << d << ": " << n1+(2*d-1)/12*n0 << endl;

one gets

> growi
1: 0
2: 0
3: 0
4: 1
5: 42
6: 2860
7: 225734
8: 23276160

System Requirements

GROWI should run on any UNIX system with C++ compiler, the GNU MP library, and the GNU DBM library.


The calculation of invariants in high degree and/or genus might need very large amounts of memory and/or computation time.

For the computations GROWI uses the methods of:

  • A. Gathmann, Absolute and relative Gromov-Witten invariants of very ample hypersurfaces, Duke Mathematical Journal 115 (2002) no. 2, 171-203 pdf
  • A. Gathmann, Topological recursion relations and Gromov-Witten invariants in higher genus, E-print math.AG/0305361 pdf

Installation instructions can be found in the README file in the distribution packet.