A database of all groups having order at most 1000,
excepting orders 512 and 768 has been made available by Hans
Ulrich Besche and Bettina Eick. 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 M.F. Newman and E.A. O'Brien and
various assistants, the first release dating from 1987.
A facility for computing with arbitrary but fixed
precision reals was based on Richard Brent's (ANU) FORTRAN
package MP. Richard also provided his database of 180,000factorizations of integers of the form
,
together with his
intelligent factorization code FACTOR.
The soluble quotient algorithm in Magma was designed
and implemented by Herbert Brückner (Aachen).
The package for homological algebra has been developed
by Jon F. Carlson (Athens, GA). Jon has also contributed numerous
ideas to the design of modules in Magma.
The group headed by Henri Cohen (Bordeaux) made
available their excellent 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 current Magma function for the factorization of
univariate polynomials over the integers owes much to the help and advice
of George Collins (Delaware).
The Magma facility for elliptic curves over the rational
field is heavily based on John Cremona's MWRANK package.
The database of elliptic curves of conductor up to 5300 prepared by
John Cremona is also included.
Greg Gamble (UWA) helped refine the concept of a
G-set for a permutation group and drafted several sections of the chapter
on permutation groups.
Xavier Gourdon (INRIA, Paris) made available his
C implementation of A. Schönhage's splitting-circle algorithm for
the fast computation of the roots of a polynomial to a specified precision.
Xavier also assisted with the adaption of his code for the Magma kernel.
The major structural machinery for Lie algebras has
been implemented for Magma by Willem de Graaf and is based on his
ELIAS package originally written in GAP.
Markus Grassl (IAKS, Karlsruhe) has contributed
many coding theory constructions.
Charles Leedham-Green (QMW) has worked with
the Magma group on the design of a large number of algorithms for
soluble groups and local fields during several visits to Sydney.
The Todd-Coxeter procedure in Magma was designed by
George Havas (Queensland) and implemented by
Jin Xian Lian (also of Queensland). The Magma
Smith and Hermite Normal Form code together with the underlying
extended gcd algorithms were developed in close cooperation with George
Havas and Bohdan Majewski (University of Newcastle). George has
also contributed to the design of the machinery for finitely presented
groups.
Cohomology calculations for permutation groups are
implemented by a program written by Derek Holt. His program,
KBMAG, for monoids and automatic groups has also been installed
in Magma. Derek has contributed to the design of algorithms in module
theory and permutation groups.
Alexander Hulpke has made available his database of
all transitive permutation groups of degree up to 22. This incorporates
the earlier database of Greg Butler and John McKay
containing all transitive groups of degree up to 15.
Gregor Kemper (Heidelberg) has contributed all
of the major algorithms of the Invariant Theory module of Magma,
together with many other helpful suggestions in the area of Commutative
Algebra.
The Magma kernel code for computing with incidence geometries
has been developed by Dimitri Leemans (Brussels).
The main integer factorization tools available in
Magma are due to Arjen K. Lenstra (Bellcore) and his collaborators.
These include the elliptic curve method and a multiple polynomial
quadratic sieve developed by Arjen from his `factoring by email'
MPQS during a visit to Sydney in 1995.
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. Jeff's programs for finding automorphism groups of codes,
designs and matrices are also used.
The vector enumeration program of Steve Linton
(St. Andrews) provides Magma with the capability of constructing matrix
representations for finitely presented associative algebras.
Automorphism groups and isomorphism testing of graphs
is performed by Brendan McKay's program NAUTY.
The NQ program of Werner Nickel (Darmstadt)
is used to compute nilpotent quotients of finitely presented groups.
The package for recognizing large degree classical
groups over finite fields was designed and implemented by Alice
Niemeyer and Cheryl Praeger (Perth).
The p-quotient program, developed by Eamonn O'Brien
(Auckland) based on earlier work by George Havas and Mike
Newman, provides a key facility for studying p-groups in Magma.
Eamonn's extensions of this package for generating p-groups and
computing automorphism groups of p-groups are also included in
Magma. The corresponding sections of the Handbook were written by
Eamonn.
Eamonn O'Brien (Auckland) has contributed a Magma implementation of
algorithms for determining the Aschbacher category of a subgroup of
GL(n, q). The corresponding sections of the Handbook were written by
Eamonn.
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.
The facilities for general number fields in Magma
are provided by 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 group, the
unit group, systems of fundamental units, and subfields of a
number field.
The Magma implementation of the Dixon-Schneider
algorithm for computing the table of ordinary characters of a
finite group is based on an earlier version written for Cayley
by Gerhard Schneider (Karlsruhe).
The low index subgroup function is implemented by code
that is based on a Pascal program written by Charlie Sims
(Rutgers). The table of primitive groups of degree up to 50 prepared
by Sims is also included.
The functions for computing automorphism groups and
isometries of lattices are based on the AUTO and ISOM programs of
Bernd Souvignier (Aachen).
The code to perform the regular expression matching
in the regexp intrinsic function comes from the V8 regexp package
by Henry Spencer (University of Toronto).
The package for computing with modular symbols
(known as HECKE) has been developed by William Stein (Berkeley).
The package for computing with hyperelliptic curves
has been developed by Michael Stoll (Düsseldorf).
The packages for Coxeter groups and reflection groups
have been developed by Don Taylor (Sydney).