compute a normal form for elliptic or hyperelliptic curves
Weierstrassform(f, x, y, x0, y0, opt)
polynomial in x and y representing a (hyper)-elliptic curve
x, y, x0, y0
(optional) a sequence of options
A curve f is called elliptic if the genus is 1. An algebraic function field Cxy/f is isomorphic to the field Cx0y0/f0 where f0 is of the form y0^2 + square-free polynomial in x0 of degree 3 if and only if the curve is elliptic.
For a hyperelliptic curve with genus g there exists a similar normal form: f0=y02+ a squarefree polynomial in x0 of degree 2⁢g+1 or 2⁢g+2.
This procedure computes such normal form f0. It also gives an isomorphism from Cx0y0/f0 to Cxy/f by giving the images of x0 and y0. The inverse isomorphism will also be computed, unless the option `no inverse` is used.
The output is a list of 5 items:
The curve f0
The image of x0 under this isomorphism
The image of y0 under this isomorphism
The image of x under the inverse isomorphism
The image of y under the inverse isomorphism
For a description of the method in the elliptic case see M. van Hoeij, "An algorithm for computing the Weierstrass normal form", ISSAC'95 Proceedings, p. 90-95 (1995). For the hyperelliptic case, see: http://arXiv.org/abs/math.AG/0203130
The analogue of this procedure for curves of genus zero is parametrization.
A regular point x,y,z on the curve can be specified as a 6th argument. In some cases this can speed up the computation. In the genus 1 case the option Weierstrass results in a Weierstrass normal form, i.e. −4⁢x03−a⁢x0+y02−b.
If the curve is not elliptic (which can be verified by computing the genus) nor hyperelliptic (which can be verified with is_hyperelliptic then an error message will be given. If the curve is reducible, which can be checked with evala(AFactor(f)), then the normal form does not exist and Weierstrassform will fail.
f ≔ x4+y4−2⁢x3+x2⁢y−2⁢y3+x2−x⁢y+y2:
v ≔ Weierstrassform⁡f,x,y,x0,y0
Check if the image of x and y still satisfy the relation f in the field Cx0y0/f0
im1 ≔ subs⁡x=v4,y=v5,f:
Check if the image of x0 and y0 still satisfy the relation f0 in the field Cxy/f
im2 ≔ subs⁡x0=v2,y0=v3,v1:
A curve with genus 2:
Download Help Document