/* 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![2, 1, -5, -2, 1]; F := NumberField(g); ZF := Integers(F); NN := ideal; primesArray := [ [2, 2, -w], [3, 3, w - 1], [8, 2, w^3 - 2*w^2 - 5*w + 1], [13, 13, -w^2 + 2*w + 3], [17, 17, -w^2 + 3*w + 3], [17, 17, -w^2 + 2*w + 1], [27, 3, w^3 - w^2 - 6*w - 5], [29, 29, w^3 - 2*w^2 - 2*w + 1], [47, 47, w^3 - 2*w^2 - 4*w - 3], [49, 7, w^3 - 3*w^2 - 3*w + 1], [49, 7, -2*w^3 + 5*w^2 + 7*w - 3], [59, 59, -2*w^3 + 6*w^2 + 5*w - 7], [61, 61, 2*w^3 - 4*w^2 - 9*w - 3], [71, 71, w^3 - 3*w^2 - 3*w + 7], [73, 73, 2*w^3 - 6*w^2 - 3*w + 5], [73, 73, w^3 - 3*w^2 - 4*w + 5], [83, 83, -2*w^3 + 5*w^2 + 8*w - 3], [89, 89, -2*w^3 + 6*w^2 + 4*w - 7], [89, 89, w^3 - 2*w^2 - 6*w + 3], [97, 97, -3*w - 1], [101, 101, w^2 - w - 5], [101, 101, -w^3 + w^2 + 6*w + 7], [103, 103, w^3 - 3*w^2 - 2*w - 1], [107, 107, -w^3 + w^2 + 8*w - 1], [109, 109, -3*w^3 + 7*w^2 + 11*w - 7], [131, 131, w^2 - 4*w - 1], [131, 131, -2*w^2 + 2*w + 1], [131, 131, w^3 - w^2 - 7*w - 1], [131, 131, -w^3 + 4*w^2 - 5], [137, 137, 2*w^3 - 5*w^2 - 9*w + 7], [139, 139, w^3 - 8*w - 7], [139, 139, -3*w + 1], [149, 149, -3*w^3 + 8*w^2 + 8*w - 3], [149, 149, -2*w^3 + 3*w^2 + 12*w + 3], [151, 151, 2*w^3 - 4*w^2 - 10*w + 1], [151, 151, -w^3 + 3*w^2 + w - 5], [151, 151, -2*w^3 + 6*w^2 + 5*w - 11], [151, 151, 2*w - 3], [157, 157, 2*w^3 - 7*w^2 + 1], [163, 163, -w^3 + w^2 + 6*w + 1], [173, 173, 3*w^3 - 9*w^2 - 7*w + 9], [173, 173, -2*w^3 + 7*w^2 + 2*w - 5], [181, 181, -w^2 + 5*w + 3], [191, 191, -3*w^3 + 8*w^2 + 10*w - 7], [193, 193, -2*w^3 + 5*w^2 + 5*w - 3], [193, 193, 2*w^2 - 4*w - 5], [223, 223, 2*w^3 - 4*w^2 - 9*w + 3], [227, 227, -3*w^3 + 7*w^2 + 12*w - 9], [227, 227, 2*w^3 - 4*w^2 - 7*w - 1], [241, 241, w^2 - 2*w - 7], [257, 257, -2*w^3 + 7*w^2 + 2*w - 9], [257, 257, w^2 - 4*w - 5], [263, 263, -3*w^3 + 7*w^2 + 12*w - 3], [269, 269, w^3 - 3*w^2 - 4*w + 7], [271, 271, 3*w^3 - 10*w^2 - 4*w + 7], [271, 271, -w^3 + 3*w^2 - 2*w - 1], [277, 277, -2*w^3 + 6*w^2 + 4*w - 9], [277, 277, -6*w^3 + 14*w^2 + 22*w - 5], [281, 281, -2*w^3 + 6*w^2 + 2*w - 5], [289, 17, w^3 - 2*w^2 + 3], [293, 293, w^3 - 3*w^2 + w - 1], [293, 293, 3*w^3 - 8*w^2 - 8*w + 11], [311, 311, -w^3 + 4*w^2 - 2*w - 5], [313, 313, 2*w^2 - 4*w - 11], [313, 313, 3*w^3 - 7*w^2 - 11*w + 1], [317, 317, -w^3 + w^2 + 5*w - 1], [317, 317, -2*w^3 + 4*w^2 + 10*w - 7], [331, 331, w^3 - 5*w^2 - 3*w + 3], [331, 331, -3*w^3 + 6*w^2 + 14*w - 3], [337, 337, 3*w^3 - 7*w^2 - 10*w + 1], [337, 337, w^3 - w^2 - 5*w - 9], [353, 353, -w^3 + 2*w^2 + 1], [359, 359, -2*w^2 + 4*w - 1], [359, 359, 4*w^3 - 10*w^2 - 14*w + 7], [367, 367, -4*w^3 + 10*w^2 + 13*w - 9], [379, 379, -2*w^3 + 8*w^2 + w - 17], [379, 379, w^3 - 4*w^2 - 2*w + 9], [397, 397, 2*w^3 - 5*w^2 - 9*w + 1], [401, 401, w^2 - 5], [401, 401, 2*w^3 - 5*w^2 - 8*w + 1], [431, 431, -3*w^3 + 3*w^2 + 21*w + 13], [439, 439, -2*w^2 + 3*w + 13], [449, 449, 2*w^3 - 4*w^2 - 7*w - 5], [449, 449, 5*w^3 - 10*w^2 - 22*w - 1], [457, 457, 2*w^3 - 7*w^2 - 5*w + 5], [461, 461, 3*w^3 - 5*w^2 - 14*w - 1], [461, 461, -2*w^3 + 3*w^2 + 11*w + 1], [463, 463, 2*w^3 - 4*w^2 - 6*w + 1], [463, 463, 2*w^3 - 5*w^2 - 5*w + 9], [479, 479, 2*w^2 - 5*w - 1], [509, 509, -6*w^3 + 10*w^2 + 31*w + 11], [523, 523, -w^2 + 5*w + 1], [523, 523, 3*w^3 - 6*w^2 - 14*w - 3], [547, 547, -3*w^3 + 6*w^2 + 12*w - 1], [563, 563, 2*w^2 - 6*w - 7], [563, 563, -w^3 + 2*w^2 + 4*w + 5], [571, 571, w^2 - 2*w + 3], [571, 571, 3*w^2 - 8*w - 9], [577, 577, -3*w^3 + 7*w^2 + 10*w - 3], [577, 577, -2*w^2 + 5*w - 1], [601, 601, w^3 - 2*w^2 - 8*w + 7], [601, 601, 4*w^3 - 9*w^2 - 17*w + 3], [607, 607, -3*w^3 + 6*w^2 + 12*w + 1], [613, 613, -2*w^3 + 6*w^2 + 6*w - 3], [617, 617, 3*w^3 - 9*w^2 - 6*w + 11], [617, 617, -2*w^3 + 5*w^2 + 7*w + 3], [619, 619, -3*w^3 + 5*w^2 + 17*w + 1], [625, 5, -5], [631, 631, -3*w^2 + 6*w + 11], [643, 643, -2*w^3 + 7*w^2 + 4*w - 7], [643, 643, -2*w^3 + 7*w^2 + 3*w - 7], [653, 653, 3*w^3 - 7*w^2 - 11*w - 1], [661, 661, 2*w^2 - 7*w - 3], [661, 661, -w^3 + 5*w^2 - w - 5], [673, 673, -3*w^3 + 9*w^2 + 8*w - 7], [677, 677, -4*w^3 + 9*w^2 + 15*w - 3], [677, 677, -2*w^3 + 7*w^2 - 7], [683, 683, w^3 - 4*w^2 - 1], [683, 683, w^3 - 4*w^2 - 2*w + 13], [709, 709, -3*w^3 + 9*w^2 + 5*w - 9], [709, 709, 4*w^3 - 12*w^2 - 7*w + 5], [719, 719, -2*w^3 + 7*w^2 + 4*w - 11], [719, 719, -5*w^3 + 8*w^2 + 28*w + 9], [733, 733, -3*w^3 + 8*w^2 + 6*w - 3], [733, 733, -4*w^3 + 8*w^2 + 20*w + 1], [739, 739, -4*w^3 + 8*w^2 + 20*w - 7], [739, 739, -w^2 - 4*w + 1], [751, 751, 3*w^3 - 7*w^2 - 14*w + 1], [757, 757, -4*w^3 + 3*w^2 + 29*w + 21], [761, 761, -w^3 + 5*w^2 - 2*w - 9], [773, 773, -w^2 + 4*w - 5], [787, 787, 3*w^3 - 5*w^2 - 17*w - 3], [787, 787, -w^3 + 3*w^2 - 4*w + 1], [787, 787, -3*w^3 + 8*w^2 + 10*w - 5], [787, 787, 4*w^3 - 8*w^2 - 18*w - 3], [809, 809, -2*w^3 + 7*w^2 + 3*w - 9], [811, 811, -3*w^2 + 5*w + 15], [811, 811, -4*w^3 + 11*w^2 + 12*w - 9], [821, 821, -7*w^3 + 15*w^2 + 29*w - 3], [823, 823, w^2 + 3], [827, 827, -2*w^3 + 4*w^2 + 11*w - 3], [827, 827, 6*w^3 - 12*w^2 - 26*w - 3], [829, 829, -3*w^3 + 7*w^2 + 9*w - 5], [859, 859, 3*w^2 - 6*w - 7], [859, 859, -w^3 + w^2 + 2*w + 3], [863, 863, w^3 - 3*w^2 - 2*w - 3], [877, 877, -2*w^3 + w^2 + 14*w + 7], [877, 877, 5*w^3 - 11*w^2 - 22*w + 3], [877, 877, 4*w^3 - 12*w^2 - 10*w + 13], [877, 877, -2*w^3 + 6*w^2 - 5], [883, 883, 2*w^3 - 4*w^2 - 12*w + 7], [887, 887, -5*w^3 + 13*w^2 + 15*w - 7], [947, 947, w^3 + w^2 - 10*w - 9], [947, 947, -4*w^3 + 13*w^2 + 8*w - 21], [953, 953, 3*w - 5], [967, 967, -4*w^3 + 11*w^2 + 11*w - 7], [967, 967, 5*w^3 - 15*w^2 - 7*w + 7], [971, 971, -w^3 + w^2 + 9*w + 1], [977, 977, -6*w^3 + 11*w^2 + 28*w + 7], [983, 983, 3*w^3 - 9*w^2 - 3*w + 7], [997, 997, -4*w^3 + 14*w^2 + 5*w - 23], [1009, 1009, -3*w^3 + 11*w^2 + w - 13], [1009, 1009, -2*w^3 + 5*w^2 + 11*w - 1], [1013, 1013, w^3 - 5*w^2 + 3*w + 11], [1031, 1031, w^3 - 3*w^2 - 3*w - 3], [1033, 1033, -3*w^3 + 7*w^2 + 6*w - 5], [1061, 1061, -2*w^3 + 9*w^2 - 3*w - 15], [1063, 1063, 5*w^3 - 7*w^2 - 30*w - 11], [1069, 1069, -2*w^3 + 6*w^2 + 2*w - 7], [1091, 1091, 2*w^2 - 6*w - 9], [1091, 1091, 4*w^3 - 11*w^2 - 14*w + 17], [1093, 1093, -2*w^3 + w^2 + 16*w + 7], [1097, 1097, -4*w^3 + 12*w^2 + 11*w - 15], [1103, 1103, -2*w^3 + 2*w^2 + 11*w + 9], [1103, 1103, 3*w^3 - 7*w^2 - 13*w + 1], [1117, 1117, -5*w^3 + 7*w^2 + 27*w + 15], [1123, 1123, 2*w^3 - 5*w^2 - 10*w + 5], [1129, 1129, -5*w^3 + 9*w^2 + 23*w + 7], [1129, 1129, 6*w^3 - 10*w^2 - 32*w - 11], [1129, 1129, -3*w^3 + 7*w^2 + 9*w - 3], [1129, 1129, -5*w^3 + 11*w^2 + 19*w - 9], [1153, 1153, 4*w^2 - 7*w - 19], [1163, 1163, -2*w^3 + 3*w^2 + 14*w + 5], [1193, 1193, -3*w^3 + 9*w^2 + 9*w - 7], [1201, 1201, -w^2 + 6*w - 1], [1217, 1217, 2*w^3 - 2*w^2 - 14*w - 3], [1223, 1223, -w^3 + 3*w^2 + 2*w - 9], [1229, 1229, 4*w^3 - 9*w^2 - 16*w + 1], [1231, 1231, 5*w^2 - 10*w - 21], [1231, 1231, -2*w^3 + 7*w^2 + 5*w - 3], [1249, 1249, -2*w^3 + 5*w^2 + 3*w - 7], [1259, 1259, -2*w^3 + 3*w^2 + 10*w - 1], [1277, 1277, -4*w^3 + 8*w^2 + 16*w + 3], [1277, 1277, 3*w^3 - 7*w^2 - 8*w + 1], [1283, 1283, -3*w^3 + 6*w^2 + 16*w + 1], [1289, 1289, 3*w^3 - 9*w^2 - 6*w + 13], [1289, 1289, -2*w^2 + 8*w - 1], [1289, 1289, -5*w^3 + 15*w^2 + 13*w - 21], [1289, 1289, 2*w^3 - 6*w^2 - 5*w + 13], [1291, 1291, -7*w^3 + 11*w^2 + 39*w + 13], [1303, 1303, 4*w^3 - 10*w^2 - 17*w + 13], [1307, 1307, 2*w^3 - 8*w^2 + 7], [1319, 1319, -w^3 + 5*w^2 + w - 7], [1319, 1319, -5*w^3 + 10*w^2 + 24*w - 3], [1327, 1327, -2*w^3 + 3*w^2 + 11*w - 1], [1367, 1367, -4*w^3 + 11*w^2 + 8*w - 7], [1367, 1367, 3*w^3 - 7*w^2 - 12*w - 1], [1373, 1373, 4*w^3 - 11*w^2 - 7*w + 7], [1373, 1373, 3*w^2 - 4*w - 9], [1381, 1381, -w^3 + 5*w^2 - w - 17], [1381, 1381, -4*w^3 + 8*w^2 + 20*w - 5], [1399, 1399, w^2 - 2*w - 9], [1399, 1399, -6*w^3 + 10*w^2 + 30*w + 9], [1423, 1423, -6*w^3 + 16*w^2 + 16*w - 15], [1427, 1427, 3*w^3 - 3*w^2 - 21*w - 7], [1429, 1429, -8*w^3 + 12*w^2 + 43*w + 17], [1429, 1429, 5*w^3 - 14*w^2 - 10*w + 5], [1433, 1433, -w^3 + 5*w^2 - 9], [1433, 1433, -w^3 + w^2 + w + 3], [1433, 1433, 4*w^3 - 14*w^2 - 3*w + 9], [1433, 1433, -w^3 + 5*w^2 - 5*w + 3], [1439, 1439, -2*w^3 + 8*w^2 - w - 13], [1451, 1451, 3*w^2 - 5*w - 9], [1459, 1459, -3*w^3 + 13*w^2 + w - 7], [1459, 1459, -4*w^3 + 11*w^2 + 13*w - 9], [1471, 1471, -5*w^3 + 8*w^2 + 28*w + 7], [1481, 1481, 3*w^3 - 6*w^2 - 10*w - 1], [1483, 1483, w^3 - 8*w - 13], [1489, 1489, 2*w^3 - 4*w^2 - 2*w + 5], [1499, 1499, -w^3 + 2*w^2 + 8*w - 1], [1511, 1511, 3*w^2 - 4*w - 7], [1511, 1511, -6*w^3 + 15*w^2 + 19*w - 15], [1543, 1543, 4*w^3 - 3*w^2 - 28*w - 17], [1543, 1543, 4*w - 5], [1549, 1549, 3*w^2 - 7*w - 3], [1553, 1553, 3*w^3 - 10*w^2 - 4*w + 15], [1553, 1553, -w^3 - 3*w^2 + 14*w + 21], [1567, 1567, -6*w^3 + 14*w^2 + 22*w - 7], [1571, 1571, -w^3 - w^2 + 10*w + 17], [1579, 1579, -w^3 + 6*w + 17], [1579, 1579, 3*w^3 - 9*w^2 - 7*w + 3], [1597, 1597, 2*w^3 - w^2 - 18*w - 5], [1607, 1607, w^3 - 5*w^2 + 17], [1609, 1609, -3*w^3 + 7*w^2 + 14*w - 5], [1621, 1621, w^2 - 3*w - 9], [1627, 1627, 5*w^3 - 13*w^2 - 14*w + 3], [1627, 1627, -w^3 + 6*w^2 - 4*w + 1], [1663, 1663, 6*w^3 - 11*w^2 - 31*w - 5], [1663, 1663, 6*w^3 - 18*w^2 - 15*w + 25], [1667, 1667, -w^3 + 2*w^2 + 4*w - 7], [1667, 1667, 4*w^3 - 14*w^2 - 7*w + 31], [1669, 1669, 3*w^2 - 8*w - 11], [1669, 1669, -4*w^3 + 11*w^2 + 10*w - 15], [1681, 41, 6*w^3 - 11*w^2 - 31*w + 1], [1681, 41, 4*w^3 - 13*w^2 - 8*w + 9], [1693, 1693, w^3 - w^2 - 7*w - 9], [1693, 1693, w^3 - 2*w^2 - 3], [1693, 1693, w^3 + w^2 - 11*w - 5], [1693, 1693, -2*w^3 + 4*w^2 + 2*w + 1], [1697, 1697, -4*w^3 + 12*w^2 + w - 7], [1699, 1699, -7*w^3 + 19*w^2 + 19*w - 17], [1699, 1699, 6*w^3 - 14*w^2 - 21*w + 3], [1709, 1709, -w^3 + 8*w + 1], [1709, 1709, 2*w^3 - 4*w^2 - 6*w - 5], [1723, 1723, -2*w^3 + 7*w^2 + w - 11], [1723, 1723, 4*w^3 - 9*w^2 - 14*w + 5], [1733, 1733, -w^3 + w^2 + 3*w - 5], [1733, 1733, -w^2 - 5*w + 1], [1741, 1741, -3*w^3 + 10*w^2 + 6*w - 15], [1741, 1741, -3*w^3 + 9*w^2 + 4*w - 9], [1747, 1747, 2*w^3 - 2*w^2 - 13*w - 3], [1753, 1753, 4*w^2 - 8*w - 15], [1753, 1753, -w^3 + 7*w^2 - 4*w - 27], [1759, 1759, -7*w^3 + 17*w^2 + 27*w - 21], [1801, 1801, -3*w^3 + 7*w^2 + 6*w - 3], [1811, 1811, -4*w^2 + 7*w + 5], [1811, 1811, w^3 - w^2 - 4*w - 7], [1823, 1823, -7*w^3 + 21*w^2 + 18*w - 31], [1831, 1831, -2*w^2 + 3*w - 3], [1847, 1847, 5*w^3 - 15*w^2 - 12*w + 17], [1861, 1861, -4*w^3 + 8*w^2 + 14*w - 5], [1861, 1861, -4*w^2 + 9*w + 11], [1871, 1871, -4*w^3 + 10*w^2 + 11*w - 3], [1873, 1873, -2*w^3 + 7*w^2 + 6*w - 3], [1879, 1879, w^3 - 7*w^2 + 8*w + 11], [1879, 1879, -2*w^3 + 19*w + 15], [1889, 1889, -2*w^3 + 6*w^2 + w - 7], [1933, 1933, 2*w^3 - 3*w^2 - 12*w + 3], [1949, 1949, -4*w^3 + 15*w^2 + 4*w - 7], [1951, 1951, 2*w^2 + 4*w - 5], [1973, 1973, 6*w^3 - 14*w^2 - 25*w + 7], [1993, 1993, -4*w^3 + 11*w^2 + 6*w - 5], [1997, 1997, -4*w^3 + 9*w^2 + 14*w - 3], [1997, 1997, 5*w^3 - 11*w^2 - 20*w + 9], [1999, 1999, -3*w^3 + 11*w^2 + 3*w - 19]]; primes := [ideal : I in primesArray]; heckePol := x; K := Rationals(); e := 1; heckeEigenvaluesArray := [-1, -1, 1, -4, 4, 0, 2, -6, -4, -6, -10, 4, -10, -8, 6, 12, -6, -14, 10, -12, 2, 4, -8, -12, 10, 16, 0, 8, 4, 2, -18, 20, 6, -20, -8, -8, 0, 0, 18, 14, 16, 26, 10, -18, -12, 6, 8, -8, 2, -14, -18, -18, 6, -22, -14, 16, 14, -2, 0, 6, 6, -30, -18, -16, -30, -12, 30, -20, 28, 28, 30, -32, 24, 6, 24, -10, 10, 12, 0, -10, -36, 26, 18, -26, -4, 30, -30, -26, 16, 8, 12, 4, -4, -38, -44, -20, 44, 0, -10, -16, 10, -18, 16, 20, -2, 22, 42, -46, -6, -8, 28, -30, -18, -8, 32, -46, 34, -20, 14, 2, -34, -18, -36, 22, 6, -40, 52, -32, 26, -34, 30, -24, -32, -20, 8, -56, -12, 20, -54, -24, -32, -48, 34, -56, 28, -36, -6, -52, 38, 8, -28, 16, -12, 12, -26, 32, 4, 54, -32, -22, 50, -22, -34, -4, 32, -60, -38, -36, -50, -32, 24, 58, 42, -44, -20, 2, -28, -14, -22, 32, 10, -36, 24, 42, -24, 2, 40, -6, -32, -56, 8, -28, -30, 26, -16, -14, 40, 4, 40, -28, -36, -12, -32, -24, -22, -60, 22, -58, -18, -22, -28, 32, -8, 4, 34, -2, -4, 18, -20, 58, 74, -16, 0, -4, -44, -4, 54, -28, -68, -68, 12, 36, 4, 30, 4, -18, -14, -56, -60, -12, -60, 42, 68, -2, 60, 44, 20, 64, -4, -14, 20, -62, 34, 66, 34, 30, -62, 54, 30, -26, -44, 14, -8, -14, -14, -40, -32, 46, 14, 42, -14, -44, -54, -66, -10, -44, -20, 20, 40, -12, 16, -10, -46, 62, 8, 8, -14, 46, 50, 70, -58, -4, -50, -18, -8]; heckeEigenvalues := AssociativeArray(); for i := 1 to #heckeEigenvaluesArray do heckeEigenvalues[primes[i]] := heckeEigenvaluesArray[i]; end for; ALEigenvalues := AssociativeArray(); ALEigenvalues[ideal] := 1; 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;