
# q-expansion of newform 12.18.a.a, 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
    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 = 12
weight = 18
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], [-6561], [-1608930], [-9417184], [-186910524], [-2625442690], [43782311106], [-96594985540], [290867937336], [1398617429094], [7647898359464], [-33369516616762], [-12032733393990], [-755092495804], [-280540358127936], [460570203615582], [1078467799153284], [-1980778975313218], [4850190377589884], [2707574704052040], [-5002264428090742], [-9774477292907752], [17112919183614396], [34698182155846650], [68616916871806082], [-72575603831581362], [37807848560593904], [177782085241916148], [-32315348586986242], [145944111614578578], [1388132097725331416], [907565915076716412], [-2355569533950177222], [1883496241094265716], [5507299632885304878], [1346652529068089360], [1492007509450010942], [875681142717996620], [5322023359786193688], [-2096389562027273946], [6169405892638595724], [-2828007087714422650], [16317324352180041984], [43778666139161751554], [-1335544354609632306], [-31782385839963616912], [-18661448750709226900], [-66938247582356741800], [-51514869530489161140], [-93427202463808568554], [57195924145594415370], [-266747713595046978192], [46264981495236636818], [-111917865512532890412], [-537780136066153186302], [389150922130817421816], [-147303517107331362474], [-940590476781882155416], [33694714536717854822], [526371416381310486426], [908900607007234693988], [893754785759971399758], [127904002430675601548], [2601389822594256739944], [201145731764779606394], [878957671422191040486], [3138042103671966573332], [1853592407858689376018], [-2698357416411146141772], [-2397266941539356686114], [1358936832146570889858], [-1794826378589052349656], [4794835919496892287896], [109326298184554203446], [10147647812838058557908], [-6245440431888337892352], [-11554565777263195993314], [-3200324085864396422962], [-803454153170424206814], [-18934219611743637799174], [-8509455677358322472628], [-15417247028518935381130], [7642743362268484668768], [38021312343582231958514], [48144329422167323848928], [26257635503677014875604], [35488990947897761024178], [26215300819136840262890], [3343418208464587691526], [37420968528009882411368], [17724952292776681160988], [-119637063132212448171216], [14719118621169330651392], [-7726684056234871329036], [15389200341683235289484], [49347489811959406793304], [-50541780339813323314458], [-89117205174038066548518], [127422476593112801712068], [15326388502391043719918], [-248672598971851510354708], [-281655306600461709120378], [436725950973093929419740], [-154119340563722913058614], [309335112539037098058020], [7270049091895510824962], [-101338625444045188602924], [95932703178002386912626], [226333754243844983942616], [-391276722109447324982182], [43701789706591832994488], [650419486923928541225318], [-390593810140738579379286], [-506296458015735073208236], [-606893986913585421392848], [1000242146980417167854514], [328131571068779393988044], [-21031053087100915136952], [-268112113822977535586394], [-453988547891464002714612], [605737905357055684164278], [-1781633343314813834660830], [1994268281545160288716446], [2030494572359942247821124], [621943517873148845193788], [2263856705477944084593126], [-2850332996831594657277706], [-846689223227590934328672], [-124491323588386149078448], [-1277635678789505629054834], [-3058860277649387552146180], [3198337209012572036346744], [3066968163714186155460152], [-83065669930334184351706], [2433284111995788874586922], [2881504156147574103909122], [3455440445670829354141902], [-3457105985368122884067748], [2984387965957642938864822], [-5989890232298363787270054], [1965701674260251394911300], [-5155788690041438440701954], [5500030296214680802917008], [-232225571543741003824668], [-3248437759779431116180018], [-9830387352472327769316696], [10125341592791005609286582], [6936493552274895095766762], [8335508667469484511280820], [-5647634536549389102489888], [1631986454877402017377454], [10808694401186496750891570], [2026998237009364064245052], [-10646428785042734681864184], [-594516658719474634857532], [23669907932137657868734608], [9367894901780685623795888], [-26952747307228618609007502], [26266421880671716421342378], [-30450828136751763571866330], [26435594632732614026065548], [11798324254881032322552714], [-44379752885852378596256560], [-15054842143907241631132572], [25318705586785461048251682], [2475141794439268441788648], [20698240196393034277101128], [37375107037435985680229414]]
