Magma code for computing with modular curves by Maarten Derickx and Andrew V. Sutherland.
Clone the repository with submodules initialised:
git clone --recurse-submodules https://github.com/nt-lib/mdmagma.gitIf you already cloned without --recurse-submodules, initialise them afterwards:
git submodule update --initThis requires Andrew V. Sutherlands magma package. It is known to work with the version commit 6a5a68a8c5ba..., and should also work with later versions.
The code in this project has been used for the following research papers:
Gonality of the modular curve X1(N)
Torsion subgroups of elliptic curves over quintic and sextic number fields
A version 2 that is more consistent and organized is under development. V2 will use intrinsics, user defined types and have automated tests. This is currently done in the v2 subfolder.
To use V2 run
cd v2
magmaAnd then from withing magma run
AttachSpec("mdmagma.spec");
mdmagma depends on https://github.com/AndrewVSutherland/Magma .
Note that AttachSpec("mdmagma.spec"); also makes sure that all external dependencies
are attached. If you want to attach the files from mdmagma without also attaching the
dependencies then you need to attach mdmagma_internal.spec instead. This is usefull if
you already have the dependencies of mdmagma attached by default or if you are using
CHIMP. There is no guarantee that mdmagma will
work with dependencies other than those listed by running:
git submoduleIf you have Magma installed locally:
make testIf you do not have Magma installed locally but have SSH access to a machine that does,
you can run the tests remotely. The makefile will rsync the repository to /tmp/mdmagma
on the remote host and run the tests there:
make test_remote ssh=<hostname>For manual invocation without make, note that the tests must be run from the tests/
directory:
cd tests
magma -n v2/test_all.mThis error occurs during regular usage and tests. The Magma/ directory is a git submodule that must be initialised:
git submodule update --initcopyright (C) 2025 Maarten Derickx, Andrew Sutherland
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see [http://www.gnu.org/licenses/].