Arithmetic Geometry
Magma is a leading system for elliptic and hyperelliptic curve arithmetic over number fields - Mordell-Weil groups via 2-descent, Selmer groups, L-functions, isogeny graphs, and BSD computations.
Contributors
Arithmetic Geometry Over Characteristic 0 Fields
The method of Chabauty for finding points on elliptic curves and higher genus curves was originally implemented by Nils Bruin in 2003 while a member of the Magma group. In 2009 Nils improved it considerably by combining it with Mordell–Weil sieving.
Two-cover-descent has been implemented by Nils Bruin (Simon Fraser) for hyperelliptic curves. Given the Jacobian of a genus 2 curve, Nils has also provided code to compute all (2,2)-isogenous abelian surfaces.
The Magma facility for determining the Mordell–Weil group of an elliptic curve over the rational field is based on the mwrank programs of John Cremona (Nottingham).
John Cremona (Nottingham) has contributed his code implementing Tate's algorithm for computing local minimal models for elliptic curves defined over number fields.
The widely-used database of all elliptic curves over ℚ having conductor at most 500,000 constructed by John Cremona (Nottingham) is also included.
John Cremona (Warwick) has contributed his code implementing the Cremona–Pricket–Siksek bounds on the difference between naive and canonical heights.
Tim Dokchitser (Durham) wrote code for computing root numbers of elliptic curves over number fields.
Andreas-Stephan Elsenhans (Bayreuth) has provided routines for performing minimisation and reduction for Del Pezzo surfaces of degrees 3 and 4.
Code for determining isomorphism of cubic surfaces has been contributed by Andreas-Stephan Elsenhans (Bayreuth).
A collection of tools that calculate information about the Picard rank of a surface has been developed by Andreas-Stephan Elsenhans (Bayreuth).
Code for calculating the invariants, covariants and contravariants of a cubic surface has been developed by Andreas-Stephan Elsenhans (Bayreuth).
An algorithm implemented by Andreas-Stephan Elsenhans (Paderborn) computes the zeta-function of certain types of K3 surface.
A package for performing minimisation and reduction of plane curves over the rationals has been developed by Andreas-Stephan Elsenhans (Julius-Maximilians-Universität, Würzburg) and Michael Stoll (Bayreuth).
A package contributed by Tom Fisher (Cambridge) deals with curves of genus 1 given by models of a special kind (genus one normal curves) having degree 2, 3, 4 and 5.
The implementation of 3-descent on elliptic curves was mainly written by Tom Fisher (Cambridge). An earlier version as well as part of the current version were developed by Michael Stoll (Bremen).
The algorithms and implementations for 5-, 6- and 12-descent are due to Tom Fisher (Cambridge). The new algorithm/implementation of 8-descent is likewise by Tom Fisher; this partly incorporates and partly replaces the earlier one by Sebastian Stamminger (Bremen).
An algorithm for computing a rank bound for a curve over ℚ with a 2-isogeny, by performing several higher descent steps, has been contributed by Tom Fisher (Cambridge).
Martine Girard (Sydney) has contributed her fast code for determining the heights of a point on an elliptic curve defined over a number field or a function field.
David Kohel (Singapore–NUS, Magma) provided implementations of division polynomials and isogeny structures for elliptic curves.
Full and partial descents on cyclic covers of the projective line were implemented by Michael Mourao (Warwick).
A package for computing canonical heights of points on hyperelliptic curves has has been contributed by Jan Steffen Müller (Bayreuth).
David Roberts (Nottingham) contributed descent machinery for elliptic curves over function fields.
David Roberts and John Cremona (Nottingham) implemented the Cremona–van Hoeij algorithm for parametrization of conics over rational function fields.
Jasper Scholten (Leuven) has developed much of the code for computing with elliptic curves over function fields.
A database of 136,924,520 elliptic curves with conductors up to 108 has been provided by William Stein (Harvard) and Mark Watkins (Penn State).
Much of the initial development of the package for computing with hyperelliptic curves is due to Michael Stoll (Bayreuth). He also contributed many of the high level routines involving curves over the rationals and their Jacobians, such as Chabauty's method.
In 2019 Michael Stoll (Bayreuth) contributed a major upgrade to the package for curves of genus 2. Of particular note is machinery that tries to compute the Mordell–Weil group of the Jacobian of a curve of genus 2 over the rational field.
Tom Womack (Nottingham) contributed code for performing four-descent, from which the current implementation was adapted.
Arithmetic Geometry Over Finite Fields
Various point-counting algorithms for hyperelliptic curves have been implemented by Pierrick Gaudry (École Polytechnique, Paris). These include an implementation of the Schoof algorithm for genus 2 curves.
An implementation of GHS Weil descent for ordinary elliptic curves in characteristic 2 has been provided by Florian Heß (TU Berlin).
A Magma package for calculating Igusa and other invariants for genus 2 hyperelliptic curves functions was written by Everett Howe (CCR, San Diego) and is based on gp routines developed by Fernando Rodriguez-Villegas (Texas) as part of the Computational Number Theory project funded by a TARP grant.
Hendrik Hubrechts (Leuven) has contributed his package for fast point-counting on elliptic and hyperelliptic curves over large finite fields, based on the deformation method pioneered by Alan Lauder.
Reynard Lercier (Rennes) provided much advice and assistance to the Magma group concerning the implementation of the SEA point counting algorithm for elliptic curves.
Reynard Lercier (Rennes) and Christophe Ritzenthaler provided extensions to the machinery for genus 2 curves defined over finite fields. These include the reconstruction of a curve from invariants which applies to every characteristic p (previously p > 5), the geometric automorphism group and the calculation of all twists (not just quadratic).
Moritz Minzlaff (TU Berlin) has contributed code for computing zeta functions of superelliptic curves of the form ya = h(x).
Class fields over local fields and the multiplicative structure of local fields are computed using new algorithms and implementations due to Sebastian Pauli (TU Berlin).
Jan Tuitman (Leuven) has contributed code for computing zeta functions of general curves.
Kedlaya's algorithm for point counting on elliptic curves defined over finite fields of characteristic 2 was implemented by Frederick Vercauteren (Leuven).
Efficient Magma implementations of the Tate, Eta and Ate pairings were undertaken by Frederik Vercauteren (Leuven).