compute a normal form for elliptic or hyperelliptic curves - Maple Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Mathematics : Algebra : Polynomials : Algebraic Curves : algcurves/Weierstrassform

algcurves[Weierstrassform] - compute a normal form for elliptic or hyperelliptic curves

Calling Sequence

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 2g+1 or 2g+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:


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. 4x03ax0+y02b.


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.







Check if the image of x and y still satisfy the relation f in the field Cx0y0/f0 





Check if the image of x0 and y0 still satisfy the relation f0 in the field Cxy/f 





A curve with genus 2:




See Also

algcurves, algcurves[genus], algcurves[is_hyperelliptic], algcurves[j_invariant], algcurves[parametrization]

Download Help Document

Was this information helpful?

Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam