An algorithm for computing the Weierstrass normal form of hyperelliptic curves

Let f in C[x,y] be a polynomial defining an algebraic curve of genus > 1. Then the algebraic function field C(x)[y]/(f) is isomorphic to C(X)[Y]/(g) for a polynomial g of the form

g = Y^2 - (a squarefree polynomial in X)

if and only if the curve is hyperelliptic.

In this paper we show how to test if f is hyperelliptic, and if so, how to compute such g. We also compute this isomorphism and its inverse by computing the images of x, y, X and Y.

For the implementation see the file genus2 (note: handles the case g >= 2, not just g=2) in the algcurves package in Maple 6.

Download this paper, errata.