Skip to content

edgarcosta/hilbertmodularforms

Repository files navigation

hilbertmodularforms

A Magma package for computing with Hilbert modular forms over totally real number fields, and with Hilbert modular surfaces. It extends Magma's built-in ModFrmHil with q-expansion bases, surface invariants, Hirzebruch–Zagier divisors, and canonical rings.

Papers

This package accompanies two papers:

  • Computing with Fourier expansions of Hilbert modular forms (in preparation).
  • A database of basic numerical invariants of Hilbert modular surfaces, LuCaNT proceedings; arXiv:2301.10302.

Loading the package

Requires Magma. Attach the package via its top-level spec file:

AttachSpec("spec");

A convenience file config.m is also provided, which attaches the spec and sets a few sensible defaults (e.g. SetClassGroupBounds("GRH")).

Tests

Tests live in Tests/ and are run via the included Makefile:

make check                  # run all tests in parallel (uses all CPU cores)
make check/<testfile.m>     # run a single test
make debug/<testfile.m>     # run a single test with debug-on-error
make clean                  # clear cached precomputed data

Each test file is a Magma script that uses assert. Individual tests can also be run directly:

magma -b filename:=Tests/<testfile.m> exitsignal:='' run_tests.m

Source code

Brief explanations of each top-level directory.

ModFrmHil

Patches and extensions to Magma's built-in Hilbert modular forms implementation (Hecke and diamond operators, the definite case, precomputation hooks).

ModFrmHilD

The core of the package — the D stands for Dartmouth, where the project originated. The type hierarchy is

ModFrmHilDGRng  >  ModFrmHilD  >  ModFrmHilDElt  >  ModFrmHilDEltComp

with subdirectories for form creation (Creation/ — Eisenstein, theta, base change, dihedral, trace forms), canonical rings (CanonicalRing/), and trace formula data (Trace/).

HilbertSeries

Formulas for Hilbert series of Hilbert modular surfaces.

Verification

Code to verify computed equations against equations in the literature.

spec files

Package specification files; see the Magma handbook section on packages.

Examples and work in progress

  • examples/ contains worked examples (e.g. paper-examples.m).
  • WorkInProgress/ contains demonstrations and exploratory scripts that may or may not currently run end-to-end.

Scripts and data

Scripts in scripts/ generate data for hilbertmodularsurfacesdata, which in turn feeds https://alpha.lmfdb.xyz/HilbertModularSurface/Q/. Each script documents its calling convention at the top of the file. For example:

magma -b D:=13 ambient:=SL gamma:=Gamma0 scripts/generate_hs.m

For parallel runs across many discriminants we use GNU Parallel, e.g.:

A=GL; G=Gamma0; t=hs
parallel -j 64 magma -b D:={} ambient:=$A gamma:=$G scripts/generate_${t}.m ::: {1..3000}

License

BSD 3-Clause. See LICENSE.

Authors

About

Mockup implementation of Hilbert Modular Forms

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors