/* 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![-55, 0, 1]; F := NumberField(g); ZF := Integers(F); NN := ideal; primesArray := [ [2, 2, w + 1], [3, 3, w + 1], [3, 3, w + 2], [5, 5, -2*w + 15], [11, 11, 3*w - 22], [13, 13, w + 4], [13, 13, w + 9], [17, 17, w + 2], [17, 17, w + 15], [19, 19, -w - 6], [19, 19, w - 6], [23, 23, w + 3], [23, 23, w + 20], [47, 47, w + 14], [47, 47, w + 33], [49, 7, -7], [67, 67, w + 16], [67, 67, w + 51], [73, 73, w + 36], [73, 73, w + 37], [79, 79, 5*w + 36], [79, 79, 5*w - 36], [89, 89, -w - 12], [89, 89, w - 12], [103, 103, w + 40], [103, 103, w + 63], [131, 131, -6*w - 43], [131, 131, -6*w + 43], [139, 139, 2*w - 9], [139, 139, -2*w - 9], [151, 151, 4*w - 27], [151, 151, 4*w + 27], [163, 163, w + 50], [163, 163, w + 113], [173, 173, w + 48], [173, 173, w + 125], [181, 181, -3*w - 26], [181, 181, 3*w - 26], [193, 193, w + 21], [193, 193, w + 172], [197, 197, w + 45], [197, 197, w + 152], [211, 211, 2*w - 3], [211, 211, -2*w - 3], [223, 223, w + 72], [223, 223, w + 151], [229, 229, 6*w + 47], [229, 229, 6*w - 47], [233, 233, w + 88], [233, 233, w + 145], [239, 239, -3*w - 16], [239, 239, 3*w - 16], [269, 269, -w - 18], [269, 269, w - 18], [271, 271, -8*w - 57], [271, 271, -8*w + 57], [277, 277, w + 71], [277, 277, w + 206], [293, 293, w + 73], [293, 293, w + 220], [337, 337, w + 27], [337, 337, w + 310], [359, 359, 9*w + 64], [359, 359, 9*w - 64], [367, 367, w + 34], [367, 367, w + 333], [373, 373, w + 146], [373, 373, w + 227], [383, 383, w + 173], [383, 383, w + 210], [389, 389, -5*w - 42], [389, 389, 5*w - 42], [401, 401, 29*w - 216], [401, 401, 11*w - 84], [421, 421, -6*w + 49], [421, 421, -6*w - 49], [431, 431, 3*w - 8], [431, 431, -3*w - 8], [439, 439, -4*w - 21], [439, 439, 4*w - 21], [443, 443, w + 99], [443, 443, w + 344], [449, 449, -8*w - 63], [449, 449, -8*w + 63], [457, 457, w + 91], [457, 457, w + 366], [463, 463, w + 38], [463, 463, w + 425], [467, 467, w + 191], [467, 467, w + 276], [479, 479, -3*w - 4], [479, 479, 3*w - 4], [487, 487, w + 223], [487, 487, w + 264], [491, 491, 3*w - 2], [491, 491, -3*w - 2], [509, 509, 2*w - 27], [509, 509, -2*w - 27], [521, 521, -w - 24], [521, 521, w - 24], [557, 557, w + 75], [557, 557, w + 482], [571, 571, 11*w + 78], [571, 571, 11*w - 78], [587, 587, w + 246], [587, 587, w + 341], [593, 593, w + 184], [593, 593, w + 409], [613, 613, w + 235], [613, 613, w + 378], [641, 641, -4*w - 39], [641, 641, 4*w - 39], [643, 643, w + 174], [643, 643, w + 469], [647, 647, w + 257], [647, 647, w + 390], [659, 659, -18*w + 131], [659, 659, 30*w - 221], [661, 661, 3*w - 34], [661, 661, -3*w - 34], [673, 673, w + 196], [673, 673, w + 477], [677, 677, w + 240], [677, 677, w + 437], [683, 683, w + 136], [683, 683, w + 547], [709, 709, 21*w - 158], [709, 709, 27*w - 202], [727, 727, w + 339], [727, 727, w + 388], [733, 733, w + 39], [733, 733, w + 694], [739, 739, 10*w - 69], [739, 739, 10*w + 69], [811, 811, 35*w - 258], [811, 811, -19*w + 138], [823, 823, w + 177], [823, 823, w + 646], [829, 829, -6*w - 53], [829, 829, 6*w - 53], [841, 29, -29], [853, 853, w + 316], [853, 853, w + 537], [857, 857, w + 270], [857, 857, w + 587], [863, 863, w + 405], [863, 863, w + 458], [877, 877, w + 377], [877, 877, w + 500], [881, 881, -19*w + 144], [881, 881, -37*w + 276], [883, 883, w + 52], [883, 883, w + 831], [907, 907, w + 350], [907, 907, w + 557], [919, 919, -8*w - 51], [919, 919, 8*w - 51], [929, 929, 5*w - 48], [929, 929, -5*w - 48], [937, 937, w + 176], [937, 937, w + 761], [947, 947, w + 252], [947, 947, w + 695], [953, 953, w + 334], [953, 953, w + 619], [961, 31, -31], [983, 983, w + 277], [983, 983, w + 706], [997, 997, w + 371], [997, 997, w + 626]]; primes := [ideal : I in primesArray]; heckePol := x^8 + 18*x^6 + 81*x^4 + 53*x^2 + 4; K := NumberField(heckePol); heckeEigenvaluesArray := [-5/106*e^7 - 47/53*e^5 - 459/106*e^3 - 399/106*e, e, 5/106*e^7 + 47/53*e^5 + 459/106*e^3 + 399/106*e, -7/53*e^6 - 121/53*e^4 - 473/53*e^2 - 71/53, -10/53*e^6 - 188/53*e^4 - 865/53*e^2 - 321/53, 12/53*e^7 + 215/53*e^5 + 932/53*e^3 + 417/53*e, -67/106*e^7 - 598/53*e^5 - 5239/106*e^3 - 2739/106*e, 12/53*e^7 + 215/53*e^5 + 932/53*e^3 + 258/53*e, -29/106*e^7 - 262/53*e^5 - 2429/106*e^3 - 2081/106*e, 2/53*e^6 + 27/53*e^4 + 67/53*e^2 - 63/53, -2/53*e^6 - 27/53*e^4 - 14/53*e^2 + 116/53, 5/53*e^7 + 94/53*e^5 + 512/53*e^3 + 876/53*e, 19/53*e^7 + 336/53*e^5 + 1458/53*e^3 + 859/53*e, 60/53*e^7 + 1075/53*e^5 + 4713/53*e^3 + 2297/53*e, 77/106*e^7 + 692/53*e^5 + 6157/106*e^3 + 3113/106*e, 14/53*e^6 + 242/53*e^4 + 999/53*e^2 + 301/53, -99/106*e^7 - 867/53*e^5 - 7371/106*e^3 - 3533/106*e, -44/53*e^7 - 806/53*e^5 - 3753/53*e^3 - 2642/53*e, 1/106*e^7 + 20/53*e^5 + 431/106*e^3 + 1373/106*e, 70/53*e^7 + 1263/53*e^5 + 5684/53*e^3 + 3519/53*e, -1/53*e^6 + 13/53*e^4 + 205/53*e^2 - 154/53, 8/53*e^6 + 108/53*e^4 + 321/53*e^2 + 596/53, 28/53*e^6 + 484/53*e^4 + 1945/53*e^2 + 814/53, 9/53*e^6 + 201/53*e^4 + 1176/53*e^2 + 909/53, -209/106*e^7 - 1848/53*e^5 - 15985/106*e^3 - 8177/106*e, 201/106*e^7 + 1794/53*e^5 + 15717/106*e^3 + 8111/106*e, -20/53*e^6 - 323/53*e^4 - 1094/53*e^2 + 100/53, 30/53*e^6 + 564/53*e^4 + 2701/53*e^2 + 1228/53, 49/53*e^6 + 847/53*e^4 + 3470/53*e^2 + 1292/53, -29/53*e^6 - 524/53*e^4 - 2270/53*e^2 - 650/53, -8/53*e^6 - 161/53*e^4 - 798/53*e^2 + 411/53, 49/53*e^6 + 847/53*e^4 + 3470/53*e^2 + 1133/53, -101/106*e^7 - 907/53*e^5 - 8127/106*e^3 - 5113/106*e, -68/53*e^7 - 1183/53*e^5 - 4875/53*e^3 - 1727/53*e, 233/106*e^7 + 2063/53*e^5 + 17743/106*e^3 + 7421/106*e, -127/106*e^7 - 1109/53*e^5 - 9157/106*e^3 - 2545/106*e, -4/53*e^6 - 54/53*e^4 - 28/53*e^2 + 338/53, 9/53*e^6 + 148/53*e^4 + 487/53*e^2 - 416/53, -98/53*e^7 - 1747/53*e^5 - 7629/53*e^3 - 3697/53*e, 89/53*e^7 + 1599/53*e^5 + 7142/53*e^3 + 4060/53*e, -13/53*e^7 - 255/53*e^5 - 1469/53*e^3 - 2373/53*e, -70/53*e^7 - 1210/53*e^5 - 4942/53*e^3 - 1558/53*e, e^6 + 17*e^4 + 65*e^2 + 16, 9/53*e^6 + 148/53*e^4 + 540/53*e^2 - 628/53, 181/106*e^7 + 1606/53*e^5 + 13775/106*e^3 + 5985/106*e, -23/106*e^7 - 195/53*e^5 - 1539/106*e^3 - 1051/106*e, 29/53*e^6 + 524/53*e^4 + 2376/53*e^2 + 1286/53, 19/53*e^6 + 336/53*e^4 + 1511/53*e^2 + 329/53, -291/106*e^7 - 2587/53*e^5 - 22601/106*e^3 - 12537/106*e, 19/53*e^7 + 336/53*e^5 + 1458/53*e^3 + 859/53*e, 55/53*e^6 + 928/53*e^4 + 3724/53*e^2 + 1156/53, -26/53*e^6 - 510/53*e^4 - 2408/53*e^2 - 559/53, -38/53*e^6 - 619/53*e^4 - 2280/53*e^2 + 296/53, -54/53*e^6 - 888/53*e^4 - 3399/53*e^2 - 1320/53, 24/53*e^6 + 377/53*e^4 + 1228/53*e^2 - 544/53, 2/53*e^6 + 27/53*e^4 + 120/53*e^2 + 626/53, -63/53*e^7 - 1089/53*e^5 - 4363/53*e^3 - 1063/53*e, -3/53*e^7 - 67/53*e^5 - 445/53*e^3 - 1257/53*e, 83/53*e^7 + 1465/53*e^5 + 6199/53*e^3 + 1970/53*e, 86/53*e^7 + 1532/53*e^5 + 6591/53*e^3 + 2538/53*e, 347/106*e^7 + 3071/53*e^5 + 26491/106*e^3 + 13529/106*e, -3/2*e^7 - 27*e^5 - 243/2*e^3 - 171/2*e, 28/53*e^6 + 484/53*e^4 + 1892/53*e^2 - 829/53, 37/53*e^6 + 632/53*e^4 + 2697/53*e^2 + 1352/53, 118/53*e^7 + 2123/53*e^5 + 9518/53*e^3 + 5717/53*e, 58/53*e^7 + 995/53*e^5 + 3851/53*e^3 - 237/53*e, 111/106*e^7 + 948/53*e^5 + 7455/106*e^3 + 1671/106*e, -28/53*e^7 - 484/53*e^5 - 1998/53*e^3 - 549/53*e, 1/106*e^7 + 20/53*e^5 + 431/106*e^3 + 1373/106*e, 60/53*e^7 + 1075/53*e^5 + 4766/53*e^3 + 2509/53*e, 45/53*e^6 + 793/53*e^4 + 3336/53*e^2 + 1418/53, 49/53*e^6 + 900/53*e^4 + 3894/53*e^2 + 868/53, -11/53*e^6 - 175/53*e^4 - 660/53*e^2 + 320/53, 43/53*e^6 + 713/53*e^4 + 2739/53*e^2 + 50/53, 55/53*e^6 + 928/53*e^4 + 3618/53*e^2 + 626/53, -65/53*e^6 - 1063/53*e^4 - 4006/53*e^2 - 1212/53, 22/53*e^6 + 350/53*e^4 + 1002/53*e^2 - 640/53, -5/53*e^6 - 147/53*e^4 - 1148/53*e^2 - 2095/53, -56/53*e^6 - 968/53*e^4 - 3996/53*e^2 - 144/53, -59/53*e^6 - 982/53*e^4 - 3434/53*e^2 + 189/53, 191/106*e^7 + 1700/53*e^5 + 15011/106*e^3 + 9963/106*e, 233/106*e^7 + 2116/53*e^5 + 19015/106*e^3 + 10177/106*e, 41/53*e^6 + 739/53*e^4 + 3149/53*e^2 + 2286/53, -68/53*e^6 - 1183/53*e^4 - 5034/53*e^2 - 1939/53, -38/53*e^7 - 672/53*e^5 - 2810/53*e^3 - 817/53*e, -181/53*e^7 - 3265/53*e^5 - 14623/53*e^3 - 8635/53*e, -165/106*e^7 - 1498/53*e^5 - 13557/106*e^3 - 8715/106*e, 138/53*e^7 + 2499/53*e^5 + 11460/53*e^3 + 8002/53*e, -415/106*e^7 - 3689/53*e^5 - 31843/106*e^3 - 13507/106*e, -47/106*e^7 - 410/53*e^5 - 3615/106*e^3 - 2839/106*e, -9/53*e^6 - 148/53*e^4 - 699/53*e^2 - 485/53, -26/53*e^6 - 510/53*e^4 - 2461/53*e^2 - 2202/53, 52/53*e^7 + 967/53*e^5 + 4763/53*e^3 + 4987/53*e, -218/53*e^7 - 3897/53*e^5 - 17161/53*e^3 - 8768/53*e, 88/53*e^6 + 1612/53*e^4 + 7294/53*e^2 + 2581/53, 29/53*e^6 + 471/53*e^4 + 1634/53*e^2 + 703/53, -87/53*e^6 - 1572/53*e^4 - 6757/53*e^2 - 2692/53, 52/53*e^6 + 914/53*e^4 + 3809/53*e^2 + 1012/53, 67/53*e^6 + 1143/53*e^4 + 4603/53*e^2 + 1838/53, -40/53*e^6 - 752/53*e^4 - 3619/53*e^2 - 966/53, -141/53*e^7 - 2513/53*e^5 - 11057/53*e^3 - 6291/53*e, 219/106*e^7 + 1942/53*e^5 + 16691/106*e^3 + 7809/106*e, 15/53*e^6 + 229/53*e^4 + 741/53*e^2 - 1612/53, -32/53*e^6 - 538/53*e^4 - 2238/53*e^2 - 211/53, 273/106*e^7 + 2439/53*e^5 + 21309/106*e^3 + 9447/106*e, 43/106*e^7 + 330/53*e^5 + 1573/106*e^3 - 4561/106*e, 43/53*e^7 + 713/53*e^5 + 2527/53*e^3 - 480/53*e, 71/53*e^7 + 1250/53*e^5 + 5479/53*e^3 + 3673/53*e, -2/53*e^7 - 27/53*e^5 + 198/53*e^3 + 2236/53*e, 261/106*e^7 + 2358/53*e^5 + 21119/106*e^3 + 11945/106*e, -31/53*e^6 - 604/53*e^4 - 2867/53*e^2 - 428/53, 24/53*e^6 + 483/53*e^4 + 2553/53*e^2 + 675/53, -329/106*e^7 - 2923/53*e^5 - 25411/106*e^3 - 12453/106*e, -128/53*e^7 - 2311/53*e^5 - 10489/53*e^3 - 7363/53*e, 35/106*e^7 + 276/53*e^5 + 1941/106*e^3 + 1097/106*e, 197/53*e^7 + 3481/53*e^5 + 14894/53*e^3 + 6594/53*e, 54/53*e^6 + 994/53*e^4 + 4459/53*e^2 + 2274/53, -68/53*e^6 - 1130/53*e^4 - 4186/53*e^2 - 1144/53, 56/53*e^6 + 1021/53*e^4 + 4314/53*e^2 - 15/53, -61/53*e^6 - 1115/53*e^4 - 4826/53*e^2 - 596/53, 161/53*e^7 + 2836/53*e^5 + 12204/53*e^3 + 6562/53*e, 152/53*e^7 + 2741/53*e^5 + 12459/53*e^3 + 8568/53*e, 66/53*e^7 + 1209/53*e^5 + 5444/53*e^3 + 2585/53*e, e^7 + 19*e^5 + 98*e^3 + 113*e, 188/53*e^7 + 3333/53*e^5 + 14248/53*e^3 + 5526/53*e, 165/106*e^7 + 1498/53*e^5 + 13981/106*e^3 + 11471/106*e, -42/53*e^6 - 779/53*e^4 - 3580/53*e^2 - 108/53, 132/53*e^6 + 2365/53*e^4 + 10464/53*e^2 + 3421/53, -e^7 - 17*e^5 - 62*e^3 + 27*e, -141/53*e^7 - 2513/53*e^5 - 11004/53*e^3 - 5973/53*e, 413/106*e^7 + 3702/53*e^5 + 33207/106*e^3 + 21467/106*e, -91/53*e^7 - 1573/53*e^5 - 6414/53*e^3 - 1824/53*e, -97/53*e^6 - 1601/53*e^4 - 6138/53*e^2 - 2324/53, -1/53*e^6 + 13/53*e^4 - 7/53*e^2 - 366/53, -8/53*e^6 - 108/53*e^4 - 427/53*e^2 - 66/53, 86/53*e^6 + 1532/53*e^4 + 6750/53*e^2 + 3015/53, 111/53*e^7 + 2002/53*e^5 + 9257/53*e^3 + 7554/53*e, 37/106*e^7 + 369/53*e^5 + 3757/106*e^3 + 2677/106*e, -102/53*e^6 - 1695/53*e^4 - 6279/53*e^2 - 656/53, -23/53*e^6 - 496/53*e^4 - 2758/53*e^2 - 1210/53, 66/53*e^6 + 1103/53*e^4 + 4225/53*e^2 + 889/53, 1/53*e^7 + 40/53*e^5 + 325/53*e^3 + 154/53*e, 50/53*e^7 + 887/53*e^5 + 3954/53*e^3 + 3195/53*e, -223/106*e^7 - 1969/53*e^5 - 16825/106*e^3 - 7047/106*e, 142/53*e^7 + 2500/53*e^5 + 10693/53*e^3 + 5014/53*e, -100/53*e^7 - 1774/53*e^5 - 7537/53*e^3 - 2680/53*e, -275/106*e^7 - 2373/53*e^5 - 19309/106*e^3 - 5727/106*e, -157/53*e^7 - 2782/53*e^5 - 11805/53*e^3 - 3561/53*e, -21/53*e^7 - 310/53*e^5 - 730/53*e^3 + 2013/53*e, 38/53*e^6 + 619/53*e^4 + 2280/53*e^2 - 455/53, 6/53*e^6 + 187/53*e^4 + 1261/53*e^2 + 606/53, 167/53*e^7 + 3023/53*e^5 + 13783/53*e^3 + 9500/53*e, 145/53*e^7 + 2567/53*e^5 + 10979/53*e^3 + 3780/53*e, -42/53*e^7 - 726/53*e^5 - 2732/53*e^3 + 1376/53*e, -37/53*e^7 - 685/53*e^5 - 3174/53*e^3 - 1882/53*e, 61/53*e^6 + 1062/53*e^4 + 4084/53*e^2 - 517/53, 11/53*e^6 + 175/53*e^4 + 607/53*e^2 - 532/53, -72/53*e^6 - 1343/53*e^4 - 5963/53*e^2 - 912/53, -87/53*e^6 - 1466/53*e^4 - 6015/53*e^2 - 2851/53, 18/53*e^7 + 296/53*e^5 + 762/53*e^3 - 2687/53*e, -164/53*e^7 - 2956/53*e^5 - 13444/53*e^3 - 9038/53*e, -168/53*e^7 - 3010/53*e^5 - 13313/53*e^3 - 7852/53*e, 268/53*e^7 + 4784/53*e^5 + 20956/53*e^3 + 11274/53*e, 161/53*e^7 + 2889/53*e^5 + 12840/53*e^3 + 7940/53*e, 182/53*e^7 + 3252/53*e^5 + 14418/53*e^3 + 8471/53*e, -87/53*e^6 - 1519/53*e^4 - 6386/53*e^2 - 3063/53, -104/53*e^7 - 1881/53*e^5 - 8519/53*e^3 - 5734/53*e, 229/53*e^7 + 4072/53*e^5 + 17609/53*e^3 + 7229/53*e, -551/106*e^7 - 4872/53*e^5 - 41487/106*e^3 - 16961/106*e, -250/53*e^7 - 4488/53*e^5 - 19982/53*e^3 - 11205/53*e]; heckeEigenvalues := AssociativeArray(); for i := 1 to #heckeEigenvaluesArray do heckeEigenvalues[primes[i]] := heckeEigenvaluesArray[i]; end for; ALEigenvalues := AssociativeArray(); ALEigenvalues[ideal] := 5/106*e^7 + 47/53*e^5 + 459/106*e^3 + 399/106*e; ALEigenvalues[ideal] := -5/106*e^7 - 47/53*e^5 - 459/106*e^3 - 399/106*e; // 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;