
# q-expansion of newform 880.4.a.bb, downloaded from the LMFDB on 29 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 = 880
weight = 4
poly_data = [120, -34, -47, 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, 1, 0, 0], 1], [[-24, -1, 1, 0], 1], [[-2, -41, -1, 1], 1]]

hecke_ring_character_values = None
aps_data = [[0, 0, 0, 0], [1, -1, 0, 0], [-5, 0, 0, 0], [-1, -1, -1, 0], [11, 0, 0, 0], [0, 5, 0, -1], [5, 9, 0, 2], [-13, -11, 3, 0], [-16, 3, 4, 1], [1, 24, -2, -3], [-85, 8, -8, 1], [89, -7, 1, -4], [70, 14, 2, 2], [-172, -16, 2, -2], [-176, 55, -6, -3], [-43, -23, 5, 8], [-278, 12, 6, -2], [-137, -2, -10, 1], [-334, 37, 10, 9], [-103, 52, -8, 7], [32, 15, 2, -3], [-550, -24, -20, -6], [-86, 40, 34, 8], [-199, 93, -9, 8], [480, -74, 28, 0], [-654, -86, 2, -6], [-718, 45, -8, -7], [-464, 0, 60, -6], [130, -68, 50, 0], [96, -72, 34, -26], [-168, 174, 14, 20], [-41, -279, -13, 24], [176, -52, -34, -6], [-396, -364, 4, -4], [-1557, -336, 22, 15], [550, 200, 76, -18], [189, -373, -15, 10], [581, -125, -88, 0], [-157, 393, 3, -26], [-428, -39, 110, -5], [-472, -72, 42, 28], [-1566, -186, -54, -46], [676, 640, -44, 12], [-1191, -63, -72, -2], [-246, -73, -52, -25], [-1011, -394, 64, -23], [871, 569, -73, 56], [-1484, 553, 62, 23], [-378, -566, 48, -42], [-546, -346, -122, -46], [-175, -573, -24, 64], [-782, 246, -94, -52], [-382, 374, 98, 94], [3694, -38, 110, -28], [2886, 574, 22, -74], [-1111, -141, 237, -14], [332, 158, 242, 52], [3140, -200, 160, 32], [3362, -499, -56, 37], [-2970, 186, 98, -10], [-494, 324, -2, 132], [-2632, 427, -222, -111], [426, -800, -76, -112], [-605, 492, -24, -19], [5390, 1140, -184, 8], [1343, 373, -373, 38], [48, -36, -72, -112], [6503, -315, 104, 12], [3514, 1344, -136, 112], [5050, -908, -150, -60], [1574, -194, -74, 62], [-2316, -650, -350, 90], [-1974, -1337, -26, 43], [1588, -1147, -250, 23], [-5862, 508, 22, 126], [3176, -853, -306, 29], [-1302, -598, 50, 138], [5034, 512, 100, 80], [4699, -817, -307, -36], [4456, -230, -120, -48], [-4636, 832, 38, -32], [5608, -388, 36, -90], [1720, -636, -144, -156], [7464, -386, 224, -32], [-4624, -354, -110, 10], [-6866, -1471, 310, 5], [-1710, -1152, 0, 132], [7455, 807, 20, 22], [-4445, -954, -310, 25], [-4048, -1297, 252, -19], [-751, 1619, 328, -32], [7284, -934, 74, 54], [-8394, -957, 10, -29], [1123, -1303, -185, -160], [-7744, 816, 434, 4], [-1436, -656, -634, -130], [-4596, 1764, 72, -18], [-4578, 1960, 400, 184], [7568, -652, 188, -78], [-375, 1438, 282, 131], [-284, 1018, -364, -80], [-9956, -137, 408, -99], [654, -1960, -156, 192], [-3156, 2398, -412, -176], [309, 7, -983, 136], [13602, -1796, 38, 64], [-745, 2163, 60, -294], [2112, -1405, -118, 105], [-2777, -1818, 112, -289], [-6454, 270, -26, -162], [9697, -1929, -411, -38], [-252, -665, -252, 253], [-5052, -2910, -244, 120], [-12536, -2076, -130, 152], [-10319, 1700, 580, -17], [-5273, 223, -939, -184], [205, -425, 168, 52], [8540, 103, -352, 93], [-8133, 2719, -569, -340], [-183, 3983, -7, -212], [-3674, -2544, 380, -56], [6633, -455, -340, -122], [-10046, -3439, 188, 81], [-7881, 1129, 28, 140], [5314, 156, 1136, -18], [8679, -2214, -42, -51], [-2698, 3380, 48, -192], [-8373, 2206, 56, 171], [1588, 3739, -372, -183], [-16466, 45, -234, 373], [-8792, 1376, -852, -148], [12723, -1707, 243, 70], [-21457, -436, -268, -191], [-1110, -4040, 180, -8], [354, -526, 1006, 230], [9858, -3452, 230, 304], [-10831, 1217, -307, 92], [27008, 340, 48, 70], [5286, -1076, -44, 32], [-16314, 5254, 348, -6], [-26343, -829, 669, 16], [-8346, -3902, 162, -182], [-2174, 1401, -80, -331], [732, -1484, -584, 402], [548, -1542, -1458, -228], [-23484, -2426, 744, 30], [-608, 67, 1172, -211], [-2139, 3261, -72, -402], [-11402, -612, -1106, -278], [-17908, -2221, -534, 265], [2964, 1605, -1234, 143], [346, -540, -440, 228], [-13149, -3257, -256, -10], [-3312, -4310, -290, -496], [5929, 5023, -472, -188], [-9947, 6196, -312, -213], [4596, -960, 88, 348], [-3525, -2969, -555, -248], [4876, 81, -1210, -357], [12825, 3514, 34, 95], [-7497, -397, 144, -358], [-1157, -1501, 564, -450], [16117, -3629, 369, 578], [-17808, -910, 410, 298], [-18024, 1142, -1304, -416], [-24524, -1183, -1200, -173], [-20640, 4668, 376, 276], [-5450, -259, 1094, -251], [18042, -4354, 1028, 462], [-10335, -2427, 1457, -88], [-24085, 4573, 603, 532], [5346, 5450, 1014, 46], [-31894, 4598, -14, -84], [13501, -2045, 1076, -164], [17996, -3766, -420, -750], [-1973, -6853, 1005, 92], [17732, 2884, 368, -412], [28400, 5412, -236, 34], [5509, 6401, -979, 252], [5711, -56, 374, -325], [18416, 259, -680, -627], [-21001, 7101, 1167, 24], [-2189, -4031, -1217, 382], [-13731, 5351, 1772, 96], [-15404, 4707, 292, 301], [-10178, -3754, -482, 190], [12582, -4343, 1002, 17], [27610, -1145, 994, 511], [-11922, 4618, -840, 370], [7048, 5186, -1730, -394], [2056, 7360, -126, -106], [-5140, 4204, 1462, 66], [10410, -3324, -1272, 126], [2376, -2498, 78, -1072], [33500, -1858, -48, 420], [4442, 8160, -588, 616], [-5920, -2766, 734, -140], [-46, -4282, -596, -634], [-21568, 7389, 1938, 235], [-13719, 4919, -1175, -2], [-4951, -10784, 818, 821], [20966, 6658, -1426, -184], [9703, 1939, 763, -900], [13640, 4462, 224, -360], [5372, -9268, 306, 652], [-23899, -1997, -203, 762], [6596, -5858, -728, -946], [-29896, 590, -2378, -272], [-30134, -2378, 72, -482], [29348, -530, -202, 410], [-8625, 8799, 76, 670], [-1568, -3734, -778, 632], [34170, -1411, 528, -455], [-27009, 871, -2340, 390], [41620, 4010, 1198, -386], [-33381, 6643, 125, 356], [-3011, 737, 1589, 712], [8830, 6872, 432, 220], [-51654, 353, 782, -355], [3103, 5099, -1961, 404], [35134, -10246, -790, 122], [-5298, 5406, 22, 1480], [-33443, 909, -373, -112], [4994, -4213, -150, -349], [29360, 10446, -1638, -140], [31427, 1484, 482, 203], [10258, -2570, 692, 966], [20649, -6570, -628, 597], [-16064, -1390, 2986, -504], [-17396, -4708, 568, 104], [-49866, 1136, 344, 308], [-14647, -1993, -1287, 196], [12866, -1962, -694, -784], [-45002, 6060, 156, 292], [9354, 5607, 430, 1023], [-7995, 2173, -1847, -228], [-4565, -8009, -1207, -324], [13144, -1723, 1128, -1049], [8168, -6136, 1250, -700], [18991, 1844, 2232, -895], [-32681, -2101, -1532, -1106], [-33284, 10464, 472, 460], [15438, 1413, -1080, 757], [70362, 272, 240, -872], [26016, 897, 762, -753], [51202, -7862, -942, -64], [29314, 6269, 1304, -1379], [1810, 5588, -1416, -178], [-7609, 5093, 2527, 384], [1049, -8253, -1579, 114], [23344, 1973, -1712, 255], [5596, 1600, -1896, 750], [-64236, 1765, -2562, -881], [307, 12963, -1187, 492], [-13334, 2239, -1136, -609], [-38281, 7953, 283, 444], [-51800, 3440, -912, 1418], [-29410, -7314, 1132, -1110], [63794, 3384, -48, -304], [-42053, 151, -2564, 322], [41432, -2522, -914, -360], [-38924, 3368, -1114, 1778], [19863, -9028, 74, -149], [10788, 5223, 1446, -879], [-33776, 6690, 294, -56], [56000, -7692, 2066, 968], [7752, -1844, 2576, 54], [13265, 341, 3031, 708], [-34380, -3062, 2292, -988], [15492, -8691, 276, 907], [-72106, -2698, 298, -846], [-56429, 8731, 1176, 30], [1256, -16114, 224, 496], [6550, -292, -436, -290], [12737, 9635, 1828, -48], [13020, -14927, 286, -601], [-16702, -6351, 1138, 477], [45118, 6888, 334, -1340], [-20694, 12376, -2380, -1564], [-27835, 1487, -1375, -316], [30707, 5377, 1471, -854], [20380, -5208, -2660, -388], [-53276, -2372, -2142, 1462], [21831, 3710, -1346, -515], [-14648, -1968, -3914, 302], [-68429, -8188, 268, -547], [-32658, 14926, -1708, -1174], [8268, 5077, 352, 1883], [-23439, 730, 2568, 1009], [3938, 512, -4274, 952], [17580, 1616, 5332, -78], [7898, -4721, 150, -1733], [42341, -14545, -2036, -376], [15529, 8495, -1655, -552], [-18308, -16625, 610, 1441], [-70514, 7908, -3074, -748], [53184, 9624, -3748, 760], [-5385, -9809, 3903, 352], [12052, 17788, 1388, -500], [-66602, -9768, -132, -108], [-10905, -19949, 332, -214], [105286, -3145, -164, -757], [81084, -12466, -1634, 590], [-5902, 6367, -706, 1095], [-25682, 10548, -100, 138], [19576, 2354, 3398, 432], [-75018, -18579, 1926, -459], [-18696, -10966, 1638, -116], [-3781, 8370, 1328, 1783], [22226, -8031, 4002, 1821], [-42296, -2448, -686, -686], [-37930, 1990, 58, 34], [38604, -9862, -2870, -36], [59425, 3725, -972, -26], [46307, -10115, 2619, -94], [-11986, 1092, -2694, -900], [-33950, -13962, 3256, -452], [81996, -4822, 3106, 822], [8554, -736, -1394, 1628], [59208, 7240, 4150, -1038], [-1159, 13723, -1103, 2508], [-73942, -15186, 2876, -10], [-24638, 4238, -3142, 170], [60436, 22109, -2402, 267], [34083, 13107, 3688, -842], [-118277, 2699, -2399, -1080], [41098, 6982, 3396, -108], [72638, -16003, -1374, -7], [-72213, -8589, -93, 1176], [-20570, -9135, 426, -2215], [69817, -682, 3046, 2327], [-40170, 6868, -2348, -376], [-1520, 14990, 2170, -1418], [3086, -9260, -2908, -1484], [37219, 2969, 3823, 124], [3901, 3153, 4960, -694], [25110, -6140, -1176, 1156], [65953, 2739, -1684, -296], [-112307, 7693, -1641, 588], [63211, -5621, 4623, -536], [-102218, -2420, -3508, 1344], [112266, -4642, 1722, 1186], [-65451, 17772, 3406, 1081], [-89535, -6160, 232, 1211], [26461, -12443, 461, -908], [24125, 3511, -1099, 2428], [-2024, 9532, -2096, 1130], [-67213, -6979, -2608, -856], [-45280, 14836, 2216, 108], [-6357, 1187, 1719, -480], [39495, -7123, 1607, -2560], [-56474, -3774, 2766, -726], [39284, 850, -2202, -1724], [51653, 5769, 953, -252], [15827, 21460, 2226, 2231], [201831, 3237, 12, 324], [104323, 2298, 1932, 1935], [-40863, -3749, -3647, 828], [-97668, 949, 1034, -273], [-49022, 9091, -1706, 851], [-15636, 319, 2474, 2857], [8140, -5560, 2588, 1974], [-878, 295, 5726, -693], [-2399, -3717, 1065, 2940], [50761, -21247, 4720, 2206], [95940, 15968, -674, -638], [60620, 19081, 530, -77], [-24193, 6133, 2435, 1162], [28204, -1936, -756, -478], [-90188, 18412, -3296, -2180], [-69280, -17704, 1066, -2612], [3176, -934, 2182, -2012], [-36877, 5644, 4958, -405], [-31082, 4354, -2662, -2056], [25826, 6184, -1500, 1768], [40984, 13164, -2894, -720], [-35994, -13522, 2030, -2568], [8753, 2451, 4364, -1192], [-29548, -19474, 1648, 600], [30615, -21313, -1380, -1634], [15732, 19856, 488, -1318], [59434, -2440, -580, -2176], [-58164, -1778, -3362, -1512], [42935, -2551, -3824, 712], [44920, -4536, 4472, -312], [-51774, 22119, 2878, 1207], [-8040, 2540, -1152, 1412], [90355, -2611, 1759, 1338], [-43616, -33588, 3748, 810], [-6176, 12567, -5248, -639], [8485, -30335, -329, -1800], [-44797, 1675, 6723, -8], [122644, -20262, 156, -898], [102714, -6127, -2390, 541], [-119744, -3196, 2428, 876], [77032, 1273, -6458, 743], [73310, 12516, -764, 1934], [105975, 7103, 3757, -3036], [-6290, -3504, -636, -3234], [66951, 4238, 3178, 1097], [37861, 4232, 4826, -1979], [159594, 10104, 1566, -684], [-163736, -2612, 878, 1018], [58596, -5348, -332, -2350], [-30670, 14088, -4698, 2908], [-170874, -5372, -636, -598], [-17545, -9267, -3813, 2142], [6234, 25932, -800, 1228], [-52665, 5777, -44, -188], [-26902, -9266, -4208, -500], [26456, 8597, -8674, -381], [-80730, -33289, 3898, -913], [-78290, 12013, 1546, -2135], [-160068, -9320, 300, -24], [-209080, 9579, -838, 209], [118052, -4616, -4696, 574], [146528, 4736, -2692, 144], [104558, -13687, -2786, 57], [167030, -6864, -4548, -596], [87043, -18761, 1435, 80], [-135192, 3258, -3342, -336], [-6430, -19987, 2364, -2019], [63450, -13199, -3790, -1139], [17371, 9897, 1827, -1684], [16198, 15618, 8002, 2], [-60197, -12397, -1061, 592], [-24793, -13093, 1032, -1162], [-86040, 6962, 1712, -664], [-57664, 4422, 3246, -1594], [124938, -4572, -2568, 86]]
