An algorithm for computing the Weierstrass normal form

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]/(F) for some polynomial F=Y^2 + (polynomial in X of degree 3). In this paper we compute such F, and also compute this isomorphism and its inverse by computing the images of x, y, X and Y. This can be used to reduce the problem of integration in C(x)[y]/(f) to the field C(X)[Y]/(F), for which special purpose integration algorithms exist. Furthermore the j-invariant can be obtained.

Note that when the problem is non-trivial, i.e. when the degree of f is > 3, then f must have singularities in order to have genus 1. A convenient and efficient way to deal with these singularities is to use an integral basis.

For the implementation see the file genus1 in the algcurves package.

Download this paper.

See also the paper on the hyperelliptic case.