
# q-expansion of newform 660.4.a.h, downloaded from the LMFDB on 30 April 2026.

# We generate the q-expansion using the Hecke eigenvalues a_p at the primes.
# Each a_p is given as a linear combination
# of the following basis for the coefficient ring.

def make_data():

    from sage.all import prod, floor, prime_powers, gcd, QQ, primes_first_n, next_prime, RR

    def discrete_log(elts, gens, mod):
        # algorithm 2.2, page 16 of https://arxiv.org/abs/0903.2785
        def table_gens(gens, mod):
            T = [1]
            n = len(gens)
            r = [None]*n
            s = [None]*n
            for i in range(n):
                beta = gens[i]
                r[i] = 1
                N = len(T)
                while beta not in T:
                    for Tj in T[:N]:
                        T.append((beta*Tj) % mod)
                    beta = (beta*gens[i]) % mod
                    r[i] += 1
                s[i] = T.index(beta)
            return T, r, s
        T, r, s = table_gens(gens, mod)
        n = len(gens)
        N = [ prod(r[:j]) for j in range(n) ]
        Z = lambda s: [ (floor(s/N[j]) % r[j]) for j in range(n)]
        return [Z(T.index(elt % mod)) for elt in elts]
    def extend_multiplicatively(an):
        for pp in prime_powers(len(an)-1):
            for k in range(1, (len(an) - 1)//pp + 1):
                if gcd(k, pp) == 1:
                    an[pp*k] = an[pp]*an[k]
    from sage.all import PolynomialRing, NumberField, ZZ
    R = PolynomialRing(QQ, "x")
    f = R(poly_data)
    K = NumberField(f, "a")
    betas = [K([c/ZZ(den) for c in num]) for num, den in basis_data]
    convert_elt_to_field = lambda elt: sum(c*beta for c, beta in zip(elt, betas))
    # convert aps to K elements
    primes = primes_first_n(len(aps_data))
    good_primes = [p for p in primes if not p.divides(level)]
    aps = map(convert_elt_to_field, aps_data)
    if not hecke_ring_character_values:
        # trivial character
        char_values = dict(zip(good_primes, [1]*len(good_primes)))
    else:
        gens = [elt[0] for elt in hecke_ring_character_values]
        gens_values = [convert_elt_to_field(elt[1]) for elt in hecke_ring_character_values]
        char_values = dict([(
            p,prod(g**k for g, k in zip(gens_values, elt)))
            for p, elt in zip(good_primes, discrete_log(good_primes, gens, level))
            ])
    an_list_bound = next_prime(primes[-1])
    an = [0]*an_list_bound
    an[1] = 1
    
    from sage.all import PowerSeriesRing
    PS = PowerSeriesRing(K, "q")
    for p, ap in zip(primes, aps):
        if p.divides(level):
            euler_factor = [1, -ap]
        else:
            euler_factor = [1, -ap, p**(weight - 1) * char_values[p]]
        k = RR(an_list_bound).log(p).floor() + 1
        foo = (1/PS(euler_factor)).padded_list(k)
        for i in range(1, k):
            an[p**i] = foo[i]
    extend_multiplicatively(an)
    return PS(an)
level = 660
weight = 4
poly_data = [-2900, -1722, -248, 0, 1]

# The entries in the following list give a basis for the
# coefficient ring in terms of a root of the defining polynomial above.
# Each line consists of the coefficients of the numerator, and a denominator.
basis_data  = [[[1, 0, 0, 0], 1], [[0, 2, 0, 0], 1], [[145, -314, -22, 2], 15], [[-6860, -1886, -28, 8], 15]]

hecke_ring_character_values = None
aps_data = [[0, 0, 0, 0], [3, 0, 0, 0], [5, 0, 0, 0], [4, -1, 0, 0], [11, 0, 0, 0], [3, 0, 1, 0], [34, 0, 0, 1], [7, -2, -1, -1], [42, 3, -2, -1], [51, 4, 1, 1], [54, 0, -2, 0], [52, -1, 2, 1], [21, 10, -1, -3], [46, 3, 6, 2], [94, -2, -2, 2], [60, 13, 2, -3], [30, 7, 6, -1], [66, -8, -4, -2], [44, -27, -4, -5], [104, -3, -4, 3], [247, -8, 1, 6], [163, -6, -9, -1], [191, -35, -5, 3], [312, 24, 6, 6], [90, -39, 4, -9], [-343, -10, 15, 3], [360, 49, 12, -3], [-201, 7, 3, -7], [554, 6, -4, -2], [452, 17, -26, -1], [582, -13, -14, 4], [-562, -4, -6, -12], [-270, 18, 16, 14], [289, 24, 17, -3], [475, -16, -15, -13], [-29, 82, -1, 11], [1080, 72, 26, 20], [616, -99, 8, 9], [-819, 15, -19, 13], [-402, 76, 8, 9], [-282, 66, 10, -16], [-126, 29, 0, -19], [-1874, 8, -10, -6], [-235, -70, 71, 2], [-1346, 26, -8, -29], [1326, -76, -18, 14], [-1457, 54, 7, 19], [-108, 0, -44, -30], [-2847, 89, 5, 23], [3018, -56, -4, -8], [-3754, -32, 28, -9], [-1124, 10, -12, -12], [118, 86, -68, -4], [-1660, 65, -36, 15], [-2618, 160, -12, -30], [-3953, 17, 47, 27], [1802, 132, -12, 44], [-3975, 34, 5, -23], [-1877, -202, -7, 22], [-1671, -60, -69, 3], [-2030, -25, -70, -2], [-4146, 96, -16, -29], [-2432, -81, 24, 20], [-4190, -49, 70, 19], [-836, 89, -26, 59], [104, 155, -50, -43], [-3300, -76, -24, -10], [-1893, 178, 53, 76], [-2381, 29, 39, 35], [5430, 198, -24, -44], [-5400, 95, -46, -13], [-3770, -224, 70, 80], [-3080, -132, 72, 14], [-1625, 272, -99, -30], [3144, -18, 44, 50], [-4220, -101, 40, -13], [1712, -188, 74, 38], [-1682, -363, -108, -85], [3382, 18, -20, -66], [2276, 182, -22, -100], [-2562, 312, -102, -30], [7342, -95, 28, 9], [-3062, 388, -78, 18], [-3026, -347, 8, -25], [3803, 156, 175, 35], [-6436, -189, -84, -13], [10472, 274, 86, -28], [-1587, 414, -73, 8], [1663, -22, 149, 9], [-2424, 88, 136, 134], [4290, -71, -22, 45], [656, 202, -88, -28], [3216, 273, -44, -93], [-5714, -22, -54, -4], [4118, -318, -102, -144], [-303, 321, 9, 99], [11258, -418, 12, -6], [386, -150, -64, -54], [-5720, 289, 80, -16], [2994, -674, -12, 18], [5984, -345, 200, -2], [3272, 52, 10, -117], [-10317, 549, -1, -23], [13713, 330, 27, 75], [-5825, -136, 87, -21], [-11852, 214, 34, -54], [-3302, 311, 98, 51], [-5464, -46, 150, 141], [7524, -408, -68, -124], [6024, 432, -42, -32], [-2882, 255, 122, 72], [3239, -226, 21, -104], [1100, 467, 94, 125], [11240, -636, -28, -38], [-2634, -444, 6, 130], [572, 244, 82, -138], [584, 551, -96, 19], [17432, 325, -52, 17], [4738, 18, 84, 208], [-2400, 486, -100, -2], [-5266, -180, -16, -152], [-13451, -332, 63, -68], [-4540, -228, -178, -123], [-16786, -238, -22, -74], [10660, -78, -224, -230], [14629, 430, -269, -79], [-790, 465, 136, -115], [3770, -462, 58, 52], [-2480, -278, 176, 158], [1849, -706, 103, 242], [1799, 56, -217, 191], [6797, -173, -387, -269], [7694, 168, -58, 262], [-4956, 302, 214, 226], [6033, 204, 51, -39], [-19184, 106, -130, -22], [-1150, -312, 84, -46], [-11874, -131, 182, 232], [5272, -181, 414, 29], [-7629, -624, 221, 25], [1441, -516, 289, 169], [15127, 686, 325, 199], [10716, -67, -16, -195], [-781, -961, -65, -283], [-2314, 647, -92, 63], [2290, 41, -226, 57], [7887, -290, -243, 132], [-9358, -106, 96, 171], [-13368, -372, 20, -382], [25812, 321, 128, 37], [-5085, -766, -103, -120], [-2716, 26, -302, 104], [-1844, 902, -136, -26], [10943, -67, -417, -39], [-5160, -816, -444, -2], [13282, -1462, 194, -108], [-1189, 560, 127, 123], [-4, 290, -358, 184], [-49025, -104, 41, -100], [-787, 218, -197, 299], [-10494, -1236, -274, 40], [7404, 276, 426, -15], [-13654, -359, -234, -178], [-23568, 954, -140, 74], [16662, 1092, 420, 192], [18944, 697, 180, -119], [-24634, 668, -226, -100], [-3513, -974, 69, 60], [8654, 1056, 108, 42], [-13020, 471, -382, -77], [-15180, 722, -328, 134], [-754, -575, -108, -415], [7046, 652, -170, -144], [-19419, -1172, -521, -190], [8296, -916, -264, -414], [-5188, -1188, 202, -38], [-14513, 64, -153, -473], [17622, -318, 48, 6], [1062, 21, -558, -350], [-12716, 1334, -82, 16], [39040, 274, -152, 414], [-8988, -168, -264, -24], [24400, -176, 346, 204], [29076, -24, -110, 29], [-2210, -344, 534, 120], [1924, 274, -442, -320], [-28931, -1046, -277, 194], [11756, 62, -216, 220], [20724, -1412, 594, -66], [-6066, -756, 278, -86], [14500, -334, -478, -14], [18159, -679, 51, 115], [518, 464, -558, -182], [2256, -968, 50, -318], [-8329, 685, 323, -19], [35790, 672, 324, -138], [-644, -884, -62, 588], [18418, 792, 348, -136], [14864, 1484, 422, -71], [1189, -713, -539, 155], [-14475, 226, 547, 145], [23665, 380, 501, 237], [-27458, -1240, -16, -260], [-4030, -156, 368, -206], [-706, 428, -718, 22], [11344, 1327, 134, 325], [28676, -1296, -316, -308], [-34761, 729, 115, -235], [-12661, -644, 229, -303], [-9870, 1556, 534, 416], [-54841, -6, -79, 106], [7652, -216, -82, 222], [48672, -1670, 0, -42], [31362, 519, -870, -381], [-31094, -968, -198, 144], [16778, 1116, 288, 480], [14314, -157, 278, 106], [52003, -1414, -51, 125], [23032, -1852, 48, 152], [8334, 276, -840, 450], [22140, 198, 142, -438], [-10369, -994, -613, 71], [-1620, -1450, 90, 76], [32696, 263, 204, -173], [7537, -467, 213, -15], [-7536, -494, -430, 256], [-2370, -1406, 412, 322], [3626, -79, 846, 105], [29752, 1921, 284, -4], [-5176, -126, -564, -304], [-5186, 139, 140, -619], [36837, 484, 253, 449], [61857, 544, -763, -311], [42455, -596, -223, -259], [23048, 1151, 744, 397], [32685, -913, 821, -229], [-20190, -2027, 140, 37], [-11242, -992, 680, -97], [-22864, -2181, 208, -119], [-20712, -2058, -808, 286], [11124, -1343, 1348, 13], [-32103, -1446, -591, -695], [41160, -2552, 832, -52], [-15330, 67, -372, -69], [-31322, 1358, -324, -571], [-43478, 234, 354, -38], [-23040, -2161, 1028, 681], [28004, 979, -548, 657], [-301, 2796, -293, 347], [14869, 2779, 45, 387], [-20249, 1780, -971, 312], [-35489, 1600, 337, -529], [-26588, 3100, 156, -516], [15894, 2098, -188, -790], [-18096, 1968, 130, 455], [-30238, -414, -106, 12], [-23410, 1443, -252, 27], [40486, 581, -410, 134], [-20372, -1355, 1090, -517], [-19781, -1662, 253, 478], [-16110, -997, -1010, -482], [-12029, -1539, -705, 325], [8848, 940, -262, 284], [-26927, -1770, 639, 620], [-10072, -2279, -182, -243], [1466, 564, 822, 366], [-39860, 606, 534, 52], [25152, -3390, 262, 92], [-55548, 725, 188, -354], [-43424, 2246, -590, -269], [30938, -2086, 940, 42], [-15128, 242, -140, -784], [57084, 1960, -198, -672], [23755, 1848, -489, -589], [-38451, -1624, 183, 38], [-12528, -387, 84, 319], [-22186, 2208, 202, -596], [56042, -742, 348, -284], [40708, -162, 474, 122], [-72990, -858, 326, 22], [-3749, 3087, 171, 709], [-45990, 1582, 578, 46], [7573, 211, 725, 487], [20132, -1958, 518, -312], [-6836, 2179, 636, 94], [-37680, -428, -800, -212], [-3414, 2719, 140, 877], [-532, -3762, -1122, -673], [73182, 652, -690, 180], [-61617, -2298, -1495, 13], [20044, -716, -578, -310], [-27608, -3073, -400, -189], [-598, -1872, -304, 39], [-88482, -1600, 450, -152], [85913, 1910, 87, -164], [19483, -4354, 353, -27], [-58766, -1636, 858, -438], [-13374, -3318, -932, -352], [-15766, 2170, 902, -220], [-14488, -925, -864, -560], [3303, 2712, 177, 928], [-45740, -3116, 870, 735], [-3655, -1684, 1405, 117], [-40506, -3, 1294, 1301], [-10974, 322, -770, 122], [-87900, -173, 1166, 217], [14954, -2698, 1062, 510], [-73574, -404, -924, -236], [-9268, -2060, 852, 832], [-18997, -1636, -143, 150], [75085, -1629, 293, -7], [33004, 750, -1346, -1068], [62851, 2398, -467, -415], [-67052, 4671, 220, 409], [-45839, 5779, 49, 281], [-11290, 1748, 300, -362], [9644, 1394, 200, 838], [20242, -1682, 1282, -262], [23356, -1018, -630, 210], [-61619, -2232, -985, 101], [46435, -4622, -229, -457], [4112, 2544, -834, 948], [40357, 520, 395, 343], [-15876, -1909, -320, 13], [4758, -3108, -756, -765], [-108946, -1467, 168, -351], [59206, -2384, 930, -116], [17556, -1632, 320, 428], [-26397, -501, 483, -243], [-24130, 124, 1424, -283], [82564, 3112, 1302, 640], [750, -1526, 1984, 130], [7871, -2322, 1315, 335], [86757, -757, -1359, -1259], [-73555, 1706, -603, 157], [-13560, 2511, -2088, -297], [530, -122, -668, -1178], [-35074, -1282, 964, 197], [-50842, 321, -1400, -739], [55724, -4953, -80, 656], [-18410, 3285, -764, -1193], [19212, 1829, 742, 1053], [11867, 44, -47, 203], [-23936, 2306, -208, -572], [-38658, -1674, 1152, 732], [9304, -5298, 452, -940], [-9010, -3652, 512, 1316], [-37196, -2327, -932, 681], [-69808, -1234, 296, 550], [-28438, -2132, -1284, -14], [43689, 748, -1855, 397], [-84394, -2334, 516, -834], [107224, -1934, 226, -52], [-23810, 5269, 114, 526], [39614, -5254, 984, 364], [92834, 1624, 1288, 201], [139180, 297, -8, 447], [-3264, 3958, -300, -688], [-14972, 3660, 378, -23], [45012, 154, -508, 1698], [73053, 1504, -1541, -1054], [90855, -1788, 1137, 519], [24050, 1605, -202, 261], [29908, -954, 328, 528], [79624, 3908, 2332, 620], [-18792, -2750, 1742, -542], [118044, 2922, -682, -1259], [73664, -2511, 996, 714], [-18740, -546, 114, 650], [17710, -4929, 94, 111], [-5300, 4242, -576, -1792], [44805, 5175, 461, -245], [-77203, -4176, -405, -247], [58051, 1336, 551, -301], [-59868, -1182, -1010, -102], [91334, -2750, -246, -128], [23152, 2324, 1408, -26], [118259, -124, -523, 476], [150121, 2582, 475, 283], [79953, 1132, -733, 670], [-18192, 4104, 370, -1462], [21458, -3870, -1328, -1268], [-24478, -5443, -1074, -602], [-32654, -3198, 1688, 203], [18849, -3006, -735, 757], [42032, 3846, 1360, 154], [-7930, -1038, -3178, -488], [72234, -4195, 456, 1379], [-17300, 5587, -628, 566], [38828, -2770, 1268, -878], [-84966, -2011, -940, 489], [-106864, 583, -594, -653], [68780, 2059, -820, -571], [84340, -1691, 1268, 587], [45726, -6349, -478, 1415], [-43031, 1894, 563, -1348], [-43723, -652, -519, 901], [139414, -2164, -228, -628], [-24688, -2832, 3420, 444], [120927, 2376, -571, 229], [40764, 3280, 350, 1126], [-94396, -4061, 78, 997], [79152, -293, 2164, -400], [92834, -2966, -368, -816], [-10573, -698, 1121, 581], [25203, 4194, -1537, -1429], [-5702, -3539, 16, -573], [-19609, -4720, -1783, 667], [-133840, 1669, 1184, 795], [115148, 1507, 1956, -227], [163995, -416, -899, 104], [-51674, -1778, -1568, -1063], [13848, -4668, -1468, -1796], [-17325, -4412, -845, -805], [-15145, -4386, -1591, -392], [-39914, -4274, 1384, 182], [-90526, 5260, -422, 918], [-66676, -1515, 1328, 565], [35776, -5931, -510, 1093], [69989, 3289, 493, -1581], [-58716, 48, 598, -2038], [-52743, -698, -977, -616], [71824, 2568, 592, 2052], [112380, -576, 296, 586], [-113590, 4418, 904, 690], [-73554, 6924, 40, 1238], [-26272, 9128, 244, -544], [-86329, -280, 657, -2013], [-46164, -2174, 2160, 2274], [25016, 548, 32, -1394]]
