
# q-expansion of newform 1152.4.a.s, downloaded from the LMFDB on 05 October 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 = 1152
weight = 4
poly_data = [-3, 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], 1], [[0, 4], 1]]

hecke_ring_character_values = None
aps_data = [[0, 0], [0, 0], [2, 2], [-4, -2], [46, 1], [-50, 6], [-46, -12], [-2, -7], [-4, -18], [42, 10], [-192, -16], [86, 14], [150, -8], [-150, -5], [8, -44], [-6, -14], [-322, 33], [-146, 70], [86, -83], [-204, 42], [206, -52], [-200, -36], [474, -13], [-286, 116], [1102, 92], [-1062, -14], [-1732, 14], [-722, 145], [-714, -42], [-98, 96], [-1328, 120], [474, 171], [710, -40], [-1094, 179], [882, 386], [772, -302], [-2082, 6], [-386, 401], [-364, -246], [-2622, 26], [-678, -253], [-1250, -98], [-2480, -232], [-242, -132], [-2894, 34], [380, -162], [2806, 149], [-4416, 144], [2130, -233], [-1138, -66], [-2286, -428], [-936, 428], [622, -756], [-3042, 49], [-2322, 192], [2484, 714], [1882, 202], [-1912, 244], [-3642, 366], [1458, 132], [-4566, 291], [3442, -478], [942, -127], [5596, -722], [-2150, 840], [4074, -534], [7042, -169], [3154, -304], [-3042, -127], [4358, 1046], [-5010, 944], [8644, 306], [-1928, -1268], [7094, 302], [7058, 1031], [-6144, -512], [7786, -206], [-3210, -1418], [-5070, -236], [2266, 1256], [8954, 683], [1694, 990], [-9832, -340], [-10098, 172], [-3228, -206], [1494, 1229], [3346, 4], [-4566, -1304], [-1190, -342], [2872, -1572], [7474, -1377], [11328, -1104], [10732, 22], [326, -2147], [-2954, -795], [-1940, 422], [16066, -230], [7270, 504], [-638, 311], [12302, 1478], [13382, -459], [-8206, 154], [9810, 1407], [-2090, 1144], [12682, -413], [2114, -240], [12686, 1745], [-7986, 1760], [5580, -1082], [-18114, -180], [-6928, 1880], [10526, 478], [-17086, 740], [2018, 919], [11860, 250], [17874, 36], [-1098, 3773], [-11340, 2506], [-3078, -1590], [10458, 979], [-8002, -1762], [1102, 828], [2570, -398], [-13146, -1491], [-11610, 765], [2834, -4006], [3382, -2578], [-9432, 436], [-3276, 3450], [-13866, 1174], [-11346, -3607], [9172, -694], [-2488, 2692], [-16370, 1726], [-13594, -2120], [-8338, -964], [8106, 82], [-7178, -2379], [37026, -230], [16278, -328], [-9438, -1897], [7882, 1938], [-4828, -1262], [-7898, 3925], [-12610, -2330], [-15324, 2130], [-11738, -3314], [-4938, -4680], [7298, 3215], [-10528, -160], [-20474, 86], [25486, 1584], [-802, -3943], [-35556, -914], [-9782, 3227], [-9192, -4420], [-10332, 194], [-21102, 3012], [-14162, 4588], [-7766, -3286], [-39758, -337], [52022, -488], [10780, 6094], [3638, 3269], [19506, 1588], [-7892, 6486], [-17264, -4408], [-3690, 2478], [15950, -3316], [-2174, 6146], [6102, -83], [9894, -3914], [39764, -518], [30686, -1604], [-13016, -2140], [-25422, 1604], [12018, 3655], [-6406, 3506], [19916, -2362], [-14594, -6714], [3040, 816], [-27294, 5711], [-6882, -2114], [33410, -636], [45720, 2332], [12786, -7742], [36766, 4614], [-62594, 625], [14410, 4136], [8384, 5920], [3250, -5616], [-10362, -275], [-58930, -2239], [57290, -1462], [-52958, -2305], [-15902, 3620], [-2542, 1952], [-17602, -6394], [-8834, 6208], [-24012, 3306], [-29134, 7130], [-3688, 10604], [33014, -2578], [-56654, -2752], [-16434, 1121], [-26022, -630], [32320, 32], [32818, -1609], [-3662, -1292], [-49198, -641], [-44530, -3444], [-1694, -3166], [-43244, -3286], [-14042, -8539], [33780, 2458], [-13574, -9400], [21288, -652], [-11566, -8236], [-25140, -7994], [58410, -470], [-2258, 7102], [48372, 5994], [-24366, -8988], [-29352, 5164], [-31550, -3417], [31510, 5422], [-30590, -2700], [-25712, -2296], [15196, -3234], [37366, -2507], [12070, -2122], [80254, 1353], [-2272, -4848], [-44158, -6140], [5578, -6597], [40904, 5732], [-36082, 1004], [-33886, -2110], [76758, 5245], [-21132, -2694], [8682, -885], [-43142, -869], [-12116, 5382], [24350, 3686], [-4306, 10992], [62732, -2426], [-79360, 1680], [47850, 451], [26138, 1395], [-77352, 5196], [56742, -7082], [30158, -12432], [14036, -2854], [-16658, -7284], [-74006, -406], [-12310, 7771], [-21554, -13538], [64242, 8295], [-53430, -7726], [27066, 2984], [17600, -4576], [32258, -3905], [43942, -11986], [18982, -9066], [-53646, 8740], [-8538, -15643], [-38774, -7382], [33282, 1044], [18050, 17727], [16826, 9362], [-80306, 5638], [88462, 3649], [12046, -6660], [43760, -1576], [14562, -48], [92084, 2058], [-29050, 5989], [62238, 4102], [94254, 6476], [57666, -10713], [-57056, -5984], [-37444, 4014], [48780, -11914], [43358, 9438], [23834, -381], [-54952, -13380], [42670, -6964], [85818, -4622], [54148, 5874], [28766, -720], [-36806, 9930], [12114, 9695], [-14622, -12140], [-26898, 6945], [33830, -8682], [77586, 6682], [40576, -10032], [31762, -1470], [-68154, -8667], [-91162, 981], [40730, 8584], [-81006, 10138], [-84888, -6364], [71130, -9293], [61130, -3565], [-11634, 7420], [34366, -9479], [-11938, -2074], [136188, -6530], [-25834, 7214], [-135496, 1772], [-31614, 18690], [-28014, 5828], [32438, 3661], [73780, -70], [-59538, -9364], [-71542, 10619], [320, -8064], [137922, -2176], [105742, 992], [-21146, -5331], [-39238, 1928], [-117990, -1718], [-142864, 5400], [-97338, 3960], [64814, 3500], [146334, -175], [-89222, -7125], [-72416, -11360], [-79406, -15294], [-82354, 8550], [30570, -3382], [104768, 6272], [-64182, 931], [-109270, -10965], [-4338, 1753], [-6506, -20426], [98734, 4784], [47070, 10716], [-17992, 7020], [-115330, -9154], [40102, -23880], [60042, -9454], [-37460, 23494], [15666, -3942], [-56446, 1839], [141118, 8478], [25890, -1513], [60888, 17228], [147826, 5282], [-1330, 20073], [80666, 6216], [72594, -5030], [-41256, -14644], [90862, 7646], [82450, -1084], [141264, -12600], [-72042, 14181], [-169614, -332], [25884, 25198], [-18682, 3246], [60018, 17524], [-52680, -3668], [-69442, -5263], [3662, -11943], [-69346, 22172], [38930, -1510], [-14804, 3942], [-22774, -17912], [-23654, -9061], [-62014, -8441], [-123672, -60], [130698, -1998], [-44492, -6454], [-114250, 5046], [34826, -18997], [-9024, -26864], [109618, -6016], [-59694, 26196], [127162, -11736], [-151766, -12182], [36822, 4184], [-80188, -12462], [64398, 6272], [-60082, -4807], [-63132, -4126], [74104, -26676], [107078, 4750], [-25310, -25169], [58784, 11504], [-6014, 5904], [-39414, 16882], [213790, 6425], [-126490, 12429], [-90740, -11194], [33754, -29016], [50992, -8296], [-2842, -14632], [-52902, 22099], [-28662, 9394], [208902, 1590], [31698, -35644], [166872, 1420], [-133482, 216], [90498, -16670], [89724, -21138], [-70130, -15738], [-49422, -20972], [-30314, -8139], [-47974, -9909], [27330, -1584], [-66006, 13714], [-64946, -1959], [-49394, 31865], [14462, 24028], [100946, 186], [149792, 1680], [-154996, -970], [-106734, 7892], [57804, -18490], [-22382, -7430], [23238, -39058], [163912, -17132], [121134, 11353], [59274, -21304], [124674, 2362], [-48590, -13761], [-253374, -396], [-146358, -6349], [-114276, -2930]]
