brandt.magma

This is a magma program which takes as input a squarefree odd number N, computes all Brandt modules whose discirminant and level multiplies to N, groups the newforms in these Brandt modules according to how they correspond under Jacquet–Langlands and then computes the norms of these forms. This code does not apply to Hilbert modular forms.

To run this code, you will have to make a few very small changes. Right now, it is set-up to only run when N is a product of 4 or 5 primes. (The changes required to allow arbitrarily many primes are trivial, but the computations take so long on 5 primes already that it did not seem worth it.) Decide if you want 4 primes or 5 primes and comment/uncomment the appropriate lines in the funciton ComputeBrandtModules. Then, modify the "DoEverything" function, as follows. Either change the B parameter to primes and uncomment out the line B:=ComputeBrandtModules, or else hard-code in N in the A:=MultiNewDecomposition line. Depending on what you do, the way you call DoEverything is different (you pass in primes or the Brandt modules, respectively).

After these changes, depending on what you've done, you either call DoEverything and pass it the name of the file you want to use for output and the list of prime factors of N, or else you first call ComputeBrandtModules with the list of prime factors of N and then you pass this, and the file name, to DoEverything.

Note, the Magma functions for computing Brandt modules seem to be quite slow, and on reasonably fast computers these functions run in under a day with only fairly small input (e.g., 4 primes below 50).