
# q-expansion of newform 448.6.a.m, downloaded from the LMFDB on 16 April 2024.

# 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
    R = PolynomialRing(QQ, "x")
    f = R(poly_data)
    K = NumberField(f, "a")
    betas = [K.gens()[0]**i for i in range(len(poly_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 = 448
weight = 6
poly_data = [0, 1]

# The basis for the coefficient ring is just the power basis
# in the root of the defining polynomial above.
hecke_ring_character_values = None
aps_data = [[0], [14], [56], [-49], [-232], [140], [-1722], [98], [1824], [-3418], [-7644], [10398], [-17962], [-10880], [9324], [-2262], [2730], [-25648], [48404], [-58560], [68082], [31784], [20538], [-50582], [-58506], [-38696], [53060], [146324], [-92898], [-83354], [60384], [61586], [-204462], [35406], [20226], [70904], [-293524], [-13192], [493612], [-240716], [-294932], [336980], [358264], [-989554], [990050], [-840756], [-1150732], [-824264], [-74382], [-1131956], [-198726], [482904], [805910], [-430738], [-1176910], [1290976], [1277556], [1650544], [1064090], [-22342], [2495738], [1931776], [459074], [667128], [-111034], [68778], [564448], [2077294], [53248], [2272004], [4006450], [73784], [1404312], [1603234], [4770120], [-2230788], [-4840242], [-995820], [-3316050], [3072734], [-2814378], [-3058022], [1937496], [3947902], [-7417704], [-1402692], [-590574], [-2904842], [922684], [7182352], [612570], [2603300], [5463088], [-1640900], [-2997964], [-6894048], [-2304764], [-12096042], [-5484430], [6717994], [5002352], [-9019606], [-12405106], [6488038], [10228504], [2653378], [14304374], [-10026534], [-7522920], [3386250], [-6908608], [9688958], [-7847418], [10197194], [-8362576], [1102830], [-17135426], [-54964], [485166], [2721360], [2145248], [2927962], [13499220], [5429724], [-20827982], [-23514066], [19574670], [-26115180], [15412628], [16986816], [-2015112], [-15138072], [7214008], [10969726], [19244190], [8211854], [-18618656], [-26250070], [10037300], [14088390], [-18143342], [21366922], [17801736], [-16292124], [2084992], [-22784972], [22697500], [25289950], [10394734], [43339944], [-37165930], [9047850], [-32967860], [-16109884], [44728564], [-6605184], [-30892984], [-4872154], [-32500398], [2640400], [40817920], [-6719830], [-2789792], [-33359382], [-7600326], [-5797596], [12682496], [-14440048], [18092062], [-22403444], [-34508244], [44165100], [-30609120], [38484314], [-44520700], [257138], [-59523340], [22872926], [4836048], [-20101648], [48438632], [-8380722], [8781526], [-55221334], [-24112416], [-49001372], [-21272014], [46715858], [-21571406], [-24855572], [-10607198], [23972940], [-59591060], [-8304660], [47556620], [-44726766], [-74355154], [-23852154], [-28848582], [39241272], [-84534542], [-44247364], [-38851680], [3423994], [-27462974], [-8690528], [-64587348], [100377000], [48181758], [81147878], [34800798], [-78811320], [-80858888], [-119242438], [-26281192], [-30786098], [-12981520], [-17168690], [82294552], [-38844066], [-39004298], [-18673592], [-107391406], [-40512328], [73902850], [-1292090], [-83139014], [-111017416], [33647936], [-129603576], [60555662], [-104136298], [-128450320], [-75229286], [-967806], [79222752], [-31922618], [13235218], [-164366820], [-104915104], [-8644224], [5004594], [107111424], [44996402], [51457098], [40091884], [96799696], [-74500958], [-19835824], [-6698928], [56812810], [-40764318], [-148621136], [191741578], [-31644256], [95297884], [30936982], [-21917322], [-26097288], [-52424722], [47141480], [80432728], [180053944], [-107736608], [-167100682], [128458246], [-195434598], [205197034], [-40600156], [-91592698], [225295700], [27045472], [63156226], [-50706064], [-83362958], [183398768], [41668448], [197576826], [121702270], [219184042], [-230757352], [221800776], [-126392812], [-94076080], [175669858], [109289184], [-66225662], [7902018], [19624052], [-264054126], [64562210], [-202322134], [-222052554], [308761362], [-213825166], [11334260], [220325056], [45937444], [-141016610], [-167678210], [-104608770], [-111088338], [204266560], [-284189992], [-221365008], [-155685318], [88282704], [-4863432], [58199488], [-49163734], [-317400888], [-216655874], [215030442], [21138984], [174142880], [-220327030], [85163694], [-574272], [-259941542], [-131108766], [349363462], [-228141518], [-336301056], [340445240], [424471734], [149519230], [-243529360], [223287106], [-78842368], [98475606], [-23920390], [179971854], [-140698852], [178786566], [-154289500], [-94839262], [224401630], [142325106], [-34959526], [167101228], [-371490526], [-331416202], [-391310892], [69891712], [-398783522], [385410464], [41030612], [133867016], [-427945224], [16480912], [22770398], [-390482406], [387706898], [367437084], [-299869630], [191548322], [452285988], [-59806278], [-24271726], [172440144], [51410994], [-504028910], [47305728], [-386245052], [-405410558], [470445238], [295903636], [-285156080], [379937574], [30924732], [-50440194], [-90990672], [574960146], [-196823704], [-87416662], [-61511758], [-251584856], [300748826], [-226639434], [-28085442], [559059844], [209207238], [-294887192], [373394834], [-150627330], [-425925304], [-388792984], [537651128], [-136029380], [-88376820], [548920990], [372194088], [218913540], [717856006], [229114568], [710761570], [376944820], [610986726], [104995812], [659115582], [-714635936], [-580539214], [-163865264], [-4963938], [17774988], [40778500], [-431984526], [392830622], [-37552634], [591109806], [-362159014], [244222198], [199454008], [131868068], [-505194198], [-259521444], [418838760], [3455732], [-575293194], [738623424], [-620411058], [-37535008], [-75936208], [688612582], [300982262], [763452984], [-556018432], [182454666], [-836521434], [494044572]]
