
Calling Sequence


homology(f, x, y)


Parameters


f



irreducible polynomial in x and y

x



variable

y



variable





Description


•

This procedure is an implementation of an algorithm given in "Combinatorial Group Theory, Riemann Surfaces and Differential Equations", C.L. Tretkoff and M.D. Tretkoff, Contemporary Mathematics, Vol 33, 1984. This algorithm computes cycles ${a}_{1},\dots ,{a}_{g},{b}_{1},\dots ,{b}_{g}$ that form a basis for the homology of a Riemann surface given as a polynomial f in two variables x and y. The Riemann surface is the covering surface for y as an Nvalued function of x, where $N=\mathrm{degree}\left(f\,y\right)$ is the degree of covering. The number $g$ is the genus of the Riemann surface. These $2g$ cycles have the following intersection indices: (${a}_{i},{b}_{i}$) have intersection number 1, and all others (${a}_{i},{a}_{j}$), (${b}_{i},{b}_{j}$) for all $i,j$ and (${a}_{i},{b}_{j}$) for $i\ne j$ have intersection number 0. This means that the basis is a canonical basis.

•

The result of H:=homology(f, x, y) is a table H containing the following:

1.

H[basepoint] is a value $\mathrm{x0}$ for $x$ for which $y$ takes N different values, so $\mathrm{x0}$ is not a branchpoint nor a singularity.

2.

H[sheets] is a list $L=\left[\mathrm{fsolve}\left(\mathrm{subs}\left(x=\mathrm{x0}\,f\right)\,y\,\mathrm{complex}\right)\right]$ of preimages of $\mathrm{x0}$. This list of yvalues at $x=\mathrm{x0}$ effectively labels the sheets of the Riemann surface at $x=\mathrm{x0}$. Sheet 1 is ${L}_{1}$, sheet 2 is ${L}_{2}$, and so on.

3.

H[genus] gives the genus g of the Riemann surface.

4.

H[cycles] is a table containing a set of cycles $1..r$, with $r=2g+N1$. In this set, $2g$ of these cycles are linearly independent over the integers in the homology. The cycles are given as lists. The elements of the list at odd positions denote which sheet one is on, the elements at even positions denote around which branchpoint one needs to circle to get from the sheet at the previous position to the sheet at the next position. The branchpoint is given together with the permutation of the sheets around that branchpoint. The lists representing the cycles are cyclic: circling around the last branchpoint brings one back to the sheet given at position 1.

5.

H[linearcombination] is a matrix with $2g$ rows and $r$ columns, giving the linear combinations of the elements in homology[cycles], which give cycles ${a}_{i}$ or ${b}_{i},i=1..g$. The cycle ${a}_{i}$ is given by the ith row of this matrix. The cycle ${b}_{i}$ is given by the ($g$+$i$)th row of this matrix.

6.

H[canonicalcycles] is a table containing the explicit representation of the cycles ${a}_{i}$ and ${b}_{i},i=1..g$. These cycles are also given by cyclic lists. Again, the elements at odd positions of the list are sheetnumbers. The elements at even positions of the list are branchpoints, together with a number indicating how many times one has to circle around the branchpoint in the counterclockwise direction. If this number is negative, one has to circle around to the branchpoint as many times in the clockwise direction.



Examples


>

$\mathrm{with}\left(\mathrm{algcurves}\right)\:$

>

$\mathrm{homology}\left({y}^{3}{x}^{2}1\,x\,y\right)$

${table}{}\left(\left[{\mathrm{canonicalcycles}}{=}{table}{}\left(\left[{{a}}_{{1}}{=}\left[\left[{1}{\,}\left[{\mathrm{I}}{\,}{1}\right]{\,}{3}{\,}\left[{\mathrm{I}}{\,}{\mathrm{1}}\right]\right]\right]{\,}{{b}}_{{1}}{=}\left[\left[{1}{\,}\left[{\mathrm{I}}{\,}{\mathrm{1}}\right]{\,}{2}{\,}\left[{\mathrm{I}}{\,}{1}\right]\right]\right]\right]\right){\,}{\mathrm{basepoint}}{=}{\mathrm{0.899000000000}}{\,}{\mathrm{linearcombination}}{=}\left[\begin{array}{cccc}{1}& {0}& {0}& {0}\\ {0}& {1}& {0}& {0}\end{array}\right]{\,}{\mathrm{cycles}}{=}{table}{}\left(\left[{1}{=}\left[{1}{\,}\left[{\mathrm{I}}{\,}\left[{1}{\,}{3}{\,}{2}\right]\right]{\,}{3}{\,}\left[{\mathrm{I}}{\,}\left[{1}{\,}{3}{\,}{2}\right]\right]\right]{\,}{2}{=}\left[{1}{\,}\left[{\mathrm{I}}{\,}\left[{1}{\,}{3}{\,}{2}\right]\right]{\,}{2}{\,}\left[{\mathrm{I}}{\,}\left[{1}{\,}{3}{\,}{2}\right]\right]\right]{\,}{3}{=}\left[{1}{\,}\left[{\mathrm{I}}{\,}\left[{1}{\,}{3}{\,}{2}\right]\right]{\,}{3}{\,}\left[{\mathrm{\infty}}{\,}\left[{1}{\,}{3}{\,}{2}\right]\right]\right]{\,}{4}{=}\left[{1}{\,}\left[{\mathrm{I}}{\,}\left[{1}{\,}{3}{\,}{2}\right]\right]{\,}{2}{\,}\left[{\mathrm{\infty}}{\,}\left[{1}{\,}{3}{\,}{2}\right]\right]\right]\right]\right){\,}{\mathrm{sheets}}{=}\left[{\mathrm{0.609142506531014}}{}{1.05506577036157}{}{\mathrm{I}}{\,}{\mathrm{0.609142506531014}}{+}{1.05506577036157}{}{\mathrm{I}}{\,}{1.21828501306203}\right]{\,}{\mathrm{genus}}{=}{1}\right]\right)$
 (1) 


