## Code for the quartic surface paper

### Singular (for elimination theory)

This is code for SINGULAR, a freely available commutative algebra package. Tested with Singular 3-1-1. Each file runs independently of the others, and provides mainly an application of elimination theory to determine branch curves, as well as numerical computation of zeros to determine singular points or branch points.

branch1.txt
branch2.txt
branch3.txt
### Mathematica (animations which are used to draw various paths)

Essentially trivial Mathematica programs (they draw how the zeros of a complex polynomial vary if one changes
the coefficients algebraically). Tested with Mathematica 8.

animate1.txt was used to draw the matching paths corresponding to the 4 Lagrangian two-spheres
animate2.txt was used to draw the vanishing cycles on the genus 3 curve
### Python (for symbolic computations in twisted complexes)

This written for Python 2 with the SymPy module (tested with Python 2.7 and SymPy 0.7.1). It replaces older Maple code that was used in the original computations (since I re-wrote the code from scratch, and the results remain the same, this provides strong protection against errors of implementation). I will explain the details a little better, since parts of this code could in principle be useful in other situations.

twistedcomplex.py contains the main algorithms for building categories of twisted complexes.
reduction.py is a partial implementation of homological perturbation methods (in particular, it can compute cohomology level products for a given A_infty structure).
twistedinputdata.py provides the data defining the directed category whose objects are the 12 vanishing cycles on the punctured genus 3 surface. This data was generated by hand by geometric inspection, as explained in the paper.
symbolic.py is the main computation. It imports procedures from the three previous files (which therefore should be saved in the same directory). Warning: this takes a quarter of an hour on my laptop.
The computation includes various consistency checks (for instance, that the initial data really defines an A_infty structure).