/* This code can be loaded, or copied and paste using cpaste, into Sage. It will load the data associated to the HMF, including the field, level, and Hecke and Atkin-Lehner eigenvalue data. */ P. = PolynomialRing(QQ) g = P([10, -9, -1, 1]) F. = NumberField(g) ZF = F.ring_of_integers() NN = ZF.ideal([16, 4, -w^2 - w + 7]) primes_array = [ [2, 2, w^2],\ [4, 2, w^2 + w + 1],\ [5, 5, w],\ [11, 11, 10*w + 4],\ [13, 13, 12*w^2 + w + 7],\ [17, 17, w + 1],\ [17, 17, 16*w^2 + 16],\ [17, 17, 16*w^2 + 16*w + 8],\ [19, 19, 18*w^2 + 18*w + 1],\ [19, 19, -w^2 + 7],\ [25, 5, 4*w^2 + w + 4],\ [27, 3, -3],\ [29, 29, w + 7],\ [41, 41, 40*w^2 + 18],\ [43, 43, w^2 - 11],\ [47, 47, 2*w^2 + 2*w - 13],\ [59, 59, w^2 - 3],\ [73, 73, w^2 + 2*w - 1],\ [79, 79, w^2 + 37],\ [97, 97, w^2 + 2*w - 7],\ [101, 101, 3*w^2 + 2*w - 21],\ [103, 103, 2*w^2 + 2*w - 11],\ [103, 103, w + 85],\ [107, 107, w^2 + 88],\ [109, 109, 2*w + 7],\ [109, 109, w^2 + 108*w + 47],\ [109, 109, w + 93],\ [113, 113, -2*w - 1],\ [113, 113, 112*w^2 + w + 59],\ [113, 113, w^2 + 112*w + 70],\ [121, 11, 10*w^2 + 8*w + 8],\ [157, 157, 2*w^2 + w - 13],\ [167, 167, w^2 + 153],\ [169, 13, 12*w^2 + 9*w + 2],\ [179, 179, w^2 + 112],\ [191, 191, w^2 + 165],\ [193, 193, w^2 + w + 36],\ [193, 193, w^2 + 2*w - 11],\ [193, 193, w^2 + w + 121],\ [197, 197, 2*w^2 + 2*w - 9],\ [199, 199, w^2 - 13],\ [223, 223, w + 187],\ [227, 227, 2*w^2 - 13],\ [227, 227, w^2 + w + 99],\ [227, 227, w^2 + 60],\ [233, 233, 232*w^2 + 178],\ [241, 241, w + 85],\ [241, 241, w^2 + 240*w + 104],\ [241, 241, w - 7],\ [251, 251, 4*w^2 + 3*w - 27],\ [263, 263, w^2 + 116],\ [269, 269, 268*w + 104],\ [271, 271, w + 72],\ [277, 277, w^2 + 276*w + 88],\ [283, 283, w^2 + 4*w - 3],\ [307, 307, 2*w^2 - w - 11],\ [307, 307, w + 133],\ [307, 307, 306*w^2 + w + 284],\ [317, 317, 2*w^2 - 4*w - 3],\ [337, 337, w^2 - 2*w - 13],\ [343, 7, -7],\ [347, 347, 3*w - 11],\ [347, 347, -3*w - 1],\ [347, 347, 3*w + 7],\ [349, 349, 348*w^2 + 348*w + 191],\ [353, 353, 2*w^2 + 2*w - 19],\ [359, 359, w^2 + 4*w - 1],\ [359, 359, w^2 + 210],\ [359, 359, 358*w^2 + 346],\ [373, 373, 2*w^2 + w - 9],\ [379, 379, 3*w^2 + 2*w - 29],\ [379, 379, w^2 + w + 148],\ [379, 379, 378*w^2 + 378*w + 323],\ [389, 389, w^2 + w + 25],\ [397, 397, 396*w^2 + 118],\ [401, 401, w^2 - 2*w - 9],\ [409, 409, 4*w^2 - w - 33],\ [421, 421, 3*w^2 + 2*w - 19],\ [431, 431, -w^2 + 2*w + 17],\ [433, 433, 432*w^2 + 79],\ [433, 433, w^2 + 432*w + 7],\ [433, 433, w^2 - 2*w - 11],\ [443, 443, 4*w^2 + 2*w - 29],\ [457, 457, 2*w^2 + w - 23],\ [463, 463, 462*w^2 + 422],\ [479, 479, 2*w^2 - w - 9],\ [487, 487, 2*w^2 - 9],\ [487, 487, 2*w^2 - 2*w - 7],\ [487, 487, -2*w - 9],\ [499, 499, -5*w^2 - 4*w + 33],\ [503, 503, w^2 + 2*w - 17],\ [503, 503, 502*w^2 + 502*w + 499],\ [503, 503, 502*w^2 + 216],\ [509, 509, 2*w^2 - 7],\ [523, 523, w^2 + 104],\ [547, 547, 2*w^2 - 3*w - 11],\ [557, 557, 2*w^2 - 23],\ [571, 571, 570*w^2 + 176],\ [571, 571, 2*w^2 - w - 7],\ [571, 571, w^2 + 335],\ [577, 577, w - 9],\ [593, 593, 592*w^2 + w + 454],\ [601, 601, -w^2 - 3],\ [601, 601, 600*w^2 + 578],\ [601, 601, 600*w^2 + 45],\ [607, 607, w^2 + 360],\ [617, 617, 2*w^2 + 4*w - 13],\ [641, 641, 640*w^2 + w + 224],\ [653, 653, w + 511],\ [659, 659, 3*w^2 + 4*w - 19],\ [661, 661, w^2 + 4*w - 11],\ [661, 661, 660*w + 380],\ [661, 661, w^2 + 406],\ [673, 673, w^2 + w + 121],\ [677, 677, -3*w^2 + 2*w + 17],\ [691, 691, w^2 + 690*w + 451],\ [701, 701, -4*w^2 - 4*w + 27],\ [701, 701, 700*w^2 + 700*w + 286],\ [701, 701, w^2 + 700*w + 680],\ [709, 709, w^2 + w + 323],\ [709, 709, w^2 - 4*w - 3],\ [709, 709, w^2 + 708*w + 321],\ [719, 719, -w - 9],\ [727, 727, 726*w^2 + 126],\ [733, 733, 2*w^2 + 3*w - 17],\ [743, 743, w^2 + w + 556],\ [743, 743, 2*w^2 - 2*w - 17],\ [743, 743, w + 731],\ [751, 751, 750*w^2 + 750*w + 484],\ [761, 761, w^2 + 760*w + 725],\ [769, 769, w^2 + w + 442],\ [773, 773, 2*w - 11],\ [787, 787, 3*w^2 - 2*w - 23],\ [797, 797, w^2 + w + 454],\ [809, 809, w + 115],\ [821, 821, 2*w^2 - 2*w - 19],\ [821, 821, 2*w^2 + 3*w - 21],\ [821, 821, 4*w^2 + 3*w - 31],\ [823, 823, w^2 + 822*w + 164],\ [839, 839, w^2 + 436],\ [841, 29, w^2 + 21*w + 18],\ [853, 853, 852*w + 654],\ [853, 853, 3*w^2 - 19],\ [853, 853, 852*w^2 + 787],\ [857, 857, 3*w^2 + 8*w - 9],\ [859, 859, 858*w^2 + 85],\ [863, 863, 2*w^2 + 5*w - 13],\ [863, 863, 862*w^2 + 862*w + 92],\ [863, 863, w^2 + 862*w + 118],\ [877, 877, 876*w^2 + 876*w + 132],\ [877, 877, 2*w^2 - 4*w - 9],\ [877, 877, 876*w^2 + w + 641],\ [881, 881, -4*w^2 - w + 29],\ [883, 883, w + 163],\ [883, 883, 4*w + 9],\ [883, 883, w + 496],\ [887, 887, w^2 + 886*w + 311],\ [907, 907, 3*w - 13],\ [919, 919, w^2 + w + 131],\ [937, 937, 4*w^2 - 29],\ [941, 941, 4*w^2 + 5*w - 17],\ [947, 947, 3*w^2 - 2*w - 31],\ [953, 953, w^2 + w + 603],\ [967, 967, 2*w^2 - 3*w - 13],\ [977, 977, -2*w^2 - 7*w + 13],\ [983, 983, 982*w^2 + w + 923],\ [991, 991, -4*w^2 + 2*w + 31],\ [997, 997, w + 645]] primes = [ZF.ideal(I) for I in primes_array] heckePol = x^2 - 2*x - 1 K. = NumberField(heckePol) hecke_eigenvalues_array = [e, 0, 2*e - 2, -2*e + 4, -2*e, -2*e + 2, -2*e - 2, -4*e + 4, 2*e - 6, -6, 2*e + 2, 2, -4*e + 4, 2*e + 4, 0, 0, -4*e - 2, -6*e, 6*e - 8, 6*e - 4, 8*e - 14, -8*e + 6, 6*e - 16, -2*e - 2, 6*e - 12, 2*e - 10, -2*e + 18, 4*e + 6, 6*e - 18, -4*e, 10*e - 14, -6*e - 6, -6*e, 6*e + 8, 6*e - 12, 10*e + 2, -12, 6*e + 12, -2*e + 24, 8*e - 10, -4*e - 12, 2, 8*e - 12, -12*e + 18, 6*e, 10*e - 12, 4*e + 16, -4*e + 8, 8*e - 10, -4*e + 8, 4*e - 6, -10*e - 6, -6*e - 12, 8*e - 12, -12*e + 8, -4, -6*e + 14, 6, -6*e, -12*e - 2, 12*e - 22, 4*e - 8, -4*e - 26, 4*e + 8, 6*e + 2, -2*e + 2, 4*e - 26, -10*e + 20, 2*e - 24, -6*e + 18, -8, 12*e - 22, 10*e - 12, 2*e - 2, -18*e + 22, 8*e - 2, -14*e + 6, 6*e - 14, 8*e - 12, -18*e + 22, -18*e + 20, 18*e - 34, 4*e - 16, 12*e - 30, -6*e + 12, -4*e + 10, -4, -34, -8*e + 28, -8*e - 8, 20*e - 16, 26*e - 24, 2*e + 22, 10*e - 16, 18, 12*e - 12, 22*e - 34, -4*e + 26, -36, -22*e + 30, -10*e - 18, -8*e + 16, -10*e + 2, -18*e + 22, -6*e + 12, -18*e + 12, 4*e + 6, 18*e - 18, 2*e + 26, -4*e - 16, 6*e + 18, -12*e + 12, -10*e + 2, -12, -24*e + 30, 8*e - 10, -14*e + 8, 10*e - 20, -4*e - 8, 26*e - 18, 6*e - 20, -10*e + 14, -16*e + 6, -8*e - 6, -2*e + 42, -22*e + 42, -12*e + 48, -2*e + 44, -6*e + 36, 18*e - 30, -6*e + 48, 22*e - 36, -20*e + 28, 8*e - 20, 16*e - 32, 6*e - 36, 2*e - 26, 18, -6*e - 20, 12*e + 6, 4*e + 36, 40, 2*e - 40, 18*e - 40, 18*e, 6*e + 28, -8*e - 34, -18*e + 48, -14*e + 52, -6*e + 6, 24*e - 6, 22*e - 6, 14*e, 30*e - 32, -16*e + 44, -34*e + 32, 10*e - 8, -26, -16*e - 18, 12*e + 22, 2*e + 20, 16*e + 8, 2*e - 20, -28, 22*e - 10, 6*e - 6, -24*e + 16, 6*e + 8] hecke_eigenvalues = {} for i in range(len(hecke_eigenvalues_array)): hecke_eigenvalues[primes[i]] = hecke_eigenvalues_array[i] AL_eigenvalues = {} AL_eigenvalues[ZF.ideal([4, 2, w^2 + w + 1])] = 1 # EXAMPLE: # pp = ZF.ideal(2).factor()[0][0] # hecke_eigenvalues[pp]