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
Small image of book cover

Discovering Mathematics with Magma

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.

Latest version:  V2_14.tar.gz   V2_14.zip 
Older versions:  V2_13.tar.gz   V2_13.zip   V2_12.tar.gz   V2_12.zip   V2_11.tar.gz   V2_11.zip 
(Problems extracting these files? Click here.)

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.

Valid HTML 4.01! Valid CSS!