Branched double covers of 3-braids

The latest version of this program is available here: [3Braid.cpp].
To compile: g++ -o 3Braid 3Braid.cpp
To run: ./3Braid

This program is based upon work in the following papers. Given a 3-braid link L, the double cover M of the three-sphere branched along L has a natural open book decomposition, and hence, a natural contact structure xi with Spinc structure s_0. If M is a rational homology three-sphere, then for every Spinc structure s not equal to s_0, the Heegaard Floer homology HF(M,s) (this is the hat version) has rank 1. If we perform 0-surgery on the binding of the open book decomposition for M, we obtain a torus bundle MT over S^1.

3Braid.cpp puts the link L into standard form and tells you the following: For the last item, note that Spinc(MT) = Spinc(M) + Z, where projection onto the last factor is determined by the evaluation of the first Chern class of a Spinc structure on the torus fiber. By the adjunction inequalities in Floer homology, HF vanishes for Spinc structures on MT for which this evaluation is non-zero.

To use the program:
  1. Enter the braid. The elementary braid word sigma_i corresponds to the integer i+1 in our designation, while (sigma_i)^{-1} corresponds to -(i+1). For instance, consider the 3-braid with braid word (sigma_1)^3 * (sigma_2)^{-2} * (sigma_1)^{-1} * (sigma_2)^5. We encode this by the integer array {2,2,2,-3,-3,-2,3,3,3,3,3}. To enter your braid, you need to alter the line in 3Braid.cpp which starts "int braid[LENGTH] =". So, to encode the braid above, you'd change this line to:

    "int braid[LENGTH]={2,2,2,-3,-3,-2,3,3,3,3,3};"

  2. Define LENGTH. LENGTH designates the size of the array specifying the braid. For instance, for the braid above, LENGTH is 11. You need to alter the line in 3Braid.cpp which starts "#define LENGTH". For the braid above, you'd change this line to:

    "#define LENGTH 11"

Once you make these alterations, save the file as 3Braid.cpp, compile, and run.