[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Operations on Curves

Subsections

Elementary Invariants

DefiningPolynomials(C) : CrvHyp -> RngUPolElt, RngUPolElt
DefiningPolynomials(C) : SetPtHyp -> RngUPolElt, RngUPolElt
The defining polynomials for the hyperelliptic curve C or a pointset C of a hyperelliptic curve.
Degree(C) : CrvHyp -> RngIntElt
Degree(C) : SetPtHyp -> RngIntElt
The degree of the hyperelliptic curve C or a pointset C of a hyperelliptic curve.
Discriminant(C) : CrvHyp -> RngElt
Discriminant(C) : SetPtHyp -> RngElt
The discriminant of the hyperelliptic curve C or a pointset C of a hyperelliptic curve.
Genus(C) : CrvHyp -> RngIntElt
Genus(C) : SetPtHyp -> RngIntElt
The genus of the hyperelliptic curve C or a pointset C of a hyperelliptic curve.

Igusa Invariants

The Clebsch, Igusa--Clebsch and Igusa invariants may be computed for curves of genus 2.

The Magma package implementing the functions was written by Everett W. Howe (however@alumni.caltech.edu) with some advice from Michael Stoll and is based on some gp routines written by Fernando Rodriguez--Villegas as part of the Computational Number Theory project funded by a TARP grant. The gp routines may be found at http://www.ma.utexas.edu/users/villegas/cnt/inv.gp.

Rodriguez--Villegas's routines are based on a paper of Mestre [Mes91]. The first part of Mestre's paper summarizes work of Clebsch and Igusa, and is based on the classical theory of invariants. This package contains functions to compute three types of invariants of quintic and sextic polynomials f (or, perhaps more accurately, of binary sextic forms):

The corresponding functions are ClebschInvariants, IgusaClebschInvariants, and JInvariants, respectively. For convenience, we use IgusaInvariants as a synonym for JInvariants.

Igusa invariants may be defined for a curve of genus 2 over any field and for polynomials of degree at most 6 over fields of characteristic not equal to 2. The Igusa invariants of the curve y^2 + h * y = f are equal to the Igusa invariants of the polynomial h^2 + 4 * f except in characteristic 2, where the latter are not defined. In practice, the functions below will not calculate the Igusa invariants of a polynomial unless 2 is a unit in the coefficient ring. However, Igusa invariants of curves are available for all coefficient rings. (But see below.)

Igusa invariants are given by a sequence [ J_2, J_4, J_6, J_8, J_(10) ] of five elements of the coefficient ring of the polynomials defining the curve. This sequence should be thought of as living in weighted projective space, with weights 2, 4, 6, 8, and 10.

It should be noted that many of the people who work with genus 2 curves over the complex numbers prefer not to work with the real Igusa invariants, but rather work with some related numbers, [ I_2, I_4, I_6, I_(10) ] (or [ A', B', C', D' ] in Mestre's terminology), that we call the Igusa--Clebsch invariants, of the curve. Once again, these live in weighted projective space. The Igusa--Clebsch invariants of a polynomial are defined in terms of certain nice symmetric polynomials in its roots, and, in characteristic zero, the J-invariants may be obtained from the I-invariants by some simple homogeneous transformations. In fact, many of the genus-2-curves-over-the-complex-numbers people refer to the elements i1 := I_2^5/I_(10), i2 := I_2^3 * I_4/I_(10) and i3 := I_2^2 * I_6/I_(10) as the "invariants" of the curve. The problem with the Igusa--Clebsch invariants is that they do not work in characteristic 2 and it was for this reason that Igusa defined his J-invariants.

The coefficient ring of the polynomial f must be an algebra over a field of characteristic not equal to 2 or 3.

ClebschInvariants(C) : CrvHyp -> SeqEnum
Given a hyperelliptic curve C having genus 2, compute the Clebsch invariants A, B, C and D as described on p. 317 of [Mes91]. The base field of C may not have characteristic 2, 3 or 5. The invariants are found using Überschiebungen.
ClebschInvariants(f) : RngUPolElt -> SeqEnum
Given a polynomial f of degree at most 6, compute the Clebsch invariants A, B, C and D as described on p. 317 of [Mes91]. The coefficient ring of the polynomial f must be an algebra over a field of characteristic not equal to 2, 3 or 5. The invariants are found using Überschiebungen.
IgusaClebschInvariants(C: parameters) : CrvHyp -> SeqEnum
    Quick: BoolElt                      Default: false
Given a curve C of genus 2 defined over a field, the Igusa--Clebsch invariants A', B', C' and D' as described on p. 319 of [Mes91] are found. These will be all be zero in characteristic 2. If Quick is true, the base field of C may not have characteristic 2, 3 or 5 and a faster method using Überschiebungen is employed; otherwise, universal formulae are used.
IgusaClebschInvariants(h, f) : RngUPolElt, RngUPolElt -> SeqEnum
Given a polynomial h having degree at most 3 and a polynomial f having degree at most 6, the Igusa--Clebsch invariants A', B', C' and D' of the curve y^2 + h * y - f = 0 are found. These will be all be zero in characteristic 2.

IgusaClebschInvariants(f: parameters) : RngUPolElt -> SeqEnum
    Quick: BoolElt                      Default: false
Given a polynomial f having degree at most 6 and defined over a ring in which 2 is a unit, the Igusa--Clebsch invariants A', B', C' and D' of the polynomial f are found. These will be all be zero in characteristic 2. If Quick is true, the coefficient ring of f may not have characteristic 2, 3 or 5 and a faster method using Überschiebungen is employed; otherwise, universal formulae are used.

IgusaInvariants(C: parameters): CrvHyp -> SeqEnum
JInvariants(C: parameters): CrvHyp -> SeqEnum
    Quick: BoolElt                      Default: false
Given a curve C of genus 2 defined over a field, the function returns the Igusa invariants (or J-invariants) J_2, J_4, J_6, J_8, J_(10) as described on p. 324 of [Mes91]. If Quick is true, the base field of C may not have characteristic 2, 3 or 5 and a faster method using Überschiebungen is employed; otherwise, universal formulae are used.
IgusaInvariants(h, f): RngUPolElt, RngUPolElt -> SeqEnum
JInvariants(h, f): RngUPolElt, RngUPolElt -> SeqEnum
Given a polynomial h having degree at most 3 and a polynomial f having degree at most 6, this function returns the Igusa invariants (or J-invariants) J_2, J_4, J_6, J_8, J_(10) of the curve y^2 + h * y = f. The coefficient ring R of the polynomials h and f must either (a) have characteristic 2, or (b) be a ring in which Magma can apply the operator ExactQuotient(n,2). For example, R may be an arbitrary field, the ring of rational integers, a polynomial ring over a field or over the integers and so forth. However, R may not be a p-adic ring, for instance. If the desired coefficient ring does not meet either condition (a) or condition (b), then ScaledIgusaInvariants should be used and its invariants then scaled by the appropriate powers of 1/2.
IgusaInvariants(f: parameters) : RngUPolElt -> SeqEnum
JInvariants(f: parameters) : RngUPolElt -> SeqEnum
    Quick: BoolElt                      Default: false
Given a polynomial f having degree at most 6 which is defined over a ring in which 2 is a unit, return the Igusa invariants (or J-invariants) J_2, J_4, J_6, J_8, J_(10) of f. If Quick is true, the coefficient ring of f may not have characteristic 2, 3 or 5 and a faster method using Überschiebungen is employed; otherwise, universal formulae are used.
ScaledIgusaInvariants(h, f): RngUPolElt, RngUPolElt -> SeqEnum
Given a polynomial h having degree at most 3 and a polynomial f having degree at most 6, return the Igusa J-invariants of the curve y^2 + h * y = f, scaled by [16, 16^2, 16^3, 16^4, 16^5].
ScaledIgusaInvariants(f): RngUPolElt -> SeqEnum
Given a polynomial f having degree at most 6 which is defined over a ring not of characteristic 2, return the Igusa J-invariants of f, scaled by [16, 16^2, 16^3, 16^4, 16^5].
AbsoluteInvariants(C) : CrvHyp -> SeqEnum
Given a curve C of genus 2 defined over a field, the function computes the ten absolute invariants of C as described on p. 325 of [Mes91].
ClebschToIgusaClebsch(Q) : SeqEnum -> SeqEnum
Convert Clebsch invariants to Igusa--Clebsch invariants.
IgusaClebschToIgusa(S) : SeqEnum -> SeqEnum
Convert Igusa--Clebsch invariants to Clebsch invariants.

Base Ring

BaseField(C) : Sch -> Fld
BaseRing(C) : Sch -> Fld
CoefficientRing(C) : Sch -> Fld
The base field of the hyperelliptic curve C.
 [Next][Prev] [Right] [Left] [Up] [Index] [Root]