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

Operations on Curves

Subsections

Elementary Invariants

HyperellipticPolynomials(C) : CrvHyp -> RngUPolElt, RngUPolElt
The univariate polynomials f(x), h(x), in that order, defining the hyperelliptic curve C by y2 + h(x)y = f(x).
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
The discriminant of the hyperelliptic curve C.
Genus(C) : CrvHyp -> RngIntElt
The genus of the hyperelliptic curve C.

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.

In addition, a package of functions written by Reynald Lercier and Christophe Ritzenthaler has been added which contains, amongst other things, functionality for working with a different set of absolute (as opposed to weighted projective) invariants referred to as Cardona-Quer-Nart-Pujola invariants. These work in characteristic 2 as well as other characteristics, although the definitions are different in the two cases.

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 Clebsch invariants A, B, C, D of f, as defined on p. 317 of Mestre;

The Igusa--Clebsch invariants A', B', C', D' of f, as defined on p. 319 of Mestre; and

The Igusa invariants (or Igusa J-invariants, or J-invariants) J2, J4, J6, J8, J10 of f, as defined on p. 324 of Mestre.

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 y2 + hy = f are equal to the Igusa invariants of the polynomial h2 + 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 [ J2, J4, J6, J8, J10 ] 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, [ I2, I4, I6, I10 ] (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 := I25/I10, i2 := I23 * I4/I10 and i3 := I22 * I6/I10 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.

The Cardona-Quer-Nart-Pujola invariants are three absolute invariants g1, g2, g3 which can be derived from the J-invariants and which provide an affine classification of all genus two curves over a basefield k up to isomorphism over bar(k). That is, there is a 1-1 correspondence between bar(k)-isomorphism classes of such curves and triples (g1, g2, g3) in k3. There are also functions to construct a curve with given invariants and to find all twists of such a curve (ie representatives of the k-isomorphism classes in the given bar(k)-isomorphism class), which will be described in later sections.

The invariants are different in the characteristic 2 and odd (or 0) characteristic cases. Details about the former case may be found in [CNP05]. See [CQ05] for the latter case. In the odd characteristic case, the formulae for [g1, g2, g3] in terms of the J-invariants are as follows:

[((J25)/(J10)), ((J23J4)/(J10)), ((J22J6)/(J10))] J2 ≠0

[0, ((J45)/(J210)), ((J4J6)/(J10))] J2 = 0, J4 ≠0

[0, 0, ((J65)/(J210))] J2 = J4 = 0

In the characteristic 2 case, the field k must be perfect. Formulae for the invariants (labelled ji rather than gi) may be found on p. 191 of [CNP05].

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(f, h) : 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 y2 + hy - 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) J2, J4, J6, J8, J10 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(f, h): RngUPolElt, RngUPolElt -> SeqEnum
JInvariants(f, h): 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) J2, J4, J6, J8, J10 of the curve y2 + hy = 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) J2, J4, J6, J8, J10 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(f, h): 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 y2 + hy = f, scaled by [16, 162, 163, 164, 165].
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, 162, 163, 164, 165].
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 in the sequence Q to Igusa--Clebsch invariants.
IgusaClebschToIgusa(S) : SeqEnum -> SeqEnum
Convert Igusa--Clebsch invariants in the sequence S to Clebsch invariants.
G2Invariants(C) : CrvHyp -> SeqEnum
Compute and return the sequence of three Cardona-Quer-Nart-Pujola invariants (see the introduction above) for C of genus 2.
G2ToIgusaInvariants(GI) : SeqEnum -> SeqEnum
Convert the sequence of Cardona-Quer-Nart-Pujola invariants (see the introduction above) to a corresponding sequence of Igusa J-invariants.
IgusaToG2Invariants(JI) : SeqEnum -> SeqEnum
Convert the sequence of Igusa J-invariants to Cardona-Quer-Nart-Pujola invariants (see the introduction above).

Shioda Invariants

The Shioda invariants may be computed for curves of genus 3 in characteristic 0 or characteristic ≥11. There are 9 of these, the first 6 being algebraically independent and the last 3 being algebraic over the field generated by the other 6. The discriminant is not one of these invariants. For more details, see [LR12] or [Shi67]. These invariants have weights and naturally give a point in a weighted projective space. There are also intrinsic for computing the 6 Maeda invariants of the curve ([Mae90]).

This functionality comes from a package contributed by Lercier and Ritzenthaler.

ShiodaInvariants(C) : CrvHyp -> SeqEnum, SeqEnum
ShiodaInvariants(f) : RngUPolElt -> SeqEnum, SeqEnum
ShiodaInvariants(fh) : SeqEnum -> SeqEnum, SeqEnum
    normalize: BoolElt                  Default: false
Returns a sequence containing the 9 Shioda invariants of a genus 3 hyperelliptic curve C along with a sequence containing the weight of the corresponding invariant (always 2, 3, 4, 5, 6, 7, 8, 9, 10). The base field of C must be of characteristic 0 or ≥11. There are also versions that takes a single polynomial f of degree less than or equal to 8 as argument (corresponding to the curve y2=f(x)) or a sequence of two polynomials fh (corresponding to the curve y2 + h(x)y=f(x)). In these cases if the degree of f (resp f - h2/4) is less than 7, or if the discriminant is zero, the invariants will be invariants of the corresponding binary octic but not of a genus 3 hyperelliptic curve anymore. Such sequences of invariants are referred to as singular.

The sequence of invariants can be considered as giving a point in a dimension 8 weighted projective space with the above weights. If the parameter normalize is set to true, the sequence is scaled to give a new sequence representing the same point in a normalized fashion. This means that two isomorphic curves will not necessarily give the same sequence of invariants, but they will always give the same sequence of normalized invariants.

ShiodaInvariantsEqual(V1,V2) : SeqEnum, SeqEnum -> BoolElt
Returns whether two sequences of Shioda invariants V1 and V2 represent the same point in the natural weighted projective space. This is equivalent to asking whether their normized versions (see previous intrinsic) are the same, which means that they represent the same isomorphism class of curves (if they are non-singular).
DiscriminantFromShiodaInvariants(JI) : SeqEnum -> RngElt
Returns the corresponding discriminant from a sequence of Shioda invariants JI. The discriminant (of a binary octic) is just a polynomial in its 9 Shioda invariants. Note that is scaled if the invariants are scaled, so that the value is different for example, if applied to the results of calling ShiodaInvariants with normalize set to true or false. The significant thing though is whether this is non-zero or not. The value is zero if and only if JI are singular invariants (associated to a polynomial with multiple roots or of degree ≤6).
ShiodaAlgebraicInvariants(FJI) : SeqEnum -> SeqEnum
    ratsolve: BoolElt                   Default: true
As mentioned in the introduction, the first 6 Shioda invariants are algebraically independent forms on the genus 3 hyperelliptic moduli space and the remaining 3 are algebraic over them.

This intrinsic takes a sequence FJI of 6 elements of a field k that must be of characteristic 0 or ≥11. If these are considered to be the first 6 Shioda invariants (of a possibly singular set), this intrinsic returns a sequence containing all possible sequences of the full 9 invariants over k that have those of FJI as the first 6, if the parameter ratsolve is true (the default). If ratsolve is false, the sequence returned instead contains the 6 polynomials in 3 variables over k, which defines a dimension 0, degree 5 system whose solutions are the possible last 3 invariants.


Example CrvHyp_shioda-inv-ex (H125E6)

> k := GF(37);
> P<t> := PolynomialRing(k);
> C := HyperellipticCurve(t^8+33*t^7+27*t^6+29*t^5+4*t^4+
>         18*t^3+20*t^2+27*t+36);
> ShiodaInvariants(C);
[ 33, 16, 30, 31, 8, 18, 0, 30, 31 ]
[ 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
> ShiodaAlgebraicInvariants([k|33,16,30,31,8,18]);
[
    [ 33, 16, 30, 31, 8, 18, 0, 30, 31 ],
    [ 33, 16, 30, 31, 8, 18, 14, 10, 25 ]
]
> ShiodaAlgebraicInvariants([k|33,16,30,31,8,18] : ratsolve := false);
[
    $.1^5 + 21*$.1^4 + 12*$.1^3 + 3*$.1^2 + 23*$.1,
    $.1^2 + 6*$.1 + 33*$.2 + 23*$.3 + 36,
    $.1*$.2 + 34*$.1 + 36*$.2 + 32*$.3,
    $.1*$.3 + 17*$.1 + 14*$.2^2 + 23*$.2 + 17*$.3 + 21,
    27*$.1 + $.2*$.3 + 36*$.2 + 27*$.3 + 2,
    8*$.1 + 27*$.2^2 + 2*$.2 + $.3^2 + 19*$.3 + 27
]

MaedaInvariants(C) : CrvHyp -> SeqEnum
MaedaInvariants(f) : RngUPolElt-> SeqEnum
Returns the six Maeda field invariants (I2, I3, I4, I4p, I8, I9) of a genus 3 hyperelliptic curve C. Again, the base field of C must be of characteristic 0 or ≥11. For this intrinsic, the model of C must also be in simplified y2=f(x) form. There is also a version with argument f, a univariate polynomial of degree less than or equal to 8, which returns the Maeda invariants of the binary octic given by homogenizing f (to degree 8). This is the same as asking for the invariants of y2=f(x) when f has degree 7 or 8.

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]

Version: V2.19 of Wed Apr 24 15:09:57 EST 2013