|
|
In late 2006 the book
Discovering Mathematics with Magma
was published by Springer as volume 19 of the
Algorithms and Computations in Mathematics series.
To quote from the preface:
This book introduces the reader to the role Magma plays in advanced
mathematical research.
Each paper examines how the computer can be used to gain insight into
either a single problem or a small group of closely related problems.
The intention is to present sufficient detail so that a reader can
(a), gain insight into the mathematical questions that are the origin of
the problems, and
(b), develop an understanding as to how such computations are specified
in Magma.
It is hoped that the reader will come to a realisation of the important
role that computational algebra can play in mathematical research.
This page provides downloadable versions of the code used in the papers
in this book.
The code for the entire book is available in either .tar.gz
or .zip format
(the files in the zip archives use Windows-style line terminators).
Make sure that you download the code for the version of Magma that you own --
if your version of Magma is older than those listed below, it is not
guaranteed that the examples will work.
Alternatively, for the latest version only, the files for each paper may
be downloaded separately from the table below.
Additionally, the README and
Errata files are available
(these are also included in the compilations above).
| Some computational experiments in number theory (Wieb Bosma) |
|
Files:
Paper01
Paper01_funcs
Paper01_README
The code for this paper takes around 68,000 seconds to run on a
64-bit 2.6GHz AMD processor.
Changes since book release:
| V2.12: |
A minor change was made to the function permcharmat;
it now uses Eltseq on the permutation character rather
than explicit indexing. This is the more natural Magma idiom.
|
|
| Applications of the class field theory of global fields
(Claus Fieker) |
|
Files:
Paper02
Paper02.m
Paper02_README
The code for this paper takes around 100 seconds to run on a
64-bit 2.6GHz AMD processor.
|
| Some ternary Diophantine equations of signature (n, n, 2)
(Nils Bruin) |
|
Files:
Paper03
Paper03_README
The code for this paper takes around 200 seconds to run on a
64-bit 2.4GHz AMD processor.
Changes since book release:
| V2.12: |
The intrinsics SwapExtension and
OrderedGenerators are now part of the Magma distribution,
so are no longer provided separately.
|
|
| Studying the Birch and Swinnerton-Dyer conjecture for modular
abelian varieties using Magma (William Stein) |
|
Files:
Paper04
Paper04_README
The code for this paper takes around 90 seconds to run on a
64-bit 2.6GHz AMD processor.
|
| Computing with the analytic Jacobian of a genus 2 curve
(Paul B. van Wamelen) |
|
Files:
Paper05
Paper05_funcs
Paper05_README
The code for this paper takes around 12 seconds to run on a
64-bit 2.4GHz AMD processor.
Changes since book release:
| V2.12: |
Minor updates have been made to reflect the change in real and complex
fields since V2.11 (now based on MPFR rather than PARI).
Algorithm changes (possibly due to the above) mean that the results
of various calls, while still correct, may not be the same as before.
There have been some additions to properly handle this possibility,
in three places:
- Since
MAGens arises from a set, the first matrix may
not be the correct choice. A test has been added to check for
this, and use the second matrix if so.
- The entries in the alpha matrices may now live in degree 8 fields
rather than degree 4. The degree in the call to
MyPowerRelation has been adjusted to 8 to compensate.
- The exact list may be different, leading to a different nullspace
of the matrix. The computation of alpha has been changed to
reflect this.
|
|
| Graded rings and special K3 surfaces (Gavin Brown) |
|
Files:
Paper06
Paper06_funcs
Paper06_README
The code for this paper takes less than 2 seconds to run on a
64-bit 2.4GHz AMD processor.
|
| Constructing the split octonions (Donald E. Taylor) |
|
Files:
Paper07
Paper07_funcs
Paper07_README
The code for this paper takes around 160 seconds to run on a
64-bit 2.6GHz AMD processor.
Changes since book release:
| V2.13: |
The intrinsic SemiSimpleType has been renamed to
SemisimpleType.
A minor change has been made to adjust for the fact that
CartanMatrix now returns a matrix over the integers,
rather than the rationals as before.
|
|
| Support varieties for modules (Jon F. Carlson) |
|
Files:
Paper08
Paper08_funcs
Paper08_README
The code for this paper takes around 21 seconds to run on a
64-bit 2.6GHz AMD processor.
|
| When is projectivity detected on subalgebras? (Jon F. Carlson) |
|
Files:
Paper09
Paper09_funcs
Paper09_README
The code for this paper takes around 21 seconds to run on a
64-bit 2.6GHz AMD processor.
Note: The final example depends on the random choices made, so the
results of calling IsProjective may not match those shown in
the paper.
|
| Cohomology and group extensions in Magma (Derek F. Holt) |
|
Files:
Paper10
Paper10_funcs
Paper10_README
The code for this paper takes around 1500 seconds to run on a
64-bit 2.4GHz AMD processor.
Changes since book release:
| V2.13: |
One-cocycles now take tuples as arguments rather than group
elements directly. The code has been changed to reflect this.
|
|
| Computing the primitive permutation groups of degree less than 1000
(Colva M. Roney-Dougal; William R. Unger) |
|
Files:
Paper11
Paper11_funcs
Paper11_README
The code for this paper takes around 700 seconds to run on a
64-bit 2.6GHz AMD processor.
Changes since book release:
| V2.11: |
Two functions in Paper11_funcs have been altered
slightly from the code shown in the paper.
The IsGLConjugate function has been modified slightly
so that it first executes the NotConjTest call that
previously was done after some set-up for IsGLConjugate.
This avoids many repetitions of the set-up.
The other change is within NotConjTest. After both H
and K have been determined to be soluble with matching conjugacy
class sizes, when H is small (#H le 1000) we now test H and K for
isomorphism using pc-presentations of both. If they are not
isomorphic, then we know they are not conjugate.
These changes have reduced the time taken for the GL(4,5)
run from about 16,000s to the vicinity of 800s (using a 64-bit AMD
processor running at 2.4 GHz). Most of the reduction in execution time
is due to the isomorphism test in NotConjTest.
|
|
| Computer aided discovery of a fast algorithm for testing conjugacy
in braid groups (Volker Gebhardt) |
|
Files:
Paper12
Paper12.m
Paper12_README
The code for this paper takes over 60,000 seconds to run on a
64-bit 2.4GHz AMD processor.
Note that the file braid.m referred to in the paper is now
called Paper12.m for consistency with the other papers.
Changes since book release:
| V2.11: |
To aid exposition, some of the random elements have been replaced
with explicit ones instead. Where this has been done a comment
has been added to indicate it.
|
|
| Searching for linear codes with large minimum distance
(Markus Grassl) |
|
Files:
Paper13
Paper13.m
Paper13_README
The code for this paper takes more than 8 days to run on a
64-bit 2.6GHz AMD processor.
|
| Colouring planar graphs (Paulette Lieby) |
|
Files:
Paper14
Paper14_README
The code for this paper takes less than a second to run on a
64-bit 2.6GHz AMD processor.
|
|