/* This code can be loaded, or copied and pasted, into Magma. It will load the data associated to the HMF, including the field, level, and Hecke and Atkin-Lehner eigenvalue data. At the *bottom* of the file, there is code to recreate the Hilbert modular form in Magma, by creating the HMF space and cutting out the corresponding Hecke irreducible subspace. From there, you can ask for more eigenvalues or modify as desired. It is commented out, as this computation may be lengthy. */ P := PolynomialRing(Rationals()); g := P![29, 16, -15, -2, 1]; F := NumberField(g); ZF := Integers(F); NN := ideal; primesArray := [ [4, 2, -2/23*w^3 + 3/23*w^2 - 3/23*w + 1/23], [9, 3, -2/23*w^3 + 3/23*w^2 + 43/23*w + 24/23], [9, 3, -2/23*w^3 + 3/23*w^2 + 43/23*w - 68/23], [19, 19, -2/23*w^3 + 3/23*w^2 - 3/23*w + 24/23], [19, 19, -6/23*w^3 + 9/23*w^2 + 83/23*w - 20/23], [19, 19, 6/23*w^3 - 9/23*w^2 - 83/23*w + 66/23], [19, 19, -2/23*w^3 + 3/23*w^2 - 3/23*w - 22/23], [25, 5, -4/23*w^3 + 6/23*w^2 + 40/23*w - 21/23], [29, 29, w], [29, 29, -4/23*w^3 + 6/23*w^2 + 63/23*w - 21/23], [29, 29, 4/23*w^3 - 6/23*w^2 - 63/23*w + 44/23], [29, 29, -w + 1], [31, 31, w + 2], [31, 31, -4/23*w^3 + 6/23*w^2 + 63/23*w + 25/23], [31, 31, 4/23*w^3 - 6/23*w^2 - 63/23*w + 90/23], [31, 31, -w + 3], [49, 7, -2/23*w^3 + 3/23*w^2 + 43/23*w - 22/23], [59, 59, -20/23*w^3 + 30/23*w^2 + 269/23*w - 128/23], [59, 59, -8/23*w^3 + 12/23*w^2 + 103/23*w - 88/23], [59, 59, -8/23*w^3 + 12/23*w^2 + 103/23*w - 19/23], [59, 59, -4/23*w^3 + 6/23*w^2 + 17/23*w - 44/23], [109, 109, -9/23*w^3 + 2/23*w^2 + 113/23*w + 62/23], [109, 109, 4/23*w^3 - 6/23*w^2 - 63/23*w - 71/23], [109, 109, 7/23*w^3 - 22/23*w^2 - 47/23*w + 100/23], [109, 109, 9/23*w^3 - 25/23*w^2 - 90/23*w + 168/23], [121, 11, -2/23*w^3 + 3/23*w^2 + 20/23*w - 91/23], [121, 11, 2/23*w^3 - 3/23*w^2 - 20/23*w - 70/23], [131, 131, -5/23*w^3 + 19/23*w^2 + 50/23*w - 101/23], [131, 131, -3/23*w^3 + 16/23*w^2 + 7/23*w - 125/23], [131, 131, 3/23*w^3 + 7/23*w^2 - 30/23*w - 105/23], [131, 131, 5/23*w^3 + 4/23*w^2 - 73/23*w - 37/23], [139, 139, -2/23*w^3 - 20/23*w^2 + 43/23*w + 323/23], [139, 139, 17/23*w^3 - 37/23*w^2 - 216/23*w + 302/23], [139, 139, 17/23*w^3 - 14/23*w^2 - 239/23*w - 66/23], [139, 139, -2/23*w^3 + 26/23*w^2 - 3/23*w - 344/23], [149, 149, -1/23*w^3 - 10/23*w^2 + 33/23*w - 34/23], [149, 149, 1/23*w^3 + 10/23*w^2 - 33/23*w - 196/23], [149, 149, -1/23*w^3 + 13/23*w^2 + 10/23*w - 218/23], [149, 149, 1/23*w^3 - 13/23*w^2 - 10/23*w - 12/23], [169, 13, 6/23*w^3 - 9/23*w^2 - 37/23*w + 20/23], [169, 13, -10/23*w^3 + 15/23*w^2 + 123/23*w - 64/23], [199, 199, -1/23*w^3 + 13/23*w^2 - 13/23*w - 195/23], [199, 199, 3/23*w^3 + 7/23*w^2 - 53/23*w + 33/23], [199, 199, 3/23*w^3 - 16/23*w^2 - 30/23*w + 10/23], [199, 199, 1/23*w^3 + 10/23*w^2 - 10/23*w - 196/23], [251, 251, 6/23*w^3 - 9/23*w^2 - 14/23*w + 43/23], [251, 251, 14/23*w^3 - 21/23*w^2 - 186/23*w + 62/23], [251, 251, 4/23*w^3 - 6/23*w^2 - 109/23*w + 228/23], [251, 251, 6/23*w^3 - 9/23*w^2 - 14/23*w - 26/23], [271, 271, -8/23*w^3 + 12/23*w^2 + 126/23*w + 27/23], [271, 271, 8/23*w^3 - 35/23*w^2 - 80/23*w + 226/23], [271, 271, 13/23*w^3 - 31/23*w^2 - 153/23*w + 189/23], [271, 271, 8/23*w^3 - 12/23*w^2 - 126/23*w + 157/23], [281, 281, -w^2 + 2*w + 9], [281, 281, 13/23*w^3 - 8/23*w^2 - 153/23*w + 28/23], [281, 281, -13/23*w^3 + 31/23*w^2 + 130/23*w - 120/23], [281, 281, 11/23*w^3 - 28/23*w^2 - 87/23*w + 190/23], [289, 17, -11/23*w^3 + 51/23*w^2 + 110/23*w - 581/23], [289, 17, -8/23*w^3 + 35/23*w^2 + 80/23*w - 410/23], [311, 311, 5/23*w^3 + 4/23*w^2 - 50/23*w - 106/23], [311, 311, -7/23*w^3 + 22/23*w^2 + 70/23*w - 100/23], [311, 311, 7/23*w^3 + 1/23*w^2 - 93/23*w - 15/23], [311, 311, -5/23*w^3 + 19/23*w^2 + 27/23*w - 147/23], [389, 389, -8/23*w^3 + 35/23*w^2 + 80/23*w - 295/23], [389, 389, -4/23*w^3 + 29/23*w^2 - 6/23*w - 136/23], [389, 389, -4/23*w^3 - 17/23*w^2 + 40/23*w + 117/23], [389, 389, 2/23*w^3 + 20/23*w^2 - 20/23*w - 185/23], [401, 401, 11/23*w^3 - 5/23*w^2 - 179/23*w - 17/23], [401, 401, 2/23*w^3 + 20/23*w^2 - 43/23*w - 93/23], [401, 401, 1/23*w^3 + 10/23*w^2 + 36/23*w - 104/23], [401, 401, 11/23*w^3 - 28/23*w^2 - 156/23*w + 190/23], [419, 419, -6/23*w^3 - 14/23*w^2 + 83/23*w + 72/23], [419, 419, 3/23*w^3 + 7/23*w^2 - 76/23*w + 79/23], [419, 419, -6/23*w^3 + 32/23*w^2 + 37/23*w - 296/23], [419, 419, -1/23*w^3 + 13/23*w^2 + 56/23*w - 172/23], [421, 421, -8/23*w^3 + 12/23*w^2 + 57/23*w - 65/23], [421, 421, -12/23*w^3 + 18/23*w^2 + 143/23*w - 109/23], [421, 421, 12/23*w^3 - 18/23*w^2 - 143/23*w + 40/23], [421, 421, 8/23*w^3 - 12/23*w^2 - 57/23*w - 4/23], [439, 439, 7/23*w^3 - 22/23*w^2 - 93/23*w + 123/23], [439, 439, 1/23*w^3 + 10/23*w^2 + 13/23*w - 127/23], [439, 439, 5/23*w^3 + 4/23*w^2 - 73/23*w + 9/23], [439, 439, 7/23*w^3 + 1/23*w^2 - 116/23*w - 15/23], [449, 449, -11/23*w^3 + 5/23*w^2 + 133/23*w + 63/23], [449, 449, -9/23*w^3 + 2/23*w^2 + 90/23*w + 16/23], [449, 449, 9/23*w^3 - 25/23*w^2 - 67/23*w + 99/23], [449, 449, -11/23*w^3 + 28/23*w^2 + 110/23*w - 190/23], [479, 479, 10/23*w^3 - 15/23*w^2 - 123/23*w - 74/23], [479, 479, 6/23*w^3 - 9/23*w^2 - 37/23*w + 158/23], [479, 479, -6/23*w^3 + 9/23*w^2 + 37/23*w + 118/23], [479, 479, 10/23*w^3 - 15/23*w^2 - 123/23*w + 202/23], [529, 23, -4/23*w^3 + 29/23*w^2 + 40/23*w - 274/23], [529, 23, w^2 - 6], [541, 541, 6/23*w^3 + 14/23*w^2 - 83/23*w - 141/23], [541, 541, -6/23*w^3 + 32/23*w^2 + 37/23*w - 227/23], [541, 541, 6/23*w^3 + 14/23*w^2 - 83/23*w - 164/23], [541, 541, -6/23*w^3 + 32/23*w^2 + 37/23*w - 204/23], [569, 569, -5/23*w^3 - 4/23*w^2 + 50/23*w - 78/23], [569, 569, -7/23*w^3 + 22/23*w^2 + 70/23*w - 284/23], [569, 569, -5/23*w^3 + 19/23*w^2 + 50/23*w - 262/23], [569, 569, 5/23*w^3 - 19/23*w^2 - 27/23*w - 37/23], [619, 619, -2/23*w^3 - 43/23*w^2 + 66/23*w + 622/23], [619, 619, 17/23*w^3 - 37/23*w^2 - 216/23*w + 233/23], [619, 619, 17/23*w^3 - 14/23*w^2 - 239/23*w + 3/23], [619, 619, -2/23*w^3 + 49/23*w^2 - 26/23*w - 643/23], [641, 641, -1/23*w^3 + 13/23*w^2 - 59/23*w + 127/23], [641, 641, -14/23*w^3 + 44/23*w^2 + 117/23*w - 246/23], [641, 641, -11/23*w^3 + 5/23*w^2 + 179/23*w + 201/23], [641, 641, -1/23*w^3 - 10/23*w^2 - 36/23*w - 80/23], [691, 691, 5/23*w^3 - 65/23*w^2 - 4/23*w + 837/23], [691, 691, -2/23*w^3 + 26/23*w^2 + 20/23*w - 321/23], [691, 691, -2/23*w^3 - 20/23*w^2 + 66/23*w + 277/23], [691, 691, -5/23*w^3 - 50/23*w^2 + 119/23*w + 773/23], [701, 701, 2/23*w^3 + 20/23*w^2 - 66/23*w - 185/23], [701, 701, w^2 - 7], [701, 701, -2/23*w^3 + 26/23*w^2 + 20/23*w - 183/23], [701, 701, -2/23*w^3 + 26/23*w^2 + 20/23*w - 229/23], [709, 709, -18/23*w^3 + 27/23*w^2 + 226/23*w - 152/23], [709, 709, -33/23*w^3 + 38/23*w^2 + 445/23*w - 41/23], [709, 709, -33/23*w^3 + 61/23*w^2 + 422/23*w - 409/23], [709, 709, 18/23*w^3 - 27/23*w^2 - 226/23*w + 83/23], [719, 719, -4/23*w^3 + 29/23*w^2 + 40/23*w - 136/23], [719, 719, 12/23*w^3 - 18/23*w^2 - 166/23*w + 155/23], [719, 719, w^2 - 12], [719, 719, 4/23*w^3 + 17/23*w^2 - 86/23*w - 71/23], [809, 809, -10/23*w^3 + 15/23*w^2 + 123/23*w - 248/23], [809, 809, 7/23*w^3 - 22/23*w^2 - 93/23*w + 307/23], [809, 809, 7/23*w^3 + 1/23*w^2 - 116/23*w - 199/23], [809, 809, 10/23*w^3 - 15/23*w^2 - 123/23*w - 120/23], [811, 811, -7/23*w^3 - 1/23*w^2 + 93/23*w - 31/23], [811, 811, -7/23*w^3 + 22/23*w^2 + 93/23*w - 100/23], [811, 811, 7/23*w^3 + 1/23*w^2 - 116/23*w + 8/23], [811, 811, 1/23*w^3 + 10/23*w^2 + 13/23*w - 150/23], [821, 821, -4/23*w^3 + 29/23*w^2 + 17/23*w - 182/23], [821, 821, 4/23*w^3 + 17/23*w^2 - 63/23*w - 186/23], [821, 821, -4/23*w^3 + 29/23*w^2 + 17/23*w - 228/23], [821, 821, 4/23*w^3 + 17/23*w^2 - 63/23*w - 140/23], [839, 839, -16/23*w^3 + 70/23*w^2 + 160/23*w - 751/23], [839, 839, 22/23*w^3 - 33/23*w^2 - 289/23*w + 196/23], [839, 839, -22/23*w^3 + 33/23*w^2 + 289/23*w - 104/23], [839, 839, -16/23*w^3 - 22/23*w^2 + 252/23*w + 537/23], [859, 859, -7/23*w^3 + 22/23*w^2 + 47/23*w - 192/23], [859, 859, -9/23*w^3 + 2/23*w^2 + 113/23*w - 30/23], [859, 859, -9/23*w^3 + 25/23*w^2 + 90/23*w - 76/23], [859, 859, 7/23*w^3 + 1/23*w^2 - 70/23*w - 130/23], [971, 971, -10/23*w^3 + 15/23*w^2 + 146/23*w + 97/23], [971, 971, -14/23*w^3 - 2/23*w^2 + 186/23*w + 99/23], [971, 971, 14/23*w^3 - 44/23*w^2 - 140/23*w + 269/23], [971, 971, -10/23*w^3 + 15/23*w^2 + 146/23*w - 248/23]]; primes := [ideal : I in primesArray]; heckePol := x^6 - 17*x^4 + 40*x^2 - 21; K := NumberField(heckePol); heckeEigenvaluesArray := [1/11*e^4 - 12/11*e^2 + 2/11, 2/11*e^4 - 35/11*e^2 + 26/11, 1, 1/11*e^5 - 12/11*e^3 - 31/11*e, -e, -1/11*e^5 + 12/11*e^3 + 31/11*e, e, -6/11*e^4 + 94/11*e^2 - 166/11, -7/11*e^4 + 106/11*e^2 - 102/11, -7/11*e^4 + 106/11*e^2 - 102/11, 5/11*e^4 - 82/11*e^2 + 87/11, 5/11*e^4 - 82/11*e^2 + 87/11, 1/11*e^5 - 12/11*e^3 - 9/11*e, -1/11*e^5 + 12/11*e^3 + 9/11*e, 7/11*e^5 - 117/11*e^3 + 223/11*e, -7/11*e^5 + 117/11*e^3 - 223/11*e, -5/11*e^4 + 71/11*e^2 - 131/11, -9/11*e^5 + 141/11*e^3 - 172/11*e, 9/11*e^5 - 141/11*e^3 + 172/11*e, -3/11*e^5 + 47/11*e^3 - 17/11*e, 3/11*e^5 - 47/11*e^3 + 17/11*e, -e^4 + 16*e^2 - 23, -e^4 + 16*e^2 - 23, 23/11*e^4 - 353/11*e^2 + 398/11, 23/11*e^4 - 353/11*e^2 + 398/11, 2/11*e^4 - 35/11*e^2 + 4/11, 2/11*e^4 - 35/11*e^2 + 4/11, 3*e, -3*e, -2/11*e^5 + 35/11*e^3 - 125/11*e, 2/11*e^5 - 35/11*e^3 + 125/11*e, 18/11*e^5 - 282/11*e^3 + 366/11*e, -18/11*e^5 + 282/11*e^3 - 366/11*e, -2*e^5 + 32*e^3 - 47*e, 2*e^5 - 32*e^3 + 47*e, -2/11*e^4 + 35/11*e^2 - 114/11, 27/11*e^4 - 434/11*e^2 + 516/11, -2/11*e^4 + 35/11*e^2 - 114/11, 27/11*e^4 - 434/11*e^2 + 516/11, -16/11*e^4 + 247/11*e^2 - 307/11, -16/11*e^4 + 247/11*e^2 - 307/11, -17/11*e^5 + 259/11*e^3 - 265/11*e, -16/11*e^5 + 258/11*e^3 - 483/11*e, 17/11*e^5 - 259/11*e^3 + 265/11*e, 16/11*e^5 - 258/11*e^3 + 483/11*e, -1/11*e^5 + 23/11*e^3 - 57/11*e, 1/11*e^5 - 23/11*e^3 + 57/11*e, e^3 - 7*e, -e^3 + 7*e, 10/11*e^5 - 175/11*e^3 + 438/11*e, -3/11*e^5 + 47/11*e^3 - 6/11*e, -10/11*e^5 + 175/11*e^3 - 438/11*e, 3/11*e^5 - 47/11*e^3 + 6/11*e, -15/11*e^4 + 235/11*e^2 - 426/11, -15/11*e^4 + 235/11*e^2 - 426/11, -7/11*e^4 + 84/11*e^2 + 162/11, -7/11*e^4 + 84/11*e^2 + 162/11, 19/11*e^4 - 272/11*e^2 + 137/11, 19/11*e^4 - 272/11*e^2 + 137/11, 2/11*e^5 - 46/11*e^3 + 323/11*e, -36/11*e^5 + 575/11*e^3 - 798/11*e, -2/11*e^5 + 46/11*e^3 - 323/11*e, 36/11*e^5 - 575/11*e^3 + 798/11*e, 4/11*e^4 - 26/11*e^2 - 201/11, 4/11*e^4 - 26/11*e^2 - 201/11, 4/11*e^4 - 92/11*e^2 + 261/11, 4/11*e^4 - 92/11*e^2 + 261/11, -16/11*e^4 + 269/11*e^2 - 450/11, -28/11*e^4 + 457/11*e^2 - 639/11, -16/11*e^4 + 269/11*e^2 - 450/11, -28/11*e^4 + 457/11*e^2 - 639/11, 16/11*e^5 - 269/11*e^3 + 516/11*e, -16/11*e^5 + 269/11*e^3 - 516/11*e, -10/11*e^5 + 142/11*e^3 - 20/11*e, 10/11*e^5 - 142/11*e^3 + 20/11*e, -15/11*e^4 + 224/11*e^2 - 382/11, -17/11*e^4 + 292/11*e^2 - 529/11, -15/11*e^4 + 224/11*e^2 - 382/11, -17/11*e^4 + 292/11*e^2 - 529/11, 30/11*e^5 - 470/11*e^3 + 610/11*e, -15/11*e^5 + 235/11*e^3 - 371/11*e, -30/11*e^5 + 470/11*e^3 - 610/11*e, 15/11*e^5 - 235/11*e^3 + 371/11*e, 6/11*e^4 - 127/11*e^2 + 507/11, 6/11*e^4 - 127/11*e^2 + 507/11, -21/11*e^4 + 340/11*e^2 - 438/11, -21/11*e^4 + 340/11*e^2 - 438/11, 36/11*e^5 - 564/11*e^3 + 721/11*e, -36/11*e^5 + 564/11*e^3 - 721/11*e, 28/11*e^5 - 457/11*e^3 + 804/11*e, -28/11*e^5 + 457/11*e^3 - 804/11*e, 3*e^4 - 47*e^2 + 61, 3*e^4 - 47*e^2 + 61, 16/11*e^4 - 258/11*e^2 + 362/11, -4/11*e^4 + 48/11*e^2 - 184/11, 16/11*e^4 - 258/11*e^2 + 362/11, -4/11*e^4 + 48/11*e^2 - 184/11, 16/11*e^4 - 236/11*e^2 + 186/11, -e^4 + 15*e^2 - 27, 16/11*e^4 - 236/11*e^2 + 186/11, -e^4 + 15*e^2 - 27, 47/11*e^5 - 751/11*e^3 + 1106/11*e, 28/11*e^5 - 435/11*e^3 + 386/11*e, -47/11*e^5 + 751/11*e^3 - 1106/11*e, -28/11*e^5 + 435/11*e^3 - 386/11*e, -e^2 + 12, -e^2 + 12, -39/11*e^4 + 578/11*e^2 - 540/11, -39/11*e^4 + 578/11*e^2 - 540/11, 8/11*e^5 - 107/11*e^3 - 127/11*e, -8/11*e^5 + 107/11*e^3 + 127/11*e, 13/11*e^5 - 178/11*e^3 - 29/11*e, -13/11*e^5 + 178/11*e^3 + 29/11*e, -15/11*e^4 + 224/11*e^2 - 459/11, 2*e^4 - 30*e^2 + 27, -15/11*e^4 + 224/11*e^2 - 459/11, 2*e^4 - 30*e^2 + 27, -20/11*e^4 + 295/11*e^2 - 590/11, 32/11*e^4 - 439/11*e^2 + 229/11, -20/11*e^4 + 295/11*e^2 - 590/11, 32/11*e^4 - 439/11*e^2 + 229/11, -6/11*e^5 + 94/11*e^3 - 188/11*e, 6/11*e^5 - 94/11*e^3 + 188/11*e, 54/11*e^5 - 846/11*e^3 + 1120/11*e, -54/11*e^5 + 846/11*e^3 - 1120/11*e, -13/11*e^4 + 178/11*e^2 - 15/11, -13/11*e^4 + 178/11*e^2 - 15/11, -30/11*e^4 + 525/11*e^2 - 918/11, -30/11*e^4 + 525/11*e^2 - 918/11, 19/11*e^5 - 272/11*e^3 + 148/11*e, -19/11*e^5 + 272/11*e^3 - 148/11*e, -12/11*e^5 + 177/11*e^3 - 13/11*e, 12/11*e^5 - 177/11*e^3 + 13/11*e, -27/11*e^4 + 434/11*e^2 - 780/11, -14/11*e^4 + 223/11*e^2 - 171/11, -27/11*e^4 + 434/11*e^2 - 780/11, -14/11*e^4 + 223/11*e^2 - 171/11, 41/11*e^5 - 668/11*e^3 + 1050/11*e, -16/11*e^5 + 236/11*e^3 - 197/11*e, -41/11*e^5 + 668/11*e^3 - 1050/11*e, 16/11*e^5 - 236/11*e^3 + 197/11*e, 45/11*e^5 - 716/11*e^3 + 1080/11*e, 7/11*e^5 - 128/11*e^3 + 311/11*e, -45/11*e^5 + 716/11*e^3 - 1080/11*e, -7/11*e^5 + 128/11*e^3 - 311/11*e, -26/11*e^5 + 411/11*e^3 - 679/11*e, 26/11*e^5 - 411/11*e^3 + 679/11*e, 53/11*e^5 - 845/11*e^3 + 1228/11*e, -53/11*e^5 + 845/11*e^3 - 1228/11*e]; heckeEigenvalues := AssociativeArray(); for i := 1 to #heckeEigenvaluesArray do heckeEigenvalues[primes[i]] := heckeEigenvaluesArray[i]; end for; ALEigenvalues := AssociativeArray(); ALEigenvalues[ideal] := -1; // EXAMPLE: // pp := Factorization(2*ZF)[1][1]; // heckeEigenvalues[pp]; print "To reconstruct the Hilbert newform f, type f, iso := Explode(make_newform());"; function make_newform(); M := HilbertCuspForms(F, NN); S := NewSubspace(M); // SetVerbose("ModFrmHil", 1); NFD := NewformDecomposition(S); newforms := [* Eigenform(U) : U in NFD *]; if #newforms eq 0 then; print "No Hilbert newforms at this level"; return 0; end if; print "Testing ", #newforms, " possible newforms"; newforms := [* f: f in newforms | IsIsomorphic(BaseField(f), K) *]; print #newforms, " newforms have the correct Hecke field"; if #newforms eq 0 then; print "No Hilbert newform found with the correct Hecke field"; return 0; end if; autos := Automorphisms(K); xnewforms := [* *]; for f in newforms do; if K eq RationalField() then; Append(~xnewforms, [* f, autos[1] *]); else; flag, iso := IsIsomorphic(K,BaseField(f)); for a in autos do; Append(~xnewforms, [* f, a*iso *]); end for; end if; end for; newforms := xnewforms; for P in primes do; xnewforms := [* *]; for f_iso in newforms do; f, iso := Explode(f_iso); if HeckeEigenvalue(f,P) eq iso(heckeEigenvalues[P]) then; Append(~xnewforms, f_iso); end if; end for; newforms := xnewforms; if #newforms eq 0 then; print "No Hilbert newform found which matches the Hecke eigenvalues"; return 0; else if #newforms eq 1 then; print "success: unique match"; return newforms[1]; end if; end if; end for; print #newforms, "Hilbert newforms found which match the Hecke eigenvalues"; return newforms[1]; end function;