
# q-expansion of newform 144.16.a.t, downloaded from the LMFDB on 23 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 = 144
weight = 16
poly_data = [-370, 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, 288], 1]]

hecke_ring_character_values = None
aps_data = [[0, 0], [0, 0], [0, 29], [2591260, 0], [0, -6820], [-77911990, 0], [0, 13578], [976566184, 0], [0, 3761416], [0, -20546645], [-162227927108, 0], [-606605347330, 0], [0, -409799290], [-1764832689560, 0], [0, -691427224], [0, 1055009763], [0, -4971118520], [31978275004262, 0], [-126767977040, 0], [0, 2620593120], [101136696626630, 0], [-163797938010884, 0], [0, 55904217908], [0, 12236279700], [-1025848103778610, 0], [0, 365294390095], [309640145289460, 0], [0, -308018020392], [867906802624394, 0], [0, -364286613292], [4203785278051540, 0], [0, 449132151520], [0, -498078193190], [-12880788652661456, 0], [0, 550927836545], [-23114621242583588, 0], [37849846209126950, 0], [-18164275028413400, 0], [0, 4463758405096], [0, 37611476485], [0, 1649417559240], [70445933806207538, 0], [0, 37421507240600], [-116276873798305150, 0], [0, -6527429301957], [-29134015054698044, 0], [-58023917253126992, 0], [-505447812461156060, 0], [0, -51633998714932], [-497421675578884894, 0], [0, 89292814023660], [0, 201786627635560], [241627780925903342, 0], [0, -67584086225940], [0, -310398098812024], [0, 378577947018176], [0, 169357415673015], [-2327208965191166492, 0], [-3517713462637824910, 0], [0, 250862977123000], [-2298167203006920800, 0], [0, -439581063077389], [-689944193108947280, 0], [0, 800449845281680], [-8092129081195733830, 0], [0, -899655574119965], [-1161945411485282912, 0], [2486597263362539390, 0], [0, 2951310803643604], [-1967156606538594394, 0], [0, 709493448205876], [0, -3019085260222080], [-7925169507059118980, 0], [31797512754770219150, 0], [-23229771901311034136, 0], [0, -3969104942747144], [0, 791184365228545], [24130042494777092630, 0], [0, -4809229710370930], [35231426129385257366, 0], [0, 6322766531876140], [-18233476044635708062, 0], [0, -1859415220132920], [76705387233041393570, 0], [54372471676053071236, 0], [0, -2580249084936172], [0, 5116457102610930], [38057987342154755270, 0], [0, 27467641506488665], [48933507044661751060, 0], [0, 2857620564489084], [0, 18124973831054240], [-108715447203826718900, 0], [0, -37155512535187520], [113849827185117805216, 0], [0, 40257533020620720], [0, -18299477212392025], [0, -59148979100786850], [-223100478156680928920, 0], [200096568652579062842, 0], [623817027229356932920, 0], [0, -34045424638246515], [0, -129832111078732196], [0, 39597215492023870], [-788894630807472780752, 0], [-651165517060228650670, 0], [0, 169479482205383648], [0, -53766436520989332], [0, 82425521989193560], [-982194351932533667542, 0], [-394794081198172281260, 0], [149715156854378722430, 0], [0, -108929795272436008], [502954967012548260256, 0], [-1866233635390100171252, 0], [0, 302208945897506410], [-12866337666651467720, 0], [0, -271333798494448680], [0, -260419373361456343], [0, -143923590960093520], [-552141514929650581042, 0], [-585316459053217876750, 0], [0, -163977667812835079], [0, -168671544232916676], [599759824595464244392, 0], [0, 716001674868692415], [-2991531740006951495134, 0], [0, 438506447749224240], [-1708166209692402695540, 0], [-2876118125165703816550, 0], [4402746949239255450544, 0], [0, 456339821686418920], [2893763663513299393612, 0], [2393876746818962137010, 0], [0, 404754790330790210], [7345651619375181292034, 0], [0, 1336834083659231103], [9765068612752390024600, 0], [0, -1412917435573353823], [0, -1109767498152101910], [-553821888828025800488, 0], [0, 595825791640978075], [-9491463842280105291860, 0], [0, 1490397915917882424], [10491262477565771497466, 0], [0, 1979209127909595200], [3156560617922499202670, 0], [0, -2544167628223619066], [19206558144795517256536, 0], [0, 2049769264205598120], [9478513180877353851350, 0], [0, 2994651798661909320], [8948776854964405883560, 0], [0, 2031401231185620016], [17109575945516571548920, 0], [0, -5133016152499853080], [13102422420668178176044, 0], [0, 3074580894612097870], [-20398497816589363566070, 0], [0, 2707466576497405145], [0, 2684022238625885528], [0, -6452329383889869066], [-20544853903512693630860, 0], [0, -107077462810163460], [0, -5469695921566993642], [0, 865154784688920272], [-50988390523530132897812, 0], [-22727129260694476569730, 0], [31906291361058356804894, 0], [0, 10431347514961642241], [0, 2373635430468586160], [-33072891789223810426138, 0], [0, -10151814983435268680], [57880237497647749813910, 0], [-61948633849259958321716, 0], [0, 1563282124905990320], [43344090646078060687552, 0], [0, 5404991503245958065], [-39378264796516522709180, 0], [21187058809701338036534, 0], [-74111421314649887141060, 0], [0, 8351620995458723060], [-53800906062492802229470, 0], [0, -766479505088405640], [0, 14031263677407102136], [0, -7448715873512725055], [-12130237760813360501830, 0], [-21168961771404598548320, 0], [-33599692885084564536394, 0], [0, -4300759927370236560], [-114914312786543639983810, 0], [0, -367730334410237032], [108280121624417761600192, 0], [0, 25260817226624366725], [0, -38357659525242350736], [0, -9782847185914516048], [95111840354943057639842, 0], [39694148652685376812250, 0], [0, -529907006161352264], [0, -5103936395495181408], [0, -13536634538554125835], [-164702368245196495557308, 0], [99867600971244630428690, 0], [225368822019610087622606, 0], [0, 50595314573667586260], [0, 14695877221861274139], [-128903969065830911534684, 0], [0, -28656424099783929668], [0, 53367182165905678540], [174243605040846143754712, 0], [22701198915249814320050, 0], [0, -49963973144481755575], [-41561764694620285923740, 0], [0, -26153770682861855368], [0, -40933869376084712720], [255884398543290442446938, 0], [412522283145686146073980, 0], [0, -92569173987399154670], [0, -68441355885398277480], [0, 78635711390568988517], [69398878260673454696642, 0], [-497775977821265262404636, 0], [0, 71464440198892822310], [-157455396675410953768940, 0], [0, 127330462711128137572], [-505279824710148782188306, 0], [0, 21578337600429449164], [0, 98198332243494418320], [-392765880426508564297580, 0], [0, 4772194015140716480], [342347596523897341553930, 0], [-554463071933191407271784, 0], [-189254664942313813527692, 0], [0, 1619482227066306440], [-22953654345577982483720, 0], [0, -188617306958441474368], [-591975435167144934111106, 0], [0, 59796707083032381609], [0, -189872486822039050580], [0, 176437295969668037640], [0, -51783952955868094948], [-3419976787807877334848, 0], [-373370098629510543588500, 0], [902932148507105745364214, 0], [0, -286961503486948016656], [0, 52224032949309605600], [1245423780661912626666220, 0], [0, 123927978778894563640], [-1749464530263946149467744, 0], [0, -199836651211605156480], [-1720976119012616569267750, 0], [0, 81153628613390973540], [0, 176260796346705884536], [751812901785657990829334, 0], [0, 13269128457901970719], [0, -241831297355779603080], [209289857913915174310898, 0], [-168641425027083558963440, 0], [0, -133663721513618698761], [480954936965711728689290, 0], [752872397818775506254340, 0], [0, -230203355146756830712], [-239770436919996212735614, 0], [3027081449084593191232070, 0], [0, -38975268546839778634], [-2653327609405793261297984, 0], [0, 388038224154669222585], [0, -304523706571515286460], [88878955036107911445880, 0], [0, -276493801994362386727], [592422758223441409522838, 0], [2972463676305061954287760, 0], [2877752942675059795555430, 0], [-143472936029673638115956, 0], [-1092797783368894645914130, 0], [4130822418204037173488260, 0], [0, -200435876252705428508], [-339648894610643558168314, 0], [10203028523950761767162, 0], [0, -690876465214386571960], [0, 495101834066972503120], [3855309032505397336982692, 0], [0, 609703083271962642152], [2247702374922879338874398, 0], [3441427351703952042782680, 0], [0, -1072307101322600078880], [1092581076713177210519630, 0], [0, 181226149058814274949], [1555879999676470645265116, 0], [0, -667870556881333372740], [0, -684332169417888805055], [0, 1419657337161204943944], [0, 259698445531747854452], [0, -173888855003561497880], [2502083189193159362672630, 0], [0, -113934736612524229495], [-5150060552806701356199692, 0], [0, -217712789580474872969], [0, 755561022286805834820], [-10356236915490423730356680, 0], [-2868796027789534575216790, 0], [0, -854071019573349419883], [375864982730037691425484, 0], [0, -1806046033332165800240], [-5948765592665419024940792, 0], [-548914301115180224072290, 0], [0, -512166168486430544740], [-3851949301191826770663286, 0], [0, -343369535313907250960], [-8131193847264292196802370, 0], [0, -891842250975658549288], [0, -102155429802397310985], [0, 2120183864511665277010], [-8771943337405392443658680, 0], [0, 1568482795479931303920], [12158356025034723316166966, 0], [0, 537708370276428388640], [0, -125397660288442135520], [-2484514257507937483214290, 0], [0, -1542599297328730889980], [14579936900787037377627808, 0], [-2631082863903419483509030, 0], [0, 645809007891702534915], [2965487357207792532786460, 0], [0, -1114384608774952492490], [10772197043663876686802462, 0], [804869820960456128867656, 0], [-15901549111540972755769880, 0], [0, -1895126563999584806464], [0, 2825725039423301467629], [2834471562948271790940458, 0], [0, -3810864578430302724403], [13681045884950683186010884, 0], [0, -2107456264931294311240], [16141804855805797484765488, 0], [0, -2571079468758140086812], [24339428192181428775377606, 0], [0, -667355357917336783444], [-8162878072874179599863962, 0], [11767807469198283091099540, 0], [16320547417211816107913390, 0], [0, 700429438501930519294], [0, -773734812084745286305], [7313583589253745325104148, 0], [0, -5511630379350390550553], [0, 3192416694688241573580], [24038851154147938797652802, 0], [32576214377479037856591040, 0], [0, 2227954490341969495280], [0, -2127704798898200521977], [-6821887346758398475538408, 0], [7011155186387306039574470, 0], [0, 2045861908745433024395], [1148682313872429057029860, 0], [-12105191925500478513440434, 0], [0, 3566617130964304621392], [0, 188452482948897788440], [0, 6267405941707119576000], [0, -884128763810802301366], [0, -3902199166648702385776], [8513416640792587131866270, 0], [0, -6094278110744054799140], [0, -6881376795316217132136], [0, -3932522848912801973980], [-4144051953065924157142640, 0], [-17935911844041728476959910, 0], [0, 9328934157430271096035], [-19701904434511565337119300, 0], [58706968813015622149469738, 0], [0, -3738541637663093483740], [11594923209758367415562344, 0], [0, 1474619215155667840096], [0, -5547590803487794383605], [-27252990130586568903874388, 0], [61968352623517866444410, 0], [0, -5833940422963065087380], [0, 1092874095448222597560], [-692464342062165018934750, 0], [0, -11232296637694940762130], [11602588060368110257395590, 0], [0, 6321830406800704823245], [0, 6763305305339128378922], [-35484359371681928766522500, 0], [0, 9433655981512769162536], [-66127995503265642710167784, 0], [0, 5668283898046029384264], [-43200487642985883001910612, 0], [2731612496292451815246290, 0], [69428344742009563960353040, 0], [0, -7533703818576094234280], [-98687058031673370189466306, 0], [0, 12911331309655445093521], [0, -17942634630484577292240], [-38496558745202930532362360, 0], [0, 18219396357868130782040], [-92885712077940060223908970, 0], [6487386173079338602516516, 0], [0, 16980309608397370276270], [24648927245501114527081288, 0], [0, -14953413970636163955355], [28462368087147880210955366, 0], [0, -8857072917408440024514], [-104365350307443399758612300, 0], [0, -16578712583017827147298], [0, -3631664586660916527285], [40294363854079717440084988, 0], [87030047207967392082846890, 0], [0, -15618051559125793441970], [91716485915473987027689160, 0], [0, 18848808248086179774380], [60173272174104283822763330, 0], [0, -11145757809431221612259], [0, 6090140466895913315484], [-110431907699238109772715512, 0], [54204297957511923070271270, 0], [0, 15529480035313827903795], [0, -10018517630783594565480], [27896122412272598259270940, 0], [0, 9384124406111053066254], [0, 7818711611732876465536], [0, 8214178440426228510265], [128380609841074333189539230, 0], [0, 23543314553389977435584], [0, 23317911869617135315180], [115487938671050131264338410, 0], [0, -1481294856278847518653], [0, 21948088702109421696668], [0, 2422797226662321114660], [43899065041472902149583192, 0], [0, -15370607531310624092200]]
