|
ACKNOWLEDGEMENTS
The Magma Development Team
Current Members
Eran Assaf, Ph.D. (Jerusalem), [2024--]: Main interests include
modular forms, arithmetic geometry, and the Langlands program.
Geoff Bailey, BSc (Hons) (Sydney), [1995--]: Main interests include
elliptic curves (especially those defined over the rationals), virtual
machines and computer language design. Has implemented part of the
elliptic curve facilities especially the calculation of Mordell--Weil
groups. Other main areas of contribution include combinatorics, local
fields and the Magma system internals.
John Cannon, Ph.D. (Sydney), [1971--]: Research interests include
computational methods in algebra, geometry, number theory and combinatorics;
the design of mathematical programming languages and the integration of
databases with Computer Algebra systems. Contributions include overall
concept and planning, language design, specific design for many categories,
numerous algorithms (especially in group theory) and general management.
Edgar Costa, Ph.D. (NYU), [2024--]: Main interests include
arithmetic geometry, arithmetic statistics, and the Langlands program.
Andreas-Stephan Elsenhans, Ph.D. (Göttingen) [2012--2015, 2024--]:
Main research interests are in the areas of arithmetic and algebraic
geometry, particularly cubic and K3 surfaces. Main contributions
focus on cubic surfaces from the arithmetic and algebraic points of
view.
Madeleine Kyng Ph.D. (UNSW) [2022--]: Contributed a p-adic algorithm
for point counting for curves over finite fields.
Allan Steel, Ph.D. (Sydney), [1989--]: Has
developed many of the fundamental data structures and algorithms in
Magma for multiprecision integers, finite fields, matrices and modules,
polynomials and Gröbner bases, aggregates, memory management,
environmental features, and the package system, and has also worked on
the Magma language interpreter. In collaboration, he has developed the
code for lattice theory (with Bernd Souvignier), invariant theory (with
Gregor Kemper) and module theory (with Jon Carlson and Derek Holt).
Nicole Sutherland, Ph.D. (Sydney), [1999--]: Works in the
areas of arithmetic fields and algebraic geometry. Developed the machinery
for Newton polygons and lazy power series and contributed to the code
for local fields, number fields, modules over Dedekind domains, function
fields, schemes and has worked on aspects of algebras.
Don Taylor, D.Phil. (Oxford), [2010--] Research interests are in
reflection groups, finite group theory, and geometry. Implemented
algorithms for complex reflection groups and complex root data.
Contributed to the packages for Chevalley groups and groups of Lie type.
Currently developing algorithms for classical groups of isometries,
Clifford algebras and spin groups.
Bill Unger, Ph.D. (Sydney), [1998--]: Main area of interest is
computational group theory, with particular emphasis on algorithms
for permutation and matrix groups. Implemented many of the current
permutation and matrix group algorithms for Magma, in particular
BSGS verification, solvable radical and chief series algorithms.
Recently discovered a new method for computing the character table of
a finite group.
John Voight, Ph.D. (Berkeley), [2005--2006, 2024--]:
Has implemented algorithms for quaternion algebras over number fields,
associative orders (with Nicole Sutherland), and Shimura curves.
Former Members
Wieb Bosma, [1989--1996]:
Responsible for the initial development of number theory in Magma
and the coordination of work on commutative rings. Also has continuing
involvement with the design of Magma.
Gavin Brown, [1998--2001]: Developed code in basic algebraic geometry,
applications of Gr{öbner bases, number field and function field kernel
operations; applications of Hilbert series to lists of varieties.
Herbert Brückner, [1998--1999]: Developed code for
constructing the ordinary irreducible representations of a finite
soluble group and the maximal finite soluble quotient of a finitely
presented group.
Nils Bruin, [2002--2003]: Contributions include Selmer groups of
elliptic curves and hyperelliptic Jacobians over arbitrary number fields,
local solubility testing for arbitrary projective varieties and curves,
Chabauty-type computations on Weil-restrictions of elliptic curves
and some algorithms for, and partial design of, the differential rings
module.
Bruce Cox, [1990--1998]: A member of the team that worked on
the design of the Magma language. Responsible for implementing
much of the first generation Magma machinery for permutation and
matrix groups.
Brendan Creutz, [2011--2013]:
Primary research interests are in arithmetic geometry. Main contributions
focus on descent obstructions to the existence of rational points on
curves and torsors under their Jacobians.
Steve Donnelly, Ph.D. (Athens, Ga) [2005--2017]: Research interests are
in arithmetic geometry, particularly elliptic curves and modular forms.
Contributions include: many routines for elliptic curves over Q and number
fields, including descent methods, Cassels--Tate pairings and integral points;
Hilbert modular forms and fast algorithms for definite quaternion algebras;
also developed a new implementation of the general class group algorithm.
Currently continuing to work on class groups, elliptic curves and surfaces.
Claus Fieker, [2000--2011]: Formerly a member of the
KANT project. Research interests are in constructive algebraic number
theory and, especially, relative extensions and computational class field
theory. Main contributions are the development of explicit algorithmic
class field theory in the case of both number and function fields and
the computation of Galois groups.
Damien Fisher, [2002--2006]: Implemented a package for p-adic
rings and their extensions and undertook a number of extensions to
the Magma language.
Alexandra Flynn, [1995--1998]: Incorporated various Pari
modules into Magma, and developed much of the machinery for designs
and finite planes.
Volker Gebhardt, [1999--2003]: Author of the Magma categories
for infinite polycyclic groups and for braid groups. Other
contributions include machinery for general finitely presented groups.
Katharina Geiß ler, [1999--2001]: Developed the code for
computing Galois groups of number fields and function fields.
Willem de Graaf, [2004--2005]: Contributed functions for computing
with finite-dimensional Lie algebras, finitely-presented Lie algebras,
universal enveloping algebras and quantum groups.
Sergei Haller, [2004, 2006--2007]: Developed code for many
aspects of Lie Theory. Of particular note was his work on the
construction of twisted groups of Lie type and the determination of
conjugacy classes of elements in the classical groups (jointly with
Scott Murray (Magma)).
Michael Harrison, [2003--2015, 2018--2020]:
Implemented p-adic methods for counting points on hyperelliptic curves
and their Jacobians over finite fields. Added a variety of general
algebraic curve functionality including gonal maps and modular form
functionality including the small modular curve database. Developed
machinery for general surfaces, for the cohomology of projective
varieties and worked on further surface machinery and a
semi-stable reduction algorithm for curves.
Emanuel Herrmann, [1999]: Contributed code for finding
S-integral points on genus 1 curves (not elliptic curves).
Florian Heß, [1999--2001]: Developed a substantial part of
the algebraic function field module in Magma including algorithms
for the computation of Riemann--Roch spaces and class groups.
His most recent contribution (2005) is a package for computing
all isomorphisms between a pair of function fields.
David Howden, Ph.D. (Warwick) [2012--2014]: Worked on improved
methods for constructing automorphism groups and testing isomorphism
in the case of soluble groups.
Alexander Kasprzyk, [2009--2010]: Developed the toric geometry
and polyhedra packages (along with Gavin Brown and Jaroslaw Buczynski).
David Kohel, [1999--2002]:
Contributions include a model for schemes (with Gavin Brown); algorithms
for curves of low genus; implementation of elliptic curves, binary quadratic
forms, quaternion algebras, Brandt modules, spinor genera and genera of
lattices, modular curves, conics with Paulette Lieby), modules of
supersingular points (with William Stein), Witt rings.
Paulette Lieby, [1999--2003]: Contributed to the development
of algorithms for algebraic geometry, abelian groups and incidence
structures. Developed data structures for multigraphs and implemented
algorithms for planarity, triconnectivity and network flows.
Graham Matthews, [1989--1993]: Involved in the design of
the Magma semantics, user interface, and internal organisation.
Scott Murray, [2001--2002, 2004--2010]: Implemented algorithms for
element operations in split groups of Lie type, representations of split
groups of Lie type, split Cartan subalgebras of modular Lie algebras,
and Lang's Theorem in finite reductive groups. More recently implemented
solutions to conjugacy problems in the classical groups (with Sergei Haller and
Don Taylor).
Catherine Playoust, [1989--1996]: Wrote extensive documentation and
implemented an early help system. Contributed to system-wide consistency
of design and functionality. Also pioneered the use of Magma for teaching
undergraduates.
Richard Rannard, [1997--1998]: Contributed to the code for
elliptic curves over finite fields including a first version
of the SEA algorithm.
Colva M. Roney-Dougal, [2001--2003]: Completed the
classification of primitive permutation groups up to degree 999
(with Bill Unger). Also undertook a constructive classification
of the maximal subgroups of the classical simple groups.
Dan Roozemond, [2010--2012]: Research focused on
the computational aspects of Lie theory. Ported algorithms for the weight
multisets from LiE to Magma and developed a number of algorithms for
reductive Lie algebras, particularly over fields of small characteristic.
Michael Slattery, [1987--2006]: Contributed a large part of the
machinery for finite soluble groups including subgroup lattice and
automorphism group.
Ben Smith, [2000--2003]: Contributed to an implementation of
the Number Field Sieve and a package for integer linear programming.
Bernd Souvignier, [1996--1997]: Contributed to the development
of algorithms and code for lattices, local fields, finite
dimensional algebras and permutation groups.
Damien Stehl{é, [2006, 2008--2010]: Implemented the proveably correct
floating-point LLL algorithm together with a number of fast non-rigorous
variants. Also developed a fast method for enumerating short vectors.
Alexa van der Waall, [2003]: Implemented the module for differential
Galois theory.
Paul B. van Wamelen, [2002--2003]:
Implemented analytic Jacobians of hyperelliptic curves in Magma.
Mark Watkins, [2003, 2004--2005, 2008--2021]:
Works in the area of number theory, particularly analytic methods
for arithmetic objects. Implemented a range of analytic tools
for the study of elliptic curves including analytic rank, modular
degree, Heegner points and (general) point searching methods.
Also deals with conics, lattices, modular forms, and descent machinery
over the rationals.
Greg White, [2000--2006]: Contributions include fast minimum weight
determination, linear codes over Z/mZ, additive codes, LDPC codes,
quantum error-correcting codes, and a database of best known linear codes
(with John Cannon and Markus Grassl).
He also implemented a module for Young tableaux.
External Contributors
The Magma system has benefited enormously from contributions made by
many members of the mathematical community. We list below those persons
and research groups who have given the project substantial assistance
either by allowing us to adapt their software for inclusion within
Magma or through general advice and criticism. We wish to express our
gratitude both to the people listed here and to all those others who
participated in some aspect of the Magma development.
Algebraic Geometry
A major package for algebraic surfaces providing formal
desingularization, the calculation of adjoints, and rational
parameterization was developed by Tobias Beck (RICAM, Linz).
He also implemented a package for computing with algebraic power series.
This work was done while he was a student of Josef Schicho.
A package for working with divisors on varieties has been
developed by Martin Bright (American University of Beirut),
Gavin Brown (Loughborough), Mike Harrison (Magma) and
Andrew Wilson (Edinburgh). The functionality includes
decomposition into irreducible components, Riemann--Roch spaces,
canonical divisors and (surface) intersection numbers.
Machinery for working with Hilbert series of polarised
varieties and the associated databases of K3 surfaces and Fano 3-folds
has been constructed by Gavin Brown (Warwick).
A package for toric geometry together with a package for
polytopes and polyhedra were developed by Jaroslaw Buczynski
(Texas A&M), Gavin Brown (Loughborough) and Alexander
Kasprzyk (Magma and Imperial College).
Functions for computing Shioda invariants for genus 3
hyperelliptic curves, reconstructing models for a curve from such
invariants and computing geometric automorphism groups have been
contributed by Reynald Lercier (DGA, Rennes) and
Christophe Ritzenthaler (Luminy).
A 2021 upgrade of their package for hyperelliptic curves
has been provided by Reynald Lercier (Rennes), Christophe Ritzenthaler (Rennes),
and Jeroen Sijsling (Ulm).
Functionality for (smooth) plane quartic curves has been
provided by Reynald Lercier (Rennes), Christophe Ritzenthaler (Rennes), and
Jeroen Sijsling (Ulm).
Christian Neurohr (Universität Oldenburg) has
contributed his package for computing with Riemann surfaces.
Jana Pilnikova (Univerzita Komenskeho, Bratislava)
(while a student of Josef Schicho in Linz) contributed code for
the parameterization of degree 8 and 9 Del Pezzo surfaces, jointly
written with Willem de Graaf (Trento).
Miles Reid (Warwick) has been heavily involved in the
design and development of a database of K3 surfaces within Magma.
Carlos Rito (Universidade de Tras-os-Montes e Alto Douro,
Portugal) has contributed code for computing linear systems (2023--2024).
This includes the linear system of an affine plane curve which has
non-ordinary singularities.
Josef Schicho (RICAM, Linz) has played a major role in
the design and implementation of the algebraic surfaces package. In
particular, Josef has also implemented several of the modules for rational
surface parameterization.
A function that finds the intersection multiplicities for
all intersection points of two plane curves was adapted into Magma
from code provided by Chris Smyth (Edinburgh).
Andrew Wilson (Edinburgh) has contributed a package to
compute the log canonical threshold for singular points on a curve.
Arithmetic Geometry Over Characteristic 0 Fields
The method of Chabauty for finding points on elliptic curves
and higher genus curve 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 Q
having conductor at most 500,000 has been constructed in a number of
installments by John Cremona (Warwick).
John Cremona (Warwick) has contributed his code
implementing the Cremona--Prickett--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 on elliptic curves 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 Q
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 height 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 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) 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 (Ecole 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 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).
Associative and Non-associative Algebras
{See also the subsection Representation Theory.}
Fast algorithms for computing the Jacobson radical and unit group
of a matrix algebra over a finite field were designed and implemented by
Peter Brooksbank (Bucknell) and Eamonn O'Brien (Auckland).
A package for computing with algebras equipped with an involution
(*-algebras) has been contributed by Peter Brooksbank (Bucknell) and
James Wilson (Ohio State).
An algorithm designed and implemented by Jon Carlson and
Graham Matthews (Athens, Ga.) provides an efficient means for
constructing presentations for matrix algebras.
For matrix algebras defined over a finite field, Jon Carlson
(Athens, Ga.) designed and implemented algorithms for the Jacobson radical
and unit group which are faster than the Brooksbank--O'Brien algorithms for
larger examples.
Markus Kirschmer (Aachen) has written a number of
optimized routines for definite quaternion algebras over number fields.
Markus Kirschmer has also contributed a package for
quaternion algebras defined over the function fields Fq[t],
for q odd. The package includes calculation of the normaliser of
an order and an efficient algorithm for computing the two-sided
ideal classes of an order in a definite quaternion algebra
(over Z or Fq[t]).
Quaternion algebras over the rational field Q were originally
implemented by David Kohel (Singapore--NUS, Magma).
The vector enumeration program of Steve Linton
(St. Andrews) provides an alternative to the use of Gröbner basis
techniques for constructing a matrix representation of a finitely
presented associative algebra.
Constructions for various types of non-associative algebras
have been contributed by Josh Maglione and James Wilson
(both Colorado State U) as part of their Multilinear Algebra package.
A package for computing with Clifford algebras defined over
finite fields was developed by Don Taylor (Sydney) and released
in Magma V2.18 (2011).
John Voight produced the package for quaternion
algebras over number fields.
Coding Theory
A package for constructing linear codes associated with lattice
points in a convex polytope has been contributed by Gavin Brown
(Loughborough) and Al Kasprzyk (Imperial).
The development of machinery for linear codes benefited
greatly from the active involvement of Markus Grassl (Karlsruhe)
over a long period. Of particular note is his contribution to the
development of improved algorithms for computing the minimum weight
and for the enumeration of codewords.
Routines implementing many different constructions for linear
codes over finite fields were contributed by Markus Grassl (Karlsruhe).
The construction of a database of Best Known Linear Codes
(BKLC) over GF(2) was a joint project with Markus Grassl (Karlsruhe,
NUS). Other contributors to this project include: Andries Brouwer,
Zhi Chen, Stephan Grosse, Aaron Gulliver, Ray Hill,
David Jaffe, Simon Litsyn, James B. Shearer and
Henk van Tilborg. For the release of Magma V2.28 in 2023 Markus
provided a major update of the BKLC database.
The databases of Best Known Linear Codes over GF(3),
GF(4), GF(5), GF(7), GF(8) and GF(9) were constructed by
Markus Grassl (IAKS, Karlsruhe).
Markus Grassl (Karlsruhe) played a key role in the design
of magma packages for additive codes and quantum error-correcting codes.
The packages were implemented by Greg White (Magma).
The PERM package developed by Jeff Leon
(UIC) is used to determine automorphism groups of codes, designs and
matrices.
A substantial collection of intrinsics for constructing and
computing properties of Z4 codes, building on Magma's basic machinery
for Z4 codes, was contributed in 2009 by the Combinatoric, Coding and
Security Group (CCSG) at the Universitat Autònoma de Barcelona headed
by Mer`c Villanueva. The other members of the group were
Roland D. Barrolleta, Jaume Pernas, and Jaume Pujol.
They subsequently extended the package to include automorphism groups
of Z4 codes and a range of decoding algorithms. This version was
released in 2016 with Magma V2.22.
Code for permutation decoding of linear codes over Fq was
contributed by the CCSG group (Universitat Autònoma de Barcelona) in
2016.
Combinatorics
Michel Berkelaar (Eindhoven) gave us permission to
incorporate his lp_solve package for linear programming.
The first stage of the Magma database of Hadamard and
skew-Hadamard matrices was prepared with the assistance of
Stelios Georgiou (Athens), Ilias Kotsireas (Wilfrid Laurier)
and Christos Koukouvinos (Athens). In particular, they made
available their tables of Hadamard matrices of orders 32, 36, 44, 48 and 52.
Further Hadamard matrices were contributed by Dragomir Djokovic.
The Magma machinery for symmetric functions is based on
the Symmetrica package developed by Adalbert Kerber (Bayreuth)
and colleagues. The Magma version was implemented by Axel Kohnert
of the Bayreuth group.
The PERM package developed by Jeff Leon (UIC) is
used to determine automorphism groups of designs and also to determine
isomorphism of pairs of designs.
Automorphism groups and isomorphism of Hadamard matrices
are determined by converting to a similar problem for graphs and
then applying the nauty program developed by Brendan McKay
(ANU). The adaption was carried out by Paulette Lieby and
Geoff Bailey (both Magma).
The calculation of the automorphism groups of
graphs and the determination of graph isomorphism is performed
using Brendan McKay's (ANU) program nauty.
Databases of graphs and machinery for generating such databases
have also been made available by Brendan. He has also collaborated
in the design of the sparse graph machinery.
The graph automorphism/isomorphism program Traces
developed by Adolfo Piperno (Sapienza Universita di Roma) is
installed in Magma as part of the extended nauty package.
The code to perform the regular expression matching
in the regexp intrinsic function comes from the V8 regexp package
written by Henry Spencer (Toronto).
Commutative Algebra
Gregor Kemper (TU München) has contributed most
of the major algorithms of the Invariant Theory module of Magma,
together with many other helpful suggestions in the area of Commutative
Algebra.
Alexa van der Waall (Simon Fraser) has implemented the
module for differential Galois theory.
Galois Groups
The Fieker--Klüners algorithm for finding the Galois group
of a polynomial has been improved in a number of ways over the period
2014--2016 by Stephan Elsenhans (Paderborn).
Jürgen Klüners (Kassel) has made major
contributions to the Galois theory machinery for function fields and
number fields. In particular, he implemented functions for
constructing the subfield lattice and automorphism group of a field and
also the subfield lattice of the normal closure of a field. In joint
work with Claus Fieker (Magma), Jürgen has recently developed a new
method for determining the Galois group of a polynomial of arbitrary
high degree.
Jürgen Klüners (Kassel) and Gunter Malle
(Kassel) made available their extensive tables of polynomials realising
all Galois groups over Q up to degree 15.
Galois Representations
Jeremy Le Borgne (Rennes) contributed his package for
working with mod p Galois representations.
Code for constructing Artin representations of the Galois
group of the absolute extension of a number field was developed by
Tim Dokchitser (Cambridge).
Machinery which provides a uniform method for working with Galois
representations over p-adic fields was implemented by Tim Dokchitser
(Bristol).
Jared Weinstein (UCLA) wrote the package on admissible
representations of GL2(Qp).
Geometry
Algorithms for testing whether two convex polytopes embedded
in a lattice are isomorphic or equivalent have been implemented by
Al Kasprzyk (Imperial College). Of particular note is Al's
implementation of the PALP normal form algorithm.
The Magma code for computing with incidence geometries has
been developed by Dimitri Leemans (Brussels).
Dimitri Leemans (Auckland) contributed code for working
with string C-groups and C + -groups in 2016.
Global Arithmetic Fields
An implementation of the Montes algorithm and its applications
to speeding up computations involving ideal arithmetic in number fields
and function fields has been contributed by Jens-Dietrich Bauch.
This implementation includes functionality for ideals and divisors of
number fields and function fields which require no maximal order computations.
Jean-Francois Biasse (Calgary) implemented a quadratic
sieve for computing the class group of a quadratic field. He also
developed a generalisation of the sieve for number fields having degree
greater than 2.
Florian Heß (TU Berlin) has contributed a major
package for determining all isomorphisms between a pair of algebraic
function fields.
Jürgen Klüners (Düsseldorf) and Sebastian
Pauli (UNC Greensboro) have developed algorithms for computing the
Picard group of non-maximal orders and for embedding the unit group of
non-maximal orders into the unit group of the field.
David Kohel (Singapore--NUS, Magma) has contributed
to the machinery for binary quadratic forms and has implemented rings
of Witt vectors.
The facilities for general number fields and global function
fields in Magma are based on the KANT V4 package developed by
Michael Pohst and collaborators, first at Düsseldorf and
then at TU Berlin. This package provides extensive machinery for
computing with maximal orders of number fields and their ideals, Galois
groups and function fields. Particularly noteworthy are functions for
computing the class and unit group, and for solving Diophantine
equations.
Code for finding all decompositions of a rational function
into compositions of rational functions has been contributed by Jonas
Szutkoski (Univ. Federal do Rio Grande do Sul).
The fast algorithm of Wieb Bosma and Peter Stevenhagen
for computing the 2-part of the ideal class group of a quadratic
field has been implemented by Mark Watkins (Bristol).
A database of number fields having degrees 2 through 9 was
included in Magma from V2.19 (2013) onwards. The database was
constructed by the Pari (Bordeaux) and KANT (Berlin)
groups.
Group Theory: Finitely-Presented Groups
{See also the subsection Group Theory: Soluble Groups}
A package for testing whether a finitely-presented group is
large, developed by Jack Button (Cambridge), was installed in
Magma V2.20 (2013).
A new algorithm for computing all normal subgroups of a
finitely-presented group up to a specified index has been designed
and implemented by David Firth and Derek Holt (both Warwick).
The function for determining whether a given finite
permutation group is a homomorphic image of a finitely-presented group has
been implemented in C by Volker Gebhardt (Magma) from a
Magma language prototype developed by Derek Holt (Warwick).
A variant developed by Derek allows one to determine whether a small
soluble group is a homomorphic image.
Versions of Magma from V2.8 onwards employ the
Advanced Coset Enumerator designed by George Havas (UQ)
and implemented by Colin Ramsay (UQ). George has also
contributed to the design of the machinery for finitely-presented groups.
Derek Holt (Warwick) developed a modified version
of his program, kbmag, for inclusion within Magma. The Magma
facilities for groups and monoids defined by confluent rewrite systems,
as well as automatic groups, are supported by this code.
Derek Holt (Warwick) has provided a magma implementation
of his algorithm for testing whether two finitely-presented groups are
isomorphic.
A small package for working with subgroups of free groups has
been developed by Derek Holt (Warwick). He has also provided code
for computing the automorphism group of a free group.
An improved version of the Plesken--Fabianska algorithm for
finding (L)2-quotients of a finitely presented group was designed
and implemented by Sebastian Jambor (Aachen). Among other features
this version removes the restriction to two generators.
The algorithms designed and implemented by Sebastian
Jambor (Aachen) for finding (L)3- and (U)3-quotients
of a finitely-presented group have been incorporated into Magma.
The function for finding all subgroups having index less than
a specified finite bound was implemented by Catherine Playoust (Magma).
The implementation was based on a Pascal program written by Charlie
Sims (Rutgers).
The package TameGenus, has been provided by Peter Brooksbank (Bucknell),
Josh Maglione (Bielefeld), and James Wilson (Colorado State U). It includes polynomial-time algorithms for
deciding isomorphism, constructing automorphism groups, and building canonical
labels for a class of finite p-groups of nilpotency class 2 and exponent p.
Group Theory: Finite Groups
A variation of the Product Replacement Algorithm for
generating random elements of a group due to Henrik Bäärnhielm
and Charles Leedham-Green has been coded with their assistance.
A Small Groups database containing all groups having order
at most 2000, excluding order 1024, has been made available by
Hans Ulrich Besche (Aachen), Bettina Eick (Braunschweig),
and Eamonn O'Brien (Auckland). This library incorporates
"directly" the libraries of 2-groups of order dividing 256 and the
3-groups of order dividing 729, which were prepared and distributed at
various intervals by Mike Newman (ANU) and Eamonn O'Brien
and various assistants, the first release dating from 1987.
The Small Groups database was augmented in Magma V2.14
(2007) by code that can enumerate all groups of any square-free order.
This code was developed by Bettina Eick (Braunschweig) and
Eamonn O'Brien (Auckland).
The calculation of automorphism groups (for permutation and
matrix groups) and determining group isomorphism is performed by code
written by Derek Holt (Warwick).
Code for finding the minimal permutation representation of
a finite group has been provided by Derek Holt (Warwick).
Effective algorithms have been devised and implemented by
Derek Holt (Warwick) for computing the maximal subgroups of all
finite simple groups that have a faithful representation of reasonable
degree.
Lifting-style algorithms have been developed by Derek Holt
(Warwick) for computing structural information in groups given in terms of
the Composition Tree data structure. The operations include centralisers,
conjugacy classes, normalizers, subgroup conjugacy and maximal subgroups.
The routine for computing the subgroup lattice of a group
(as distinct from the list of all conjugacy classes of subgroups) is
based on code written by Dimitri Leemans (Brussels).
Group Theory: Finite Simple Groups
{See also the subsection Group Theory: Matrix Groups Defined Over Finite Fields}
Constructive recognition of quasi-simple groups belonging
to the Suzuki and two Ree families have been implemented by Hendrik
Bäärnhielm (QMUL). The package includes code for constructing
their Sylow p-subgroups and maximal subgroups.
The maximal subgroups of all classical groups having degree
not exceeding 12 have been constructed and implemented in magma by
John Bray (QMUL), Derek Holt (Warwick) and Colva
Roney-Dougal (St Andrews).
Peter Brooksbank (Bucknell) implemented a magma
version of his algorithm for performing constructive black-box
recognition of low-dimensional symplectic and unitary groups. He
also gave the Magma group permission to base its implementation
of the Kantor--Seress algorithm for black-box recognition of linear
groups on his GAP implementation.
A method for constructing the natural K[G]-module for a
classical group G from one of bounded degree has been implemented
by Brian Corr and Eamonn O'Brien (both Auckland).
A new implementation of code for the constructive recognition
of orthogonal groups in even characteristic was developed by Heiko
Dietrich (Monash).
Michael Downward and Eamonn O'Brien (both
Auckland) provided functions to access much of the data in the
on-line ATLAS of Finite Group Representations for the sporadic groups.
A function to select "good" base points for sporadic groups
was provided by Eamonn and Robert Wilson (QMUL).
Magma includes a database of almost-simple groups defined
on standard generators. The database was originally conceived by
Derek Holt (Warwick) with a major extension by Volker Gebhardt
(Magma) and sporadic additions by Bill Unger (Magma).
A Monte Carlo algorithm to determine the defining characteristic
of a quasisimple group of Lie type has been contributed by Martin Liebeck
(Imperial) and Eamonn O'Brien (Auckland).
The package for recognizing large degree classical
groups over finite fields was designed and implemented by Alice
Niemeyer (Perth) and Cheryl Praeger (Perth). It has been
extended to include 2-dimensional linear groups by Eamonn
O'Brien (Auckland).
Code, provided by Eamonn O'Brien (Auckland) in 2015,
constructs standard generators for matrix and permutation representations
of classical groups defined over finite fields.
Eamonn O'Brien (Auckland) has provided implementations
of constructive recognition algorithms for the matrix groups (P)SL(2, q) and
(P)SL(3, q).
Improved algorithms, based on work of Peter Brooksbank (Bucknell), were
provided by Eamonn O'Brien (Auckland) in 2015 for recognising
SU(3, q), SU(4, q) and Sp(4, q).
A new implementation of an algorithm that writes an arbitrary
element of a classical group in terms of its standard generators was
provided by Csaba Schneider (Universidade Federal de Minas Gerais).
A package for constructing the Sylow p-subgroups of the
classical groups has been implemented by Mark Stather (Warwick).
Generators in the natural representation of a finite group of Lie
type were constructed and implemented by Don Taylor (Sydney) with some
assistance from Leanne Rylands (Western Sydney).
Eamonn O'Brien and Giovanni de Franceschi (both
Auckland) contributed code for omputing the conjugacy classes, centralisers
and conjugating elements for all classical groups, including groups in
characteristic 2.
Algorithms and code for computing conjugacy classes and testing
conjugacy in the symplectic and orthogonal groups over finite fields were
developed by Don Taylor (Sydney). This code was first exported in
Magma V2.22 (2016).
Improved algorithms and code for computing conjugacy classes and
testing conjugacy in the classical groups over finite fields were developed
by Don Taylor (Sydney) over the period 2020--2021. This code upgrade
was exported in Magma V2.26 (March, 2021).
Robert Wilson (QMUL) has made available the data contained
in the on-line ATLAS of Finite Group Representations for use in a
Magma database of permutation and matrix representations for finite simple
groups. See http://brauer.maths.qmul.ac.uk/Atlas/.
Group Theory: Matrix Groups Defined Over Characteristic 0 Rings
A package developed by Alla Detinko (Galway), Dane
Flannery (Galway) and Eamonn O'Brien (Auckland) determines whether
a matrix group defined over a number field or rational function field
is finite. The package was installed in Magma V2.16 (2009).
A package, "Infinite", has been developed by Alla Detinko
(Galway), Dane Flannery (Galway) and Eamonn O'Brien (Auckland)
for computing properties of matrix groups defined over number fields, or
(rational) function fields in zero or positive characteristic.
An algorithm for determining the conjugacy of any pair of
matrices in GL(2, Z) was developed and implemented by David Husert
(University of Paderborn). In particular, this allows the conjugacy of
elements having infinite order to be determined.
Markus Kirschmer (RWTH, Aachen) has provided a package
for computing with finite subgroups of GL(n, (Z)). A Magma
database of the maximal finite irreducible subgroups of Sp2n(Q)
for 1≤i ≤11 has also been made available by Markus.
A much improved algorithm for computing the normaliser or
centraliser of a finite subgroup of GL(n, Z) has been implemented
by Markus Kirschmer (Aachen). Markus has also implemented an
algorithm that tests finite subgroups for conjugacy.
A database of the maximal finite irreducible subgroups of
Sp2n(Q) for 1≤i ≤11 constructed by Markus Kirschmer
(Aachen) was installed in Magma 2.16 (2009).
Procedures to list irreducible (soluble) subgroups of
GL(2, q) and GL(3, q) for arbitrary q have been provided by
Dane Flannery (Galway) and Eamonn O'Brien (Auckland).
Magma incorporates a database of the maximal finite
rational subgroups of GL(n, Q) up to dimension 31. This database
was constructed by Gabriele Nebe (Aachen) and Wilhelm Plesken
(Aachen). A database of quaternionic matrix groups constructed by
Gabriele is also included.
Group Theory: Matrix Groups Defined Over Finite Fields
{See also the subsection Group Theory: Finite Simple Groups}
The Composition Tree (CT) package developed by Henrik
Bäärnhielm (Auckland), Derek Holt (Warwick), Charles
Leedham-Green (QMUL) and Eamonn O'Brien (Auckland), working with
numerous collaborators, was first released in Magma V2.17 (2010).
This package is designed for computing structural information for large
matrix groups defined over a finite field. Upgrades were released in
V2.18 (2011), V2.19 (2012), V2.20 (2013), V2.21 (2014), V2.22 (2016),
V2.25 (2020) and V2.26 (2021).
Code which computes the normaliser of the subgroup of a general
linear group defined over a finite field, using a theorem of Aschbacher
rather than backtrack search, has been provided by Hannah Coutts
(St Andrews).
A function that determines whether a matrix group G (defined
over a finite field) is the normaliser of an extraspecial group in the
case where the degree of G is an odd prime uses the new Monte Carlo
algorithm of Alice Niemeyer (Perth) and has been implemented in
Magma by Eamonn O'Brien (Auckland).
Eamonn O'Brien (Auckland) has contributed a Magma implementation
of algorithms for determining the Aschbacher category of a subgroup of
GL(n, q).
A fast algorithm for determining subgroup conjugacy based on
Aschbacher's theorem classifying the maximal subgroups of a linear group
has been designed and implemented by Colva Roney-Dougal (St Andrews).
Group Theory: Permutation Groups
A new implementation of the algorithm of Jambor et al. (2013)
for the constructive black box recognition of alternating and symmetric
groups was installed in Magma V2.20 (2013), The implementation was
undertaken by Jonathan Conder (Auckland) and Sebastian Jambor
(Auckland).
Derek Holt (Warwick) has implemented the Magma
version of the Bratus/Pak algorithm for black-box recognition of
the symmetric and alternating groups.
Derek Holt (Warwick) has constructed a table of
irreducible representations of quasisimple groups (up to degree 100).
Some representations were contributed by Allan Steel, Volker
Gebhardt and Bill Unger (all magma).
Alexander Hulpke (Colorado State) has made available
his database of all transitive permutation groups of degree up to 30.
This incorporates the earlier database of Greg Butler (Concordia)
and John McKay (Concordia) containing all transitive groups of
degree up to 15.
A table containing all primitive groups having degree less than
2,500 has been provided by Colva Roney-Dougal (St Andrews). The
groups of degree up to 1,000 were done jointly with Bill Unger
(magma).
A table containing all primitive groups having degrees in the
range 2,500 to 4,095 has been provided by Hannah Coutts,
Martyn Quick and Colva Roney-Dougal (all at St Andrews).
Colva Roney-Dougal (St Andrews) has implemented the
Beals et al. algorithm for performing black-box recognition on the
symmetric and alternating groups.
A Magma database has been constructed from the permutation
and matrix representations contained in the on-line ATLAS of Finite
Group Representations with the assistance of its author Robert Wilson
(QMUL).
Group Theory: Soluble Groups
The soluble quotient algorithm in Magma was designed and
implemented by Herbert Brückner (Aachen).
Code producing descriptions of the groups of order p4, p5,
p6, p7 for p>3 was contributed by Boris Girnat, Robert McKibbin,
Mike Newman, Eamonn O'Brien, and Michael Vaughan-Lee.
A new approach to the more efficient calculation of the
automorphism group of a finite soluble group has been developed and
implemented by David Howden (Warwick). A slight variation of the
algorithm is used to test isomorphism.
Most of the algorithms for p-groups and many of the
algorithms implemented in magma for finite soluble groups are
largely due to Charles Leedham--Green (QMUL, London).
The NQ program of Werner Nickel (Darmstadt)
is used to compute nilpotent quotients of finitely presented groups.
Version 2.2 of NQ was installed in magma V2.14 (2007) by
Bill Unger (Magma) and Michael Vaughan-Lee (Oxford).
The p-quotient program, developed by Eamonn O'Brien
(Auckland) based on earlier work by George Havas (Queensland) and
Mike Newman (ANU), provides a key facility for studying p-groups in Magma.
Eamonn's extensions in Magma of this package for generating p-groups,
computing automorphism groups of p-groups, and deciding isomorphism of
p-groups are also included. He has contributed software to count certain
classes of p-groups and to construct central extensions of soluble groups.
The package for classifying metacyclic p-groups has been
developed by Eamonn O'Brien (Auckland) and Michael Vaughan-Lee
(Oxford).
Code to produce the groups of order 38 has been provided
by Michael Vaughan-Lee (Oxford).
Homological Algebra
The packages for chain complexes and basic algebras have been
developed by Jon F. Carlson (Athens, GA).
Sergei Haller developed Magma code for computing the
first cohomology group of a finite group with coefficients in a finite
(not necessarily abelian) group. This formed the basis of a package for
computing Galois cohomology of linear algebra groups.
Machinery for computing group cohomology and for producing group
extensions has been developed by Derek Holt (Warwick). There are two
parts to this machinery. The first part comprises Derek's older C-language
package for permutation groups while the second part comprises a recent
Magma language package for group cohomology.
In 2011, Derek Holt (Warwick) implemented an alternative
algorithm for finding the dimension of the cohomology group Hn(G, K),
for G a finite group, and K a finite field. In this approach the
dimension is found using projective covers and dimension shifting.
The code for computing A_∞-structures in group cohomology
was developed by Mikael Vejdemo Johansson (Jena).
L-Functions
Tim Dokchitser (Cambridge) has implemented efficient
computation of many kinds of L-functions, including those attached
to Dirichlet characters, number fields, Artin representations, elliptic
curves and hyperelliptic curves. Vladimir Dokchitser (Cambridge)
has contributed theoretical ideas.
Anton Mellit (Bonn) contributed code for computing
symmetric powers and tensor products of L-functions.
Bartosz Nasrecki (Bristol) has contributed a package
for computing associated schemes in product projective spaces. This
finds application in the study of hypergeometric motives.
A package for computing with Jacobi sum motives has been
developed by Mark Watkins (Magma) in conjunction with
David Roberts (University of Minnesota Morris) and Fernando
Rodriguez-Villegas (ICTP, Trieste).
Lattices and Quadratic Forms
A magma package for lattices over number fields was based
on code contributed by Gael Collinet (Strasbourg). This package
was extended by Markus Kirschmer, David Lorch (both Aachen)
and Mark Watkins (Magma).
The construction of the sublattice of an integral lattice is
performed by code developed by Markus Kirschmer (Aachen).
A collection of lattices derived from the on-line tables of
lattices prepared by Neil Sloane (AT&T Research) and Gabriele
Nebe (Aachen) is included in Magma.
The original functions for computing automorphism groups and
isometries of integral lattices are based on the AUTO and ISOM
programs of Bernd Souvignier (Nijmegen). In V2.16 (2009) they were
replaced by much faster versions developed by Bill Unger (Magma).
Coppersmith's method (based on LLL) for finding small roots of
univariate polynomials modulo an integer has been implemented by
Damien Stehlé (ENS Lyon).
Given a quadratic form F in an arbitrary number of
variables, {Mark Watkins (Bristol) has used Denis Simon's
ideas as the basis of an algorithm he has implemented in magma
for finding a large (totally) isotropic subspace of F.
Lie Theory
The major structural machinery for Lie algebras has been implemented
for Magma by Willem de Graaf (Utrecht) and is based on his ELIAS
package written in GAP. He has also implemented a separate package for
finitely presented Lie rings.
A database of soluble Lie algebras of dimensions 2, 3 and 4 over
all fields has been implemented by Willem de Graaf (Trento). Willem
has also provided a database of all nilpotent Lie algebras of dimension
up to 6 over all base fields (except characteristic 2 when the dimension
is 6).
More recent extensions to the Lie algebra package developed by
Willem de Graaf (Trento) include quantum groups, universal enveloping
algebras, the semisimple subalgebras of a simple Lie algebra and nilpotent
orbits for simple Lie algebras.
A fast algorithm for multiplying the elements of Coxeter groups
based on their automatic structure has been designed and implemented by
Bob Howlett (Sydney). Bob has also contributed Magma code for
computing the growth function of a Coxeter group.
Machinery for computing the W-graphs for Lie types An,
E6, E7 and E8 has been supplied by Bob Howlett (Sydney).
Subsequently, Bob supplied code for working with directed W-graphs.
The current version of Lie groups in magma has been implemented
by Scott Murray (Sydney) and Sergei Haller with some assistance
from Don Taylor (Sydney).
An extensive package for computing the combinatorial properties
of highest weight representations of a Lie algebra has been written
by Dan Roozemond (Eindhoven). This code is based in the LiE
package with permission of the authors.
The original version of the code for root systems and
permutation Coxeter groups was modelled, in part, on the Chevie package
of GAP and implemented by Don Taylor (Sydney) with the assistance
of Frank Lübeck (Aachen).
Functions that construct any finite irreducible unitary
reflection group in Cn have been implemented by Don Taylor
(Sydney). Extension to the infinite case was implemented by
Scott Murray (Sydney).
Code has been contributed by Robert Zeier (TU Munich) for
determining the irreducible simple subalgebras of the Lie algebra SUk.
Linear Algebra and Module Theory
Josh Maglione and James Wilson (both Colorado
State U) have contributed their package for multilinear algebra
which provides support for computing with tensors and multilinear
maps. It was first exported in Magma V2.22 (2016).
An upgrade of the package for Multilinear Algebra in 2020
developed and maintained by Peter Brooksbank (Bucknell), Josh Maglione (Bielefeld)
and James Wilson (Colorado State U) has been installed
in Magma V2.26 (March, 2021).
Parts of (1) the ATLAS (Automatically Tuned Linear Algebra
Software) created by R. Clint Whaley et al. (UTSA) or
(2) the OpenBLAS library by Zhang Xianyi, Martin Kroeker et al. or
(3) the Intel Math Kernel Library (MKL)
may be used for
some fundamental matrix algorithms over finite fields GF(p), where p
is about the size of a machine integer.
Local Arithmetic Fields
A package written by Xavier Caruso and David Lubicz
(both Rennes) for computing with power series rings over p-adic rings
was included in Magma V2.20 (2013) after additional work by Mark Watkins.
A C version of the package for exact arithmetic in p-adic
rings and fields developed by Christopher Doris was installed in
Magma V2.26 (2021).
Sebastian Pauli (TU Berlin) has made available the Magma
implementation of his algorithm for factoring polynomials over local fields.
It is also used for factoring ideals and for computing completions of global
fields.
The module for lazy power series is based on the ideas of
Josef Schicho (Linz).
Modular Forms
Kevin Buzzard (Imperial College) made available his code
for computing modular forms of weight one. The Magma implementation
was developed using this as a starting point.
Lassina Demb{él{é (Warwick) wrote part of the code
implementing his algorithm for computing Hilbert modular forms.
Enrique Gonz{ález-Jim{énez (Madrid) contributed a
package to compute curves over Q, of genus at least 2, which are
images of X0(N) and X1(N) for a given level N.
Matthew Greenberg (Calgary) and John Voight
developed and implemented an algorithm for computing Hilbert modular forms
using Shimura curves.
A new implementation (V2.19) of Brandt modules associated to
definite quaternion orders, over Z and over function fields Fq[t],
has been developed by Markus Kirschmer (Aachen) and
Steve Donnelly (Magma).
David Kohel (Singapore--NUS, Magma) has provided
implementations of division polynomials and isogeny structures for
Brandt modules and modular curves. Jointly with William Stein
(Harvard), he implemented the module of supersingular points.
Alan Lauder (Oxford) has contributed code for computing
the characteristic polynomial of a Hecke operator acting on spaces of
overconvergent modular forms.
An improved version of code due to Alan Lauder (Oxford)
for computing the characteristic series of the Atkin--Lehner operator
Up on p-adic modular forms was included in Magma V2.20 (2013).
magma routines for constructing building blocks of modular
abelian varieties were contributed by Jordi Quer (Cataluna).
A package for computing with modular symbols (known as
HECKE) has been developed by William Stein (Harvard).
William has also provided much of the package for modular forms.
In 2003--2004, William Stein (Harvard) developed extensive
machinery for computing with modular abelian varieties within Magma.
A package for computing with congruence subgroups of the
group PSL(2, R) has been developed by Helena Verrill (LSU).
John Voight produced the package for
Shimura curves and arithmetic Fuchsian groups.
Dan Yasaki (UNC) developed a Magma package for
Bianchi modular forms over imaginary quadratic fields which was
distributed in Magma V2.16 (2009). A new faster version developed
by Dan was released in Magma 2.20 (2013).
Primality and Factorisation
The factorisation of integers of the form pn ∓ 1, for
small primes p, makes use of tables compiled by Richard Brent
(ANU) that extend tables developed by the Cunningham project. In addition,
magma uses Richard's intelligent factorization code FACTOR.
One of the main integer factorization tools available
in Magma is due to Arjen K. Lenstra (EPFL) and his
collaborators:
a multiple polynomial quadratic sieve developed by Arjen from his
"factoring by email" MPQS during visits to Sydney in 1995
and 1998.
The primality of integers is proven using the ECPP (Elliptic Curves and Primality Proving) package written by François Morain (Ecole Polytechnique and INRIA). The ECPP
program in turn uses the BigNum package developed jointly by INRIA and Digital PRL.
Magma uses the GMP-ECM implementation of the
elliptic curve method for integer factorisation. This was
developed by Pierrick Gaudry, Jim Fougeron,
Laurent Fousse, Alexander Kruppa, Dave Newman,
and Paul Zimmermann.
See http://gforge.inria.fr/projects/ecm/.
Real and Complex Arithmetic
The complex arithmetic in Magma uses the MPC package which
is being developed by Andreas Enge, Philippe Théveny and
Paul Zimmermann. (For more information see
www.multiprecision.org/mpc/).
Xavier Gourdon (INRIA, Paris) made available his
C implementation of A. Schön-hage's splitting-circle algorithm for
the fast computation of the roots of a polynomial to a specified precision.
Xavier also assisted with the adaptation of his code for the Magma kernel.
Some portions of the GNU GMP multiprecision integer library
(http://gmplib.org) are used for integer multiplication.
Most real arithmetic in Magma is based on the MPFR package
which is developed by Paul Zimmermann (Nancy) and associates.
(See www.mpfr.org).
Representation Theory
A substantial package for working with basic algebras
has been contributed by Jon Carlson (Athens, Ga.). The package
provides a wide range of facilities including automorphism group
and cohomology.
A database of basic algebras for the p-modular group
algebras of some of the smaller groups appearing in the
ATLAS of Finite Groups has been constructed by Jon Carlson
(Athens, Ga.). A similar library contains the basic algebras of a
small collection of Schur algebras S(n, r).
The algorithm of John Dixon for constructing the ordinary
irreducible representation of a finite group given its character has
been implemented by Derek Holt (Warwick).
Derek Holt (Warwick) has made a number of important
contributions to the design of the module theory algorithms employed
in Magma.
An algorithm of Sam Conlon for determining the degrees of
the ordinary irreducible characters of a soluble group (without
determining the full character table) has been implemented by
Derek Holt (Warwick).
In 2011, Derek Holt (Warwick) and John Cannon
(Magma) developed a package for computing the projective indecomposable
KG-modules for a finite group G.
A number of intrinsics for working with various aspects of
KG-modules, K a field, have been implemented by Derek Holt
(Warwick). Among many others these include functions for module
extensions and bimodules.
The algorithms used in magma for finding the lattice of
submodules and the endomorphism ring of a KG-module (K a finite
field) were developed by Charles Leedham-Green (QMW, London)
and Allan Steel (Magma).
Topology
A basic module for defining and computing with simplicial
complexes was developed by Mikael Johansson (Jena).
Nathan Dunfield (Harvard) and William Thurston
(UC Davis) made available their database of the fundamental groups of
the 10,986 small-volume closed hyperbolic 3-manifolds listed in the
Hodgson--Weeks census.
Handbook Contributors
Introduction
The Handbook of Magma Functions is the work of many individuals. It
was based on a similar Handbook written for Cayley in 1990. Up
until 1997 the Handbook was mainly written by Wieb Bosma, John Cannon
and Allan Steel but in more recent times, as Magma expanded into new
areas of mathematics, additional people became involved. It is not
uncommon for some chapters to comprise contributions from 8 to 10 people.
Because of the complexity and dynamic nature of chapter authorship,
rather than ascribe chapter authors, in the table below we attempt
to list those people who have made significant contributions to
chapters.
We distinguish between:
Principal Author, i.e. one who primarily conceived
the core element(s) of a chapter and who was also responsible for the
writing of a large part of its current content, and
Contributing Author, i.e. one who has written a
significant amount of content but who has not had primary
responsibility for chapter design and overall content.
It should be noted that attribution of a person as an author of a chapter
carries
no implications about the authorship of the associated computer code: for some
chapters it will be true that the author(s) listed for a chapter are also the
authors of the corresponding code, but in many chapters this is either not the
case or only partly true. Some information about code authorship may be found
in the sections Magma Development Team and External Contributors.
The attributions given below reflect the authorship of the material
comprising the {V version} edition. Since many of the authors have since
moved on to other careers, we have not been able to check that all of the
attributions below are completely correct. We would appreciate hearing
of any omissions.
In the chapter listing that follows, for each chapter the start of the
list of principal authors (if any) is denoted by while the
start of the list of contributing authors is denoted by .
People who have made minor contributions to one or more chapters are listed
in a general acknowledgement following the chapter listing.
The Chapters
W. Bosma, A. Steel
W. Bosma, A. Steel
W. Bosma, A. Steel
A. Steel
W. Bosma
G. Bailey, J. Cannon, A. Steel
G. Matthews
D. Fisher
D. Fisher
W. Bosma
W. Bosma, J. Cannon
A. Steel
W. Bosma, J. Cannon
W. Bosma
W. Bosma
A. Steel
A. Steel
W. Bosma
W. Bosma
W. Bosma
W. Bosma, A. Steel
S. Contini, B. Smith
W. Bosma
S. Donnelly, W. Stein
W. Bosma
W. Bosma, A. Steel
D. Taylor
A. Steel
A. Steel
W. Bosma
C. Neurohr
A. Steel
A. Steel
J. Cannon, A. Steel
D. Taylor
A. Steel, D. Stehl\'e
M. Watkins
M. Kirschmer
B. Souvignier
M. Kirschmer
S. Donnelly
D. Kohel
C. Fieker
W. Bosma, N. Sutherland
W. Bosma
W. Bosma, C. Fieker
C. Fieker
W. Bosma, N. Sutherland
C. Fieker
J. Klüners, K. Gei{ß}ler
C. Fieker
S. Marseglia
M. Watkins
A. Steel
A. Steel
A. van der Waall
F. He{ß}
C. Fieker, N. Sutherland
C. Fieker
T. Dokchitser
D. Fisher, B. Souvignier
N. Sutherland
N. Sutherland
A. Steel
N. Sutherland
T. Beck, M. Harrison
W. Bosma
A. Steel
G. Brown, N. Sutherland
M. Watkins
T. Dokchitser
J. Cannon
J. Cannon, A. Steel
C. Fieker, N. Sutherland
J. Carlson
J. Maglione, J. Wilson
J. Cannon
W. Unger
J. Cannon
B. Cox, W. Unger
J. Cannon
B. Cox, E.A. O'Brien, A. Steel
E.A. O'Brien
E.A. O'Brien
M. Kirschmer, B. Souvignier
J. Cannon, M. Slattery
E.A. O'Brien
W. Unger
H. Bäärnhielm, J. Cannon, D. Holt, M. Stather
W. Unger
V. Gebhardt
D. Holt
W. Unger
D. Holt
S. Haller
E. Assaf
J. Cannon
P. Lieby
D. Holt
J. Cannon, D. Holt
J. Cannon, D. Holt
H. Brückner, V. Gebhardt, S. Jambor, W. Nickel, E.A. O'Brien, M. Vaughan-Lee
V. Gebhardt
V. Gebhardt
D. Holt
G. Matthews
D. Holt
J. Cannon, G. Matthews
J. Cannon
J. Cannon
D. Holt
G. Matthews
J. Cannon, B. Souvignier
J. Cannon, B. Souvignier
J. Cannon, S. Donnelly, N. Sutherland
A. Steel, S. Linton
J. Cannon, A. Steel
J. Carlson
J. Cannon, B. Souvignier
J. Carlson
M. Vejdemo-Johansson
D. Kohel, J. Voight
S. Donnelly, M. Kirschmer
P. Brooksbank, J. Wilson
D. Taylor
J. Maglione, J. Wilson
J. Cannon, A. Steel, D. Holt
W. Bosma, J. Cannon, W. Unger
A. Kohnert
J. Le Borgne
E. Assaf
S. Murray
D. Taylor
S. Murray
D. Taylor
S. Murray
S. Haller, D. Taylor
S. Haller, S. Murray
D. Taylor
S. Murray
D. Taylor
S. Murray
D. Taylor
W. de Graaf, D. Roozemond
S. Haller, S. Murray
D. Roozemond
W. de Graaf
S. Murray
S. Haller, D. Taylor
D. Roozemond
S. Murray
A. Steel
M. Harrison
A. Steel
M. Harrison
A. Steel
A. Steel
A. Steel
M. Harrison
A. Steel
A. van der Waall
G. Brown
J. Cannon, M. Harrison, N. Sutherland
M. Harrison
G. Brown
N. Bruin, J. Cannon, M. Harrison, A. Wilson, M. Kyng
G. Brown
M. Harrison
T. Beck
C. Neurohr
J. Cannon
G. Brown
G. Brown, A. Kasprzyk
D. Kohel, P. Lieby
S. Donnelly, M. Watkins
G. Bailey
S. Donnelly, D. Kohel
M. Harrison
P. Lieby
G. Bailey, N. Bruin, B. Creutz, S. Donnelly, D. Kohel, M. Watkins
J. Scholten
S. Donnelly
T. Fisher, S. Donnelly
R. Lercier, J. Sijsling, C. Ritzenthaler
N. Bruin
B. Creutz, S. Donnelly, M. Harrison, D. Kohel, J. Sijsling, P. van Wamelen
M. Watkins
T. Dokchitser
M. Watkins
D. Kohel
M. Harrison, E. Gonz\'alez-Jim\'enez
M. Harrison
H. Verrill
J. Voight
W. Stein
K. Buzzard, S. Donnelly
W. Stein
K. Buzzard
D. Kohel
D. Kohel, W. Stein
W. Stein
J. Quer
S. Donnelly
D. Yasaki
S. Donnelly
E. Assaf
J. Weinstein
S. Donnelly
M. Vejdemo-Johansson
J. Cannon
D. Leemans
G. Brown, A. Kasprzyk
G. Bailey
G. White
G. White
A. Kohnert
J. Cannon
G. Bailey
J. Cannon, P. Lieby
G. Bailey
J. Cannon, P. Lieby
P. Lieby
J. Cannon, A. Steel
G. White
J. Cannon, G. White
G. White
A. Steel, G. White
M. Villanueva
G. White
G. White
S. Contini
B. Smith
General Acknowledgements
In addition to the contributors listed above, we gratefully acknowledge the
contributions to the Handbook made by the following people:
- J. Brownie (group theory)
- K. Geiß ler (Galois groups)
- A. Flynn (algebras and designs)
- E. Herrmann (elliptic curves)
- E. Howe (Igusa invariants)
- B. McKay (graph theory)
- S. Pauli (local fields)
- C. Playoust (data structures, rings)
- C. Roney-Dougal (groups)
- T. Womack (elliptic curves)
|