
# q-expansion of newform 121.4.c.b, downloaded from the LMFDB on 26 June 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 = 121
weight = 4
poly_data = [6561, 729, 810, 171, 109, -19, 10, -1, 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, 0, 0, 0, 0], 1], [[0, 1, 0, 0, 0, 0, 0, 0], 1], [[0, 280, 0, 0, 0, 0, 1, 0], 981], [[171, 0, 0, 0, 0, 1, 0, 0], 109], [[0, 0, 1261, 0, 0, 0, 0, 1], 8829], [[-6561, -729, -810, 1090, -109, 19, -10, 1], 8829], [[-13851, -15390, -3249, -2071, 1090, -190, 19, -19], 79461], [[0, 0, 3781, 0, 0, 0, 0, 10], 8829]]

hecke_ring_character_values = [[2, [0, 0, 1, 0, 0, 0, 0, 0]]]
aps_data = [[0, 0, 0, 0, 1, 1, 1, 0], [0, 1, 0, 1, -1, 1, 1, 1], [4, -3, 0, 0, 1, -3, 4, -2], [-3, 5, -6, 3, -6, 0, 0, 3], [0, 0, 0, 0, 0, 0, 0, 0], [3, -7, 3, -7, 17, -11, 17, 0], [16, 2, 0, 0, -47, 2, 16, -7], [0, -6, -51, 6, -45, 6, -64, -6], [22, 0, 16, 36, -10, 10, 16, 10], [-19, 1, -92, -31, 12, 0, 0, -31], [5, -41, 5, -41, -43, -1, -43, 0], [-43, -17, 2, -35, -8, 0, 0, -35], [0, 15, 22, -47, 7, -47, -19, 15], [169, 0, 199, -39, 31, -31, 199, -31], [0, 37, 89, 28, 52, 28, -189, 37], [-93, 41, -93, 41, -331, 39, -331, 0], [-137, -2, -33, 32, -169, 0, 0, 32], [-42, -147, 0, 0, 63, -147, -42, -42], [95, 0, 246, -46, -63, 63, 246, 63], [-330, 77, 0, 0, -87, 77, -330, 120], [-436, -51, -187, 44, -480, 0, 0, 44], [271, 13, 271, 13, 339, -115, 339, 0], [75, 208, 0, 0, -443, 208, 75, 14], [249, 0, -403, -57, 25, -25, -403, -25], [738, -50, 738, -50, 317, -194, 317, 0], [651, -67, 651, -67, 591, 59, 591, 0], [69, -165, 648, 71, -2, 0, 0, 71], [0, 219, -152, 271, -371, 271, -905, 219], [-366, 0, -372, 120, -180, 180, -372, 180], [0, 272, -819, 196, -1091, 196, -204, 272], [732, -51, 0, 0, 239, -51, 732, 100], [-1077, 0, -162, -282, -83, 83, -162, 83], [-763, -162, 0, 0, 331, -162, -763, -264], [231, 47, -82, 63, 168, 0, 0, 63], [-1758, 139, 0, 0, -597, 139, -1758, 24], [0, -421, 291, -528, 712, -528, 109, -421], [0, -309, -63, -204, 246, -204, -393, -309], [-1044, 60, -1044, 60, 240, 499, 240, 0], [1337, 591, 1337, 591, -473, 395, -473, 0], [0, -235, 1805, 2, 2040, 2, 1969, -235], [0, -484, 1283, 14, 1767, 14, 1498, -484], [-980, 273, 0, 0, -2199, 273, -980, 970], [971, 473, -452, 115, 856, 0, 0, 115], [-1200, 45, 0, 0, 1295, 45, -1200, 44], [434, 0, -1250, -46, 740, -740, -1250, -740], [-1312, 0, 810, 134, 492, -492, 810, -492], [-2050, -1186, -2050, -1186, -1597, -456, -1597, 0], [0, 37, 507, -786, 470, -786, 999, 37], [3049, 856, 663, 290, 2759, 0, 0, 290], [-175, -281, -175, -281, 713, -491, 713, 0], [-460, -56, -460, -56, 415, -700, 415, 0], [0, 323, 1881, 250, 1558, 250, -2703, 323], [-783, 0, -3240, -756, -351, 351, -3240, 351], [-959, -769, -959, -769, 1247, -83, 1247, 0], [544, -1633, -1489, -516, 1060, 0, 0, -516], [-3522, 0, -710, 1070, -362, 362, -710, 362], [178, -403, 0, 0, -2771, -403, 178, -216], [1173, -1395, -1902, -809, 1982, 0, 0, -809], [-2849, 1001, -2849, 1001, -2771, 925, -2771, 0], [-2443, 188, 0, 0, 393, 188, -2443, -704], [0, -121, 1183, 544, 1304, 544, -2039, -121], [-2653, -993, -1520, -483, -2170, 0, 0, -483], [3401, 0, 4263, 701, -441, 441, 4263, 441], [0, -299, 4399, -422, 4698, -422, 1335, -299], [-1296, 1742, 0, 0, -329, 1742, -1296, 367], [1993, 1143, 1993, 1143, -433, 231, -433, 0], [-3533, 0, 2221, 875, -647, 647, 2221, 647], [-1911, -428, 5749, -328, -1583, 0, 0, -328], [2824, 492, 0, 0, 2813, 492, 2824, 2151], [0, -731, 1515, -2240, 2246, -2240, 1673, -731], [2821, 0, 3452, -1924, 1049, -1049, 3452, -1049], [625, 1295, -5788, 1189, -564, 0, 0, 1189], [6837, 75, 6204, 1143, 5694, 0, 0, 1143], [-1464, 0, 2142, 62, -1358, 1358, 2142, 1358], [-1179, 304, 0, 0, 243, 304, -1179, -1590], [-2675, -241, -2675, -241, -2713, -2195, -2713, 0], [-8877, 805, -2598, 385, -9262, 0, 0, 385], [124, 0, -2340, 532, -1986, 1986, -2340, 1986], [1721, 670, 0, 0, -3673, 670, 1721, 292], [5189, -1137, 5189, -1137, 3681, -2913, 3681, 0], [6273, 0, 7835, -1679, 775, -775, 7835, -775], [0, 247, -6573, 554, -6820, 554, -2533, 247], [2731, 1049, 2731, 1049, 7365, -1133, 7365, 0], [-705, 186, -3735, -1318, 613, 0, 0, -1318], [-9208, 0, -2874, 62, 732, -732, -2874, -732], [0, -2943, 3096, -2471, 6039, -2471, 3429, -2943], [-1538, -2454, -1538, -2454, 18, -1067, 18, 0], [2743, -2002, 0, 0, -2467, -2002, 2743, -1192], [-360, 0, -3148, 628, 950, -950, -3148, -950], [-696, 0, -2600, 2400, -2852, 2852, -2600, 2852], [5806, -1313, 0, 0, -2991, -1313, 5806, 2414], [1138, -339, 0, 0, -10629, -339, 1138, 1610], [0, -431, -7745, 1338, -7314, 1338, -8169, -431], [-8018, -5, -7613, -1446, -6572, 0, 0, -1446], [-2580, 545, 2955, 1860, -4440, 0, 0, 1860], [0, 1803, 4061, -114, 2258, -114, 173, 1803], [0, 4597, 6779, 1534, 2182, 1534, 5965, 4597], [459, 422, 3561, -2678, 3137, 0, 0, -2678], [4452, -1092, 0, 0, 8445, -1092, 4452, -4009], [6971, 997, 6971, 997, -235, -2671, -235, 0], [0, -2612, -5987, -4462, -3375, -4462, 7954, -2612], [3473, 4735, 6990, -569, 4042, 0, 0, -569], [-2450, 1522, -2450, 1522, 5099, 528, 5099, 0], [0, -1854, 8947, -3624, 10801, -3624, -1890, -1854], [9816, 0, -120, -556, 856, -856, -120, -856], [-1636, 688, 0, 0, 12783, 688, -1636, 1145], [-3649, 1452, 5037, 1094, -4743, 0, 0, 1094], [7975, 0, 7348, 2992, 1815, -1815, 7348, -1815], [-3972, 2803, 0, 0, -9635, 2803, -3972, -592], [8424, -2203, 7313, -3244, 11668, 0, 0, -3244], [177, -413, 177, -413, -8713, 4727, -8713, 0], [0, -3121, 3065, -78, 6186, -78, 7539, -3121], [-2763, 0, -672, 116, -3331, 3331, -672, 3331], [0, -1382, 10319, -2326, 11701, -2326, 10316, -1382], [-1683, -2605, -11816, -3113, 1430, 0, 0, -3113], [0, -1315, 1886, 719, 3201, 719, 10007, -1315], [1011, 3342, 0, 0, -6929, 3342, 1011, 2906], [-6423, -2569, -6423, -2569, 1109, 3139, 1109, 0], [-659, 1611, 3610, 581, -1240, 0, 0, 581], [-2467, 0, -13594, 582, -3997, 3997, -13594, 3997], [-12478, 0, -4792, -4732, 4568, -4568, -4792, -4568], [-11542, 150, -11542, 150, -9706, -185, -9706, 0], [2036, -1359, 0, 0, -9221, -1359, 2036, 984], [7184, 0, 5860, 3604, -940, 940, 5860, 940], [7326, 1474, 7326, 1474, 16038, -5613, 16038, 0], [0, 3781, 5109, 3410, 1328, 3410, -2883, 3781], [16280, -3025, 0, 0, 9857, -3025, 16280, -1244], [-6195, -2787, -16554, 2765, -8960, 0, 0, 2765], [670, 0, -20106, 714, 2130, -2130, -20106, -2130], [5109, -2743, -4880, -2015, 7124, 0, 0, -2015], [-15352, -156, -15352, -156, 1676, 2713, 1676, 0], [-25400, 2179, 0, 0, -18329, 2179, -25400, 1606], [0, 243, -8789, 518, -9032, 518, 1981, 243], [10365, -425, 10365, -425, 5153, 1085, 5153, 0], [12822, 2510, 12822, 2510, 12406, 611, 12406, 0], [-842, 0, -6420, -6096, -272, 272, -6420, 272], [0, -5871, 16761, -5140, 22632, -5140, 8601, -5871], [14412, 3450, 0, 0, 11217, 3450, 14412, 5381], [-4828, 5161, 0, 0, -3343, 5161, -4828, 1998], [-4276, -3918, 0, 0, 4661, -3918, -4276, -9263], [0, 707, -12940, 2859, -13647, 2859, 13919, 707], [8583, -6423, -8958, 1399, 7184, 0, 0, 1399], [-9273, -1067, -9273, -1067, -25333, 2351, -25333, 0], [-10068, -2644, -10068, -2644, -1764, -3243, -1764, 0], [13641, 1545, 31264, -2301, 15942, 0, 0, -2301], [0, 975, -20073, -1122, -21048, -1122, -17187, 975], [3718, 3809, 0, 0, 21711, 3809, 3718, 1878], [-7115, 0, 12953, -6273, 1341, -1341, 12953, -1341], [22559, 0, 15542, -2502, 5381, -5381, 15542, -5381], [-28474, -859, 0, 0, -6027, -859, -28474, 2536], [0, -2675, -585, -3940, 2090, -3940, -13235, -2675], [-6067, 0, 3001, 7591, 2193, -2193, 3001, -2193], [0, -2223, -4782, -61, -2559, -61, -15375, -2223], [6801, 2729, -10674, 1795, 5006, 0, 0, 1795], [948, -3846, 0, 0, -17401, -3846, 948, -293], [-7109, 1965, -7109, 1965, -18199, 6037, -18199, 0], [-7014, -2563, 0, 0, -15953, -2563, -7014, 5474], [-12908, -6874, 0, 0, 2971, -6874, -12908, -4793], [22764, 2544, 22764, 2544, 29284, 1851, 29284, 0], [21664, 5095, 0, 0, -5481, 5095, 21664, -1866], [12959, 0, 13186, 4198, -467, 467, 13186, 467], [3922, 10977, -5789, 986, 2936, 0, 0, 986], [-20952, 0, -2598, 1134, -964, 964, -2598, 964], [0, -2271, -8615, 860, -6344, 860, -4481, -2271], [-11209, 5181, -11209, 5181, -11825, 1713, -11825, 0], [11399, 1727, -18646, -479, 11878, 0, 0, -479], [32130, 0, -768, 2496, -730, 730, -768, 730], [12063, -7951, -12594, 1391, 10672, 0, 0, 1391]]
