Magma

MAGMA Computational Algebra System

Magma
 •  How to get it
 •  Download
 •  Online Demo
 
Resources
 •  Online Help
 •  Discovering Mathematics with Magma
 •  Citations
 •  How to cite Magma
 •  Links
 •  Contact us
 
[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

STATEMENTS AND EXPRESSIONS
      W. Bosma, A. Steel

FUNCTIONS, PROCEDURES AND PACKAGES
      W. Bosma, A. Steel

INPUT AND OUTPUT
      W. Bosma, A. Steel

ENVIRONMENT AND OPTIONS
      A. Steel
      W. Bosma

MAGMA SEMANTICS
      G. Matthews

THE MAGMA PROFILER
      D. Fisher

DEBUGGING MAGMA CODE
      D. Fisher

INTRODUCTION TO AGGREGATES
      W. Bosma

SETS
      W. Bosma, J. Cannon
      A. Steel

SEQUENCES
      W. Bosma, J. Cannon

TUPLES AND CARTESIAN PRODUCTS
      W. Bosma

LISTS
      W. Bosma

ASSOCIATIVE ARRAYS
      A. Steel

COPRODUCTS
      A. Steel

RECORDS
      W. Bosma

MAPPINGS
      W. Bosma

INTRODUCTION TO RINGS
      W. Bosma

RING OF INTEGERS
      W. Bosma, A. Steel
      S. Contini, B. Smith

INTEGER RESIDUE CLASS RINGS
      W. Bosma
      S. Donnelly, W. Stein

RATIONAL FIELD
      W. Bosma

FINITE FIELDS
      W. Bosma, A. Steel

UNIVARIATE POLYNOMIAL RINGS
      A. Steel

MULTIVARIATE POLYNOMIAL RINGS
      A. Steel

REAL AND COMPLEX FIELDS
      W. Bosma

MATRICES
      A. Steel

SPARSE MATRICES
      A. Steel

VECTOR SPACES
      J. Cannon, A. Steel

LATTICES
      B. Souvignier, A. Steel
      D. Stehl\'e

QUADRATIC FORMS
      S. Donnelly

BINARY QUADRATIC FORMS
      D. Kohel

NUMBER FIELDS
      C. Fieker
      W. Bosma, N. Sutherland

QUADRATIC FIELDS
      W. Bosma

CYCLOTOMIC FIELDS
      W. Bosma, C. Fieker

ORDERS AND ALGEBRAIC FIELDS
      C. Fieker
      W. Bosma, N. Sutherland

GALOIS THEORY OF NUMBER FIELDS
      C. Fieker
      J. Klüners, K. Gei{ß}ler

CLASS FIELD THEORY
      C. Fieker

ALGEBRAICALLY CLOSED FIELDS
      A. Steel

RATIONAL FUNCTION FIELDS
      A. Steel

ALGEBRAIC FUNCTION FIELDS
      F. He{ß}
      C. Fieker, N. Sutherland

CLASS FIELD THEORY FOR GLOBAL FUNCTION FIELDS
      C. Fieker

ARTIN REPRESENTATIONS
      T. Dokchitser

VALUATION RINGS
      W. Bosma

NEWTON POLYGONS
      G. Brown, N. Sutherland

p-ADIC RINGS AND THEIR EXTENSIONS
      D. Fisher, B. Souvignier
      N. Sutherland

GALOIS RINGS
      A. Steel

POWER, LAURENT AND PUISEUX SERIES
      A. Steel

LAZY POWER SERIES RINGS
      N. Sutherland

GENERAL LOCAL FIELDS
      N. Sutherland

ALGEBRAIC POWER SERIES RINGS
      T. Beck, M. Harrison

INTRODUCTION TO MODULES
      J. Cannon

FREE MODULES
      J. Cannon, A. Steel

MODULES OVER DEDEKIND DOMAINS
      C. Fieker, N. Sutherland

CHAIN COMPLEXES
      J. Carlson

GROUPS
      J. Cannon
      W. Unger

PERMUTATION GROUPS
      J. Cannon
      B. Cox, W. Unger

MATRIX GROUPS OVER GENERAL RINGS
      J. Cannon
      B. Cox, E.A. O'Brien, A. Steel

MATRIX GROUPS OVER FINITE FIELDS
      E.A. O'Brien

MATRIX GROUPS OVER INFINITE FIELDS
      E.A. O'Brien

FINITE SOLUBLE GROUPS
      J. Cannon, M. Slattery
      E.A. O'Brien

BLACK-BOX GROUPS
      W. Unger

ALMOST SIMPLE GROUPS
      H. Bäärnhielm, J. Cannon, D. Holt, M. Stather

DATABASES OF GROUPS
      W. Unger
      V. Gebhardt

AUTOMORPHISM GROUPS
      D. Holt
      W. Unger

COHOMOLOGY AND EXTENSIONS
      D. Holt
      S. Haller

ABELIAN GROUPS
      J. Cannon
      P. Lieby

FINITELY PRESENTED GROUPS
      J. Cannon
      V. Gebhardt, E.A. O'Brien, M. Vaughan-Lee

FINITELY PRESENTED GROUPS: ADVANCED
      H. Brückner, V. Gebhardt
      E.A. O'Brien

POLYCYCLIC GROUPS
      V. Gebhardt

BRAID GROUPS
      V. Gebhardt

GROUPS DEFINED BY REWRITE SYSTEMS
      D. Holt
      G. Matthews

AUTOMATIC GROUPS
      D. Holt
      G. Matthews

GROUPS OF STRAIGHT-LINE PROGRAMS
      J. Cannon

FINITELY PRESENTED SEMIGROUPS
      J. Cannon

MONOIDS GIVEN BY REWRITE SYSTEMS
      D. Holt
      G. Matthews

INTRODUCTION TO LIE THEORY
      S. Murray
      D. Taylor

COXETER SYSTEMS
      S. Murray
      D. Taylor

ROOT SYSTEMS
      S. Murray
      S. Haller, D. Taylor

ROOT DATA
      S. Haller, S. Murray
      D. Taylor

COXETER GROUPS
      S. Murray
      D. Taylor

REFLECTION GROUPS
      S. Murray
      D. Taylor

GROUPS OF LIE TYPE
      S. Murray
      S. Haller, D. Taylor

ALGEBRAS
      J. Cannon, B. Souvignier

STRUCTURE CONSTANT ALGEBRAS
      J. Cannon, B. Souvignier

ASSOCIATIVE ALGEBRAS
      J. Cannon, S. Donnelly, N. Sutherland, B. Souvignier, J. Voight

FINITELY PRESENTED ALGEBRAS
      A. Steel, S. Linton

MODULES OVER AN ALGEBRA
      J. Cannon, A. Steel

MATRIX ALGEBRAS
      J. Cannon, A. Steel
      J. Carlson

BASIC ALGEBRAS
      J. Carlson

QUATERNION ALGEBRAS
      D. Kohel, J. Voight
      S. Donnelly,

LIE ALGEBRAS
      W. de Graaf
      S. Haller, S. Murray

QUANTUM GROUPS
      W. de Graaf

UNIVERSAL ENVELOPING ALGEBRAS
      W. de Graaf

GROUP ALGEBRAS
      J. Cannon, B. Souvignier

K[G]-MODULES AND GROUP REPRESENTATIONS
      J. Cannon, A. Steel

CHARACTERS OF FINITE GROUPS
      W. Bosma, J. Cannon

REPRESENTATIONS OF SYMMETRIC GROUPS
      A. Kohnert

REPRESENTATIONS OF LIE GROUPS AND ALGEBRAS
      D. Roozemond

IDEAL THEORY AND GRÖBNER BASES
      A. Steel
      M. Harrison

LOCAL POLYNOMIAL RINGS
      A. Steel

AFFINE ALGEBRAS
      A. Steel

MODULES OVER MULTIVARIATE RINGS
      A. Steel
      M. Harrison

INVARIANT THEORY
      A. Steel

DIFFERENTIAL RINGS
      A. van der Waall

SCHEMES
      G. Brown
      J. Cannon, M. Harrison, N. Sutherland

ALGEBRAIC CURVES
      G. Brown
      N. Bruin, J. Cannon, M. Harrison

RESOLUTION GRAPHS AND SPLICE DIAGRAMS
      G. Brown

ALGEBRAIC SURFACES
      T. Beck, M. Harrison

COHERENT SHEAVES
      M. Harrison

HILBERT SERIES OF POLARISED VARIETIES
      G. Brown

TORIC VARIETIES
      G. Brown, A. Kasprzyk

RATIONAL CURVES AND CONICS
      D. Kohel, P. Lieby
      M. Watkins

ELLIPTIC CURVES
      G. Bailey, N. Bruin, S. Donnelly, D. Kohel, M. Watkins

ELLIPTIC CURVES OVER FINITE FIELDS
      M. Harrison
      P. Lieby

ELLIPTIC CURVES OVER FUNCTION FIELDS
      J. Scholten
      S. Donnelly

MODELS OF GENUS ONE CURVES
      T. Fisher, S. Donnelly

HYPERELLIPTIC CURVES
      N. Bruin, S. Donnelly, M. Harrison, D. Kohel, P. van Wamelen

L-FUNCTIONS
      T. Dokchitser

MODULAR CURVES
      D. Kohel

CONGRUENCE SUBGROUPS OF PSL2(R)
      H. Verrill

ARITHMETIC FUCHSIAN GROUPS AND SHIMURA CURVES
      J. Voight

MODULAR FORMS
      W. Stein
      K. Buzzard, S. Donnelly

MODULAR SYMBOLS
      W. Stein
      K. Buzzard

BRANDT MODULES
      D. Kohel

SUPERSINGULAR DIVISORS ON MODULAR CURVES
      D. Kohel, W. Stein

MODULAR ABELIAN VARIETIES
      W. Stein
      J. Quer

HILBERT MODULAR FORMS
      S. Donnelly

MODULAR FORMS OVER IMAGINARY QUADRATIC FIELDS
      D. Yasaki
      S. Donnelly

ADMISSIBLE REPRESENTATIONS OF GL2(Qp)
      J. Weinstein
      S. Donnelly

SIMPLICIAL HOMOLOGY
      M. Johansson

FINITE PLANES
      J. Cannon

INCIDENCE GEOMETRY
      D. Leemans

ENUMERATIVE COMBINATORICS
      G. Bailey
      G. White

PARTITIONS, WORDS AND YOUNG TABLEAUX
      G. White

SYMMETRIC FUNCTIONS
      A. Kohnert

INCIDENCE STRUCTURES AND DESIGNS
      J. Cannon

HADAMARD MATRICES
      G. Bailey

GRAPHS
      J. Cannon, P. Lieby
      G. Bailey

MULTIGRAPHS
      J. Cannon, P. Lieby

NETWORKS
      P. Lieby

LINEAR CODES OVER FINITE FIELDS
      J. Cannon, A. Steel
      G. White

ALGEBRAIC-GEOMETRIC CODES
      J. Cannon, G. White

LOW DENSITY PARITY CHECK CODES
      G. White

LINEAR CODES OVER FINITE RINGS
      A. Steel
      G. White, J. Pernas, J. Pujol, M. Villanueva

ADDITIVE CODES
      G. White

QUANTUM CODES
      G. White

PSEUDO-RANDOM BIT SEQUENCES
      S. Contini

LINEAR PROGRAMMING
      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)


Version: V2.16 of Mon Nov 16 15:04:45 EST 2009

Valid HTML 4.01! Valid CSS!