|
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
ACKNOWLEDGEMENTS
The Magma Development Team
Current Members
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.
Steve Donnelly, Ph.D. (Georgia) [2005-]: Research interests are
in arithmetic geometry. Major contributions include descent methods
for elliptic curves (particularly over function fields),
routines for the Cassels-Tate pairing, modular forms of half-integral
weight and other improvements to classical modular forms, Hilbert
modular forms, and some fast routines for definite quaternion algebras.
Currently working on further developing Hilbert modular forms, and
more tools for elliptic curves.
Claus Fieker, Ph.D. (TU Berlin), [2000-]: 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.
Michael Harrison, Ph.D. (Cambridge,UK 1992), [2003-]: Research
interests are in number theory, arithmetic and algebraic geometry.
Implemented the p-adic methods for counting points on hyperelliptic
curves and their Jacobians over finite fields: Kedlaya's method and
the modular parameter method of Mestre. Currently working on machinery
for general surfaces and cohomology for projective varieties.
Scott Murray, Ph.D. (Chicago), [2001-2002, 2004-]: Research
interests are in linear algebraic groups, finite matrix groups, Lie algebras,
representation theory. Implemented algorithms for element operations in split
groups of Lie type, representations of split groups of Lie type,
split Cartan subalgebras of modular Lie algebra, and Lang's Theorem in finite
reductive groups. Currently working on conjugacy problems in reductive groups
and finite groups of Lie type.
Allan Steel, BA (Hons, University Medal) (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).
Damien Stehl'e, Ph.D. (Nancy) [2006, 2008-]: Works in the areas
of algorithmic number theory (in particular, the geometry of numbers)
and computer arithmetic. Implemented the proveably correct
floating-point LLL algorithm together with a number of fast non-rigorous
variants.
Nicole Sutherland, BSc (Hons) (Macquarie), [1999-]: Works in the
areas of number theory 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.
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.
Mark Watkins, Ph.D. (Athens, Ga), [2003, 2004-2005, 2008-]:
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.
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.
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, Ph.D. [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).
Emanuel Herrmann, [1999]: Developed code for computing
integral points and S-integral points on 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 Kohel, [1999--2002]:
Contributions include a model for schemes (with G 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 P Lieby), modules of supersingular points
(with W Stein), Witt rings.
Paulette Lieby, [1999--2003]: Contributed to the development
of algorithms for algebraic geometry, abelian groups and incidence
structures. Developed datastructures 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.
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.
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.
John Voight, [2005-2006]: Implemented algorithms for quaternion
algebras over number fields, associative orders (with Nicole Sutherland),
and Shimura curves.
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.
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 Cannon and Grassl).
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.
Basic Rings
A facility for computing with arbitrary but fixed
precision reals was based on Richard Brent's (ANU) FORTRAN
package MP. Richard has also made available his database of
237, 578 factorizations of integers of the form pn +- 1, together
with his intelligent factorization code FACTOR.
Stefi Cavallar (CWI, Amsterdam) has adapted her
code for filtering relations in the CWI Number Field Sieve so as to
run as part of the Magma Number Field Sieve.
The group headed by Henri Cohen (Bordeaux) made
available parts of their Pari system for computational
number theory for inclusion in Magma. Pascal Letard of the
Pari group visited Sydney for two months in 1994 and recoded
large sections of Pari for Magma. The Pari facilities
installed in Magma include arithmetic for real and complex fields
(the `free' model), approximately 100 special functions for real and
complex numbers, quadratic fields and other features.
The compex arithmetic in Magma uses the MPC package which
is being developed by Andreas Enge, Philippe Th'eveny and
Paul Zimmermann. (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.
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.
Coppersmith's method for finding small roots of univariate
polynomials modulo an integer has been implemented by
Damien Stehl'e.
The code for Coppersmith's index-calculus algorithm
(used to compute logarithms in finite fields of characteristic 2)
was developed by Emmanuel Thom'e (Ecole Polytechnique).
Magma uses the GMP-ECM implementation of the
Elliptic Curve Method (ECM) 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/.
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).
Global and Local Fields
Florian Heß (TU Berlin) has contributed a major package
for determining all isomorphisms between a pair of algebraic function fields.
David Kohel (Singapore, Sydney) has contributed
to the machinery for binary quadratic forms and has implemented rings
of Witt vectors.
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 (Sydney), Jürgen has recently developed a new
method for determining the Galois group of a polynomial of arbitary
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.
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.
Sebastian Pauli (TU Berlin) has implemented his
algorithm for factoring polynomials over local fields within Magma.
This algorithm may also be used for the factorization of ideals, the
computation of completions of global fields, and for splitting
extensions of local fields into towers of unramified and totally
ramified extensions.
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).
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, originally at Düsseldorf and
now 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.
The fast algorithm of Bosma and Stevenhagen for computing
the 2-part of the ideal class group of a quadratic field has been
implemented by Mark Watkins (Bristol).
Finitely-Presented Groups
The soluble quotient algorithm in Magma was designed and
implemented by Herbert Brückner (Aachen).
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 (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).
Code producing descriptions of the groups of order p4, p5,
p6, p7 for p>3 were contributed by Boris Girnat, Robert McKibbin,
Mike Newman, Eamonn O'Brien, and Mike Vaughan-Lee.
Versions of Magma from V2.8 onwards employ the
Advanced Coset Enumerator designed by George Havas (Queensland)
and implemented by Colin Ramsay (also of Queensland). 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.
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 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 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 Mike Vaughan-Lee
(Oxford).
The low index subgroup function is implemented by code
that is based on a Pascal program written by Charlie Sims
(Rutgers).
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.
Michael Downward and Eamonn O'Brien (Auckland)
provided functions to access much of the data in the
on-line Atlas of Finite Simple Groups for the sporadic groups.
A function to select "good" base points for sporadic groups
was provided by Eamonn and Robert Wilson (London).
Machinery for computing group cohomology and for
producing group extensions has been provided 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.
The calculation of automorphism groups (for permutation and
matrix groups) and determining group isomorphism is performed by code
written by Derek Holt (Warwick).
The routine for computing the subgroup lattice of a group
(as distinct from the list of all conjugacy classes of subgroups) is
based closely on code written by Dimitri Leemans (Brussels).
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 has been augmented in V2.14 by code
that will enumerate all groups of any square-free order. This code was
developed by Bettina Eick (Braunschweig) and Eamonn O'Brien
(Auckland).
Matrix Groups
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, Derek Holt and Colva Roney-Dougal.
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.
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).
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).
A Monte-Carlo algorithm for non-constructive recognition
of simple groups has been contributed by Gunter Malle
(Kaiserslautern) and Eamonn O'Brien (Auckland). This procedure includes
the algorithm of Babai et al. to name a quasisimple group of Lie type.
Magma incorporates a database of the maximal finite
rational subgroups of GL(n, Q) up to dimension 31. This database
is due to Gabriele Nebe (Aachen) and Wilhelm Plesken (Aachen).
A database of quaternionic matrix groups constructed by Gabriele is
also included.
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).
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).
Eamonn O'Brien (Auckland) has contributed a Magma implementation
of algorithms for determining the Aschbacher category of a subgroup of
GL(n, q).
Eamonn O'Brien (Auckland) has provided implementations
of constructive recognition algorithms for matrix groups as either
(P)SL(2, q) or (P)SL(3, 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 (Sydney).
A package for constructing the Sylow p-subgroups of the
classical groups has been implemented by Mark Stather (Warwick).
Generators for matrix representations for groups of Lie type
were constructed and implemented by Don Taylor (Sydney) with some
assistance from Leanne Rylands (Western Sydney).
Permutation Groups
Greg Gamble (UWA) helped refine the concept of a
G-set for a permutation group.
Derek Holt (Warwick) has implemented the Magma
version of the Bratus/Pak algorithm for black-box recognition of
the symmetric and alternating groups.
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.
The PERM package developed by Jeff Leon (UIC) for
efficient backtrack searching in permutation groups is used for most of
the permutation group constructions that employ backtrack search.
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).
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
Simple Groups with the assistance of its author Robert Wilson
(QMUL, London).
Coxeter Groups
A fast algorithm for multiplying Coxeter group elements
has been designed and implemented by Bob Howlett (Sydney).
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 H. Murray (Sydney).
Lie Groups
The current version of Lie groups in magma has been implemented
by Scott H. Murray (Sydney) and Sergei Haller with some assistance
from Don Taylor (Sydney).
Linear Algebra and Module Theory
Derek Holt (Warwick) has made a number of important
contributions to the design of the module theory algorithms employed
in Magma.
Charles Leedham-Green (QMW, London) was responsible
for the original versions of the submodule lattice and endomorphism ring
algorithms.
Parts of the ATLAS (Automatically Tuned Linear Algebra
Software) of R. Clint Whaley et al. are used for some fundamental
matrix algorithms over machine-int-sized prime finite fields.
Lattices and Quadratic Forms
A collection of lattices from the on-line tables of
lattices prepared by Neil Sloane (AT&T Research) and
Gabriele Nebe (Ulm) is included in Magma.
The functions for computing automorphism groups and
isometries of lattices are based on the AUTO and ISOM
programs of Bernd Souvignier (Nijmegen).
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.
Algebras
The packages for chain complexes and basic algebras have been
developed by Jon F. Carlson (Athens, GA).
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.
A database of all nilpotent Lie algebras of dimension up to
6 over fields of odd characteristic has been implemented by Willem
de Graaf (Trento).
Lie rings (that is, Lie algebras over defined over
an euclidean ring) have been implemented. The major features of the
package include a facility to construct a multiplication table and
basis for a finitely presented Lie ring of finite dimension and a
function to construct nilpotent quotients of finitely presented Lie
ring. These features were implemented by Willem de Graaf (Trento).
The code for computing A_∞-structures in group cohomology
was developed by Mikael Vejdemo Johansson (Jena).
Markus Kirschmer (Aachen) has written a number of
optimized routines for definite quaternion algebras (over number fields).
Quaternion algebras over the rational field Q have been
implemented by David Kohel (Singapore, Sydney).
Fast algorithms for computing the the Jacobson radical and
unit group of a matrix algebra over a finte field were designed and
implemented by Peter Brooksbank (Bucknell) and Eamonn O'Brien
(Auckland).
John Voight (Vermont) produced the package for quaternion
algebras over number fields.
Representation Theory
The algorithm of John Dixon for constructing the ordinary
irreducible representation of a finite group from its character has
been implemented by Derek Holt (Warwick).
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).
The vector enumeration program of Steve Linton
(St. Andrews) provides Magma with the capability of constructing
matrix representations for finitely presented associative algebras.
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.
Commutative Algebra
Gregor Kemper (Heidelberg) 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.
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.
The 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).
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.
Miles Reid (Warwick) has been heavily involved in the
design and development of a database of K3 surfaces within Magma.
Josef Schicho (RICAM, Linz) has played a major role in
the design of the algebraic surfaces package. Josef has also implemented
several of the modules for rational surface parameterization.
Arithmetic Geometry: Elliptic Curves
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 up to 130,000 constructed by John Cremona
(Nottingham) is also included.
Tim Dokchitser wrote code for computing root numbers
of elliptic curves over number fields.
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 three descent on elliptic curves was
mainly written by Tom Fisher (Cambridge), while certain parts
of it (and also an earlier version) are by Michael Stoll.
(Bremen).
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, Sydney) has provided
implementations of division polynomials and isogeny structures for
elliptic curves.
Reynard Lercier (Rennes) provided much advice and
assistance to the Magma group concerning the implementation of
the SEA point counting algorithm for elliptic curves.
David Roberts (Nottingham) contributed some 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.
Sebastian Stamminger (Bremen) implemented his
algorithm for eight descent on elliptic curves.
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).
Frederik Vercauteren (Leuven) has produced efficient
implementations of the Tate, Eta and Ate pairings in magma.
Tom Womack (Nottingham) contributed code for performing
four-descent, from which the current implementation was adapted.
Arithmetic Geometry: Hyperelliptic Curves
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.
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.
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.
For elliptic curves defined over finite fields of characteristic 2,
Kedlaya's algorithm for point counting has been implemented by Frederick
Vercauteren (Leuven).
Arithmetic Geometry: L-series
Tim Dokchitser (Cambridge) has implemented efficient
computation of many kinds of L-functions, including those attached
to Dirichlet characters, number field, Artin representations, and
elliptic curves.
Modular Arithmetic Geometry
Kevin Buzzard made available his code for computing
modular forms of weight one, from which the Magma implementation
was adapted.
Lassina Demb{'el{'e}} wrote much of the code
implementing of his algorithm for computing Hilbert modular forms.
Matthew Greenberg wrote code for computing Hilbert
modular forms using the algorithm of Greenberg and Voight.
David Kohel (Singapore, Sydney) 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.
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 (Vermont) produced the package for
Shimura curves and arithmetic Fuchsian groups.
Geometry
The Magma kernel code for computing with incidence
geometries has been developed by Dimitri Leemans (Brussels).
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.
The Magma machinery for symmetric functions is based on
the Symmetrica package developed by Abalbert Kerber (Bayreuth)
and colleagues. The Magma version was implemented by Axel Kohnert
of the Bayreuth group.
The Magma kernel code for computing with incidence
geometries has been developed by Dimitri Leemans (Brussels).
The code to perform the regular expression matching
in the regexp intrinsic function comes from the V8 regexp package
by Henry Spencer (Toronto).
Coding Theory
The PERM package developed by Jeff Leon
(UIC) is used to determine automorphism groups of codes, designs and
matrices.
The calculation of the automorphism groups of
graphs and the determination of graph isomorphism is performed
using Brendan McKay's (ANU) program nauty (version 2.2).
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 construction of a database of Best Known Linear Codes
over GF(2) was a joint project with Markus Grassl (IAKS, Karlsruhe).
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. Markus Grassl has also made many other
contributions to the Magma coding theory machinery.
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).
Graham Norton (Queensland) has provided substantial
advice and help in the development of Z4-codes in Magma.
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. 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
A. Steel
A. Steel
W. Bosma
A. Steel
A. Steel
J. Cannon, A. Steel
B. Souvignier, A. Steel
D. Stehl\'e
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
A. Steel
A. Steel
F. He{ß}
C. Fieker, N. Sutherland
C. Fieker
T. Dokchitser
W. Bosma
G. Brown, N. Sutherland
D. Fisher, B. Souvignier
N. Sutherland
A. Steel
A. Steel
N. Sutherland
N. Sutherland
T. Beck, M. Harrison
J. Cannon
J. Cannon, A. Steel
C. Fieker, N. Sutherland
J. Carlson
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
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
J. Cannon
P. Lieby
J. Cannon
V. Gebhardt, E.A. O'Brien, M. Vaughan-Lee
H. Brückner, V. Gebhardt
E.A. O'Brien
V. Gebhardt
V. Gebhardt
D. Holt
G. Matthews
D. Holt
G. Matthews
J. Cannon
J. Cannon
D. Holt
G. Matthews
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
S. Murray
S. Haller, D. Taylor
J. Cannon, B. Souvignier
J. Cannon, B. Souvignier
J. Cannon, S. Donnelly, N. Sutherland, B. Souvignier, J. Voight
A. Steel, S. Linton
J. Cannon, A. Steel
J. Cannon, A. Steel
J. Carlson
J. Carlson
D. Kohel, J. Voight
S. Donnelly,
W. de Graaf
S. Haller, S. Murray
W. de Graaf
W. de Graaf
J. Cannon, B. Souvignier
J. Cannon, A. Steel
W. Bosma, J. Cannon
A. Kohnert
D. Roozemond
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
G. Brown
N. Bruin, J. Cannon, M. Harrison
G. Brown
T. Beck, M. Harrison
M. Harrison
G. Brown
G. Brown, A. Kasprzyk
D. Kohel, P. Lieby
M. Watkins
G. Bailey, N. Bruin, S. Donnelly, D. Kohel, M. Watkins
M. Harrison
P. Lieby
J. Scholten
S. Donnelly
T. Fisher, S. Donnelly
N. Bruin, S. Donnelly, M. Harrison, D. Kohel, P. van Wamelen
T. Dokchitser
D. Kohel
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
J. Weinstein
S. Donnelly
M. Johansson
J. Cannon
D. Leemans
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, J. Pernas, J. Pujol, 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)
|