
// Make newform 16.38.a.b in Magma, downloaded from the LMFDB on 20 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_16_a();"
// To make the coeffs of the qexp of the newform in the Hecke field type "qexpCoeffs();"
// To make the newform (type ModFrm), type "MakeNewformModFrm_16_38_a_b();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose lines below.
// The precision argument determines an initial guess on how many Fourier coefficients to use.
// This guess is increased enough to uniquely determine the newform.
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_16_38_a_b();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose line below.
// The default sign is -1.  You can change this with the optional parameter "sign".
function ConvertToHeckeField(input: pass_field := false, Kf := [])
    if not pass_field then
        poly := [-15934380, -1, 1];
        Kf := NumberField(Polynomial([elt : elt in poly]));
        AssignNames(~Kf, ["nu"]);
    end if;
    Rf_num := [[1, 0], [-384, 768]];
    Rf_basisdens := [1, 1];
    Rf_basisnums := ChangeUniverse([[z : z in elt] : elt in Rf_num], Kf);
    Rfbasis := [Rf_basisnums[i]/Rf_basisdens[i] : i in [1..Degree(Kf)]];
    inp_vec := Vector(Rfbasis)*ChangeRing(Transpose(Matrix([[elt : elt in row] : row in input])),Kf);
    return Eltseq(inp_vec);
end function;


// To make the character of type GrpDrchElt, type "MakeCharacter_16_a();"
function MakeCharacter_16_a()
    N := 16;
    order := 1;
    char_gens := [15, 5];
    v := [1, 1];
    // chi(gens[i]) = zeta^v[i]
    assert UnitGenerators(DirichletGroup(N)) eq char_gens;
    F := CyclotomicField(order);
    chi := DirichletCharacterFromValuesOnUnitGenerators(DirichletGroup(N,F),[F|F.1^e:e in v]);
    return MinimalBaseRingCharacter(chi);
end function;

function MakeCharacter_16_a_Hecke(Kf)
    return MakeCharacter_16_a();
end function;


function ExtendMultiplicatively(weight, aps, character)
    prec := NextPrime(NthPrime(#aps)) - 1; // we will able to figure out a_0 ... a_prec
    primes := PrimesUpTo(prec);
    prime_powers := primes;
    assert #primes eq #aps;
    log_prec := Floor(Log(prec)/Log(2)); // prec < 2^(log_prec+1)
    F := Universe(aps);
    FXY<X, Y> := PolynomialRing(F, 2);
    // 1/(1 - a_p T + p^(weight - 1) * char(p) T^2) = 1 + a_p T + a_{p^2} T^2 + ...
    R<T> := PowerSeriesRing(FXY : Precision := log_prec + 1);
    recursion := Coefficients(1/(1 - X*T + Y*T^2));
    coeffs := [F!0: i in [1..(prec+1)]];
    coeffs[1] := 1; //a_1
    for i := 1 to #primes do
        p := primes[i];
        coeffs[p] := aps[i];
        b := p^(weight - 1) * F!character(p);
        r := 2;
        p_power := p * p;
        //deals with powers of p
        while p_power le prec do
            Append(~prime_powers, p_power);
            coeffs[p_power] := Evaluate(recursion[r + 1], [aps[i], b]);
            p_power *:= p;
            r +:= 1;
        end while;    
    end for;
    Sort(~prime_powers);
    for pp in prime_powers do
        for k := 1 to Floor(prec/pp) do
            if GCD(k, pp) eq 1 then
                coeffs[pp*k] := coeffs[pp]*coeffs[k];
            end if;
        end for;
    end for;
    return coeffs;
end function;


function qexpCoeffs()
    // To make the coeffs of the qexp of the newform in the Hecke field type "qexpCoeffs();"
    weight := 38;
    raw_aps := [[0, 0], [-6995700, -9], [2764792192950, 3608300], [1724221976743000, 1206250542], [13367018177424269028, -4023288308875], [265290870826966589150, -90555425090676], [-44719536940965883666350, -3079186242321432], [-186638233286256856853060, 161622022785894675], [13120590074966940972731400, 4253077857910738186], [-635336913562941208975814610, 288539957399531326300], [-130710409895709447740772512, 808018083553596939000], [-34012681896910393294366619050, 31376871692897139640188], [-630241647733186566987342420918, -72793372998169061014000], [1285120511578959415584790802500, -534663593288359062192819], [-2126103437784467012579203791600, 475300434882113285836052], [79899868129295405035752839446950, 14426888205037602147585084], [118981229803045064379449684850420, -60242310255059763468281975], [50899420686519350100053127599822, -362475924583793328755572500], [5445961640490679054321904676273100, 979459830114028585789232007], [373066544896916246344981079434008, 2177420299751670155139798750], [9819925838248213011954691253743850, -147625704875655524814887736], [-136200819017047919517823972572337040, -5106068968759529107764525300], [235230137695454964654373108800536700, -29836237484445421167577462429], [-666434460855619058957171989397471430, 291848319033102635690128499400], [3001030944236614986519565045330618850, 1328437868638150209775407610248], [-91707626645345800863644808706568298, -4254756115682004276884863398500], [-9961230061591122004248605874500856200, -4356897161622342419190821933034], [6421917530924787839984396236435018500, -3078860692220085366410591395683], [14742270277170567272447122138170903230, 5157347552242561822276324151100], [29307669600804134831823248544074713650, 4204812687167530189781532300224], [163996714562080102640260704885047459200, -411182203820659559469273301439328], [124420461956238631186326717911276635788, 732251152520986758371202393112375], [647093255957472840071221756074661713450, 621603894944108734552124272558288], [4759621368973495193091217082436338119780, 531678450500094674475291916012725], [-249841683235389768135250916187744061050, -1057021204037174499681770306516500], [10728911655260345880462030843215974701448, 1193552467952631260829653536022250], [54325874741845644916208610385699980632750, -5265263226523066391629889340587892], [78316861299633496539079150820336713221100, -1093709450041009505468364249896049], [113630182003728902096147801367275207052600, 24212155898549863927368327173075782], [279999029465064092297155910740752805732350, 6012671889267345929856017958029164], [37810903209132004035276423138418913685660, -125279491266022822196900571125495925], [155270915925568798266431818187464446465062, 81677076374251018015399478293807500], [839093341221447109534687693809308265442368, 188425324544647921872379374023306000], [-956728996158081562238726884383055582834750, -107531028625856281703010169135878456], [-721334867524903164350497125672653449408650, 355374777278794996993884309390966348], [-1371266102267262206151889179938110610378600, -570634054027154780246120720132309250], [-4548965279634817580411184864932522934266372, 3956474296039136113719562688127007875], [-2013936610040963551407801565680758895125600, -12402502259834668598662905809269911864], [-53281441074209166375227539456113424981545300, 4680577606853190864017748718829888447], [-42070960264233534237660149427725297543532010, 2889788550260888973176961773355780300], [-30814859630431423932477670941349077065128950, -15902554050811995729007286876910927096], [85468140709266816414188944322109576470790480, 18518856759922177344153035623814712100], [18192999400938027932597492880260557299810482, 42550970246459815640025324838326705000], [108939635554992345163876152182187829415165748, -95684039104377329303355658807883934375], [125288810044716177545656838944651073288021250, -136243201081403161631628167545195681792], [602748882520195906699169192004191826828576600, -63747944166228100892471906100562325074], [-814129787359426984131324047703842969484870690, 67769259106277994676602808216238588700], [1044912111029848919348102104838755291947026608, 255019351722182951338054472635739641500], [1971410942341209281146400210357013391003372550, 118273009949741110749110112632809479228], [930494707912263029825086293557596574332416762, -630156227382715970211580902359728679000], [969776759029249041292128712606612788688791700, 576462270641829276612367763186577265521], [795859395023996376812078939224205143983441750, 90896819522863057872286203022037810444], [2267750032430606097090055626321255858718889500, 3868266760303695497203061640334487361867], [-3528365581751252566153684843366461346824306072, -2800974477278324523948920295782383874750], [6901627199411288101483653335757491688655818650, 579643440832247305290415232571252219024], [-22446554929936882432863079770207936946372172850, -324596146241878550111085577465613108132], [-34823141392177444385510184742601101647451595612, -5315463983924648086911219702973722814875], [-34656428940205977819940316422796814596034909550, 18801066306379787477733947471370256003488], [68266226683966893824759356426497720294146562900, 5069440656317764260192987130848073877377], [115486318943554292273239717792808744909220733550, 5988409328694780631616370611175634549500], [93893918009125366371107555223000781206574836450, -25926021816961816390496102527364786069216], [23672250349918773626108648128927624129750790520, -29162238720181653991390172163107932823850], [-64695263693274548934941626836678098284091908400, -49614230915631220428781381191680889316668], [258825422107641756178726441101711374757293157350, -3684977388819018451834480914486952896036], [155385596592869841837558799306786991575677691060, -84197037469372306186046102433014773127175], [943004992712594442394008602154776831668193155200, 90965866436897552026147538842983545166496], [-558373926767190320082359062565474571054900451530, -197601961308744648538760661702519529612100], [-367841286270941601080096499838527052932719327650, -315894205012892662311005505075673666624452], [-338080762430626629596588831991139095213992241198, 193133361536694104131029601562326944857000], [-799160624867255553525605557596674934981249844870, -175726723951761697762288323113212176740400], [920080641223971375439095453567657730603270741740, -979377888608224249573302606710882679599825], [-4145805779264492786427386086008332152383987990058, -90021428055887704101844620071005887916500], [-3175832997215056446498667861332567481681230963312, -63904759985229427208335332520434666559500], [83468016403434391105315463387924002261205544050, 747727931041009536953390542727871703489704], [6871110685274422640899826023441749309755804667880, -1484608061892383220211821067206078173181150], [3215841087566317583291185139044268438401517680500, 3914781298204144312350556305120014387747081], [5164413354345105790263549798611982087363343430850, 4603764049753477466499883000199601052605000], [7870860361167219164068738835185422818801223814250, 1335323238213322451027049481479142669587408], [-9478318108785424245714626333802602601688981089378, -5994278350481558076250948696051059972558500], [22367140298338835691798919693106884198514700559600, -3645227876910270910157031836934148244759124], [26538405815326035448870321804339767375432534479100, -3331578007404910994873191570977334767316893], [-36851915907522432911475410352652170442810944678240, 3420606275442089476576790167389893450616200], [34935854383524743969474550799312413492946426199800, 13996449722418142321191489182831097230159862], [-67256677951400028937737458855014395394112653380732, -10200486364528048772496760625522780684619875], [-102587478702326392004154227298396222448526930094500, -7420908386911671592479108871305757554277125], [23902993713462852909456295943432005389904461829800, 28416623727805448962631597182257599067670866], [-140645117596974772260107687472668073447703109139570, 597463803431283687733908840110586698833100], [-57568072300716044765517915192865681067298815222358, -57508380066717828196499401960626003653574000], [31813022199365698630500402232428505072248028828900, 32120504121861818993261251734692209380443061], [100189239957738074903442812767570951588865358209582, -205977037286560406311885286067024319511620500], [-57947444878333551448275424243501044383987460574100, 43292214547506026713153090469014580527974927], [519556280205516293958280220943933305898374576250750, -51884055535802092928495156661966533715765492], [-125477714070292564508176013605978977388815015132900, 169466587884945847291268157988581438221795851], [76741102467515438078900489321815149536886417069210, -62441674386942761112380240000322925524306800], [-568447727128469159474768635384134436770496343540492, -297940397149220374591812377994512991534132375], [882855762061688843710635975698642782145346505098050, 205567827637844547216522221573660523749130528], [-1004663011668733765571536720262106061793379814340700, 43013455918095121698887274419179644575857637], [-595134610371501648690003199639066410441773812080750, 209088864256328648829171189243631769206158144], [3351729963147473396944773645506741442866617731328200, -405304056461093522099795975143066128740135750], [-1240388252780259577144015090370377902575677538137798, -399762051625445088841489025848293381485235000], [867864119602139558797715345928962470077007362004000, 1131080700725348589859517170885960378818369192], [-605994171729338658470473088872716077368945011039850, -246394594873190163647813747566199240170632276], [-1260502151514331805065045607624316802158349185631350, 1644099197289377937156916571309884305189176168], [-3317392268540954573001294287429713301729735431812860, 868035435204587741420723710060433984732216925], [-12127864978005105477371057117944951898572243786712, -1038014682175648843694708490457085510654892750], [-1641051088740564695715733791954026420327047673294718, -4294412796673446000127713254505355612537691000], [-11751614328290689121412724832115888423381347393520500, 1608635919180679824155933538395452736299607031], [9593037794907606475103654850421530221750141688893400, -2335548257351100618293740093136142514217189298], [-1543735014813604722748179893726494984878811661350050, 2435735934229172095100183456199427913380459484], [-10996304677107299759552101063889074492597897850269380, 2681932450589443276434251879585925072399624275], [7130502367829663388777669511380754340901181966726022, 2692436742190074185133066423049489664882143500], [2609808053145133289672258788510239174725568880450850, -1130111369376044793540720779927727104517249336], [3019037875055287294199471208442716358094846980046550, -11867451245271901016585211299935037718336962372], [-6816814909878049032304777765916391437974168176522300, -8911809617698926674328167579388198479563026579], [-31951340751563027408719274956067182775272142594636132, -8911603934090369195603323967615121487583707125], [17282239553228651670167345115551418513297129440557902, 7706397984529121314555659076994253690790003500], [-80752727796686265215911814552809997087318737689144970, -1193472539434940548177033658808363228971592900], [-12024070257638893062348301009443393433180424025350160, 13118960398766138308048783073255347227865560300], [27325947235768648847321222990148478762042961913968200, -31695466578414103112846126090035618734136440678], [12094327562727425591194522235576919876743828455981550, 7618827142230171853416551486776975619725813404], [-61240940827831838092522396379929002059663346885000020, -29503159268694296801887846912668323629577753025], [-93846567949352818191270306988492249247751724076181000, -19263135726898965256191597957061116111604177994], [-148890569120252021008471107909519478599219426996504752, 2062229634212978258589323065812740668452766500], [-141891958526177262264733096776398848404656439959940250, -45957548683469508887868722251579069985370974292], [-178097573169665893347639962230751846923484620566202278, 70204784911747479328938867840881841014359514000], [184903100394764391806643174414677409665342427759575810, -80379497884881939051530904253927026631854463800], [-17461306879811085535201006012428834437121559574968650, -68889838466407588643401499838692765056125698436], [-27617590219636328557706022745814427429176412104677700, -14013633723274071406455112073622887498821308813], [-153168255839196368273938035910356236365653564898621650, -239880024396270306852770289958046026260363168052], [550957227288081151543562412378942063933515446938432330, -58298536367860427453318212066024076342560268400], [700413436876002860502886440564583396102032639992111428, -33824576305570673041918032727086490536456769875], [38391234551943421167537816948702058321373612529176742, 16008938557957783408305477932249631553657601500], [-1302873945167789091784793454635092590622762995469256600, 82043494568764815545803238224986814550474497986], [841568199085474930789538382533338380100921845642995700, -224120753895407816822703110225651559030290058903], [359246268835988321133365376537721526980144533247075790, -29132867940957081400712005089509129247675467700], [-362517442034535131140152793963326000533257248116665320, -675338062410314411589986239015934066830341071650], [-31729166040071689750391182984672716151767663377573050, 323270946557690133994967643591500821949724436284], [54646879837351414850041859082362007127159592639816250, -6103574303109264016001215216619888711569022192], [-1159433532395461463053594106965249755758618589462711980, 99113947841552918838334617512019558883348145025], [-2027596189607555503631695967980530367335535950792626400, 152338617438137270457872160419040797934785188776], [329003819067779279016253901556951475824531021037615550, -1207458684641035148363764303761298098692312219172], [-327110530419209426630739473007267599215027820985145038, 653110394081197762098097815537141260999654436000], [785869354990270344857668429759893018449545555501524700, -719538925262896645417257180710634435643056154629], [-3668227349194505670871752557270059301552841298927018200, 547831692338493760175579947788956405855430998962], [6407735648579231840267601727198761338563956896633222500, -13928703344472855092280863404169769836603745483], [-2875914911321145211167266417148476982657908697887032272, -20649532063055627186391919029745007212339034500], [1034903723119349727312713848245429985388313468013423240, 2134371715168864275865733396206362563499983131050], [5180364872660200697365372046203975860915442901710701090, -1476115258218796397899590860434256867311214646200], [-3965609432553665842146378669096657432438528244888362550, 29241201264545295036569406656513842720630526088], [-4648326435949025984098579342749034761191383031998863618, -3005425595833200027100118435351224549958235050500], [9066684518514143446163035295110600430364710585274687900, -2668265926086190176827071527948074840462617557973], [9752758895599592355821953124078272200438071123796327450, 3160686721061595910029856609779438293048037551184], [5329939896686793472958368954721801780513598748193800600, -3915503520739032627687319434671526812512013310018], [-5209870028254085897075129472832062004851058576822499292, 1712146273939970218481391833032990380303393481125], [-11502813891101271223086323546386986894947608472303731950, 1632160893629378505506967548974391262162701725928], [-26065428807945250994710423246716728993007515539108015800, 3965753297625863108483878392949192145291067568346], [-45112689871561262570484702316789753502609976878011232, -13956638672607729947646644727216261560360555379000], [-33228029978236287792121303563164982786856096099666556650, 243657006218098033872601077211457900418052409148], [-8292194046918037722459003332581067332834120686998229070, -10118150363737665260900766939944541314722607717400], [25052909483257869930297026406688050821101277114268162150, -612646324731427762426268396630842623942845970676], [522541039804970115510766340741692505761473511509413940, -14588699814855219281810001479121356917967517101575], [-40823883343144732720466196336988130552383380395248351858, 13682811671299887838538845779648195023298231949500], [79431727259757259640271732331382511663454428951033190488, 5026700856366660028210456156790275185370632112750], [52176116549976472365265046643684206094681976255941723050, 16355188596618811754715190559181909734595792280104], [49341151936539481107567192766445325716461643759333276080, 16383378835682076970737102594751204850379098027100], [20741000239133111301150523365701807513368724318791942650, 14204261025552135713674252152431901110639473097000], [-59849035538304977079552389095028264151395460558113375852, 19675607723677457036003383211213475435832505684625], [-30171045247097113045011108739312897719519952193867723178, -5203617338775880577143508142220472861410401262500], [46938101693189824967614335883725852747544030658759068600, -30978508226658341591760803989949852645928472661274], [-52661231154222376901852228717085092136912573745144604290, -9856529101736107645318485953096041535868866169300], [15010882981458108759138742448668135036615408967814404800, -19141893115188071269664296732748193903109911577488], [127412704537862910552822220065883639342402383090154117068, 25462188871825140513684192576105918465447787910375], [-71059984537231848619803470864535284545490871883385706250, 15358109712804624840115619575717662576525939481644], [-47356960878558662054014913732215339479527756238585744150, -31984986102740728914744411910980953872998254209752], [-84929163070326633048660555319679387451001672321629325200, 41854022426966403932855673672473830953921984368716], [143572084956207683950971287763391103096218409726990428230, 16861711321206900819266567731353890856360918117100], [48598024413359713783306540089958440783983595269674871150, -70076885541410366568008204679846893824506308233332], [-393352835440609087637784835220564681668214919981078502100, 6920201555646673241448875670957276486365210362911], [-318165562914879343229106314275693891498975738716233160310, 7185621152608930887708056375236017958862097790800], [307260034710341398312219335587345829910608766349991512448, 104831155525444432863875220039503478051649252620000], [-225708735924603789109149548756101207882157030952100743550, 79115028427362749878313516082249370252094552781984], [92093193216650986065124335074075172767440969633584128100, 20801990044865506848736575911679518727671440587701], [-31375309115635476657114405162563890211334349166538090692, 102270759639401511226640825928710422297347083821875], [932970535402359886867387106933538400543980998942345830062, -123459681459329862261742705027983008614016088678500], [385572331767810937424829124573155233383324353548586168300, -243096753529076256520612822880404942001036215561713], [427814968236278643286581756077244163682167812526924994250, -141656193914840145874473701000271308453877117346456], [-789322368139179181080881259489146090517376288985812371598, 111125337470341817949162395005244329751984612712000], [-75444877513312608710290469275810776638236125645580380850, 254126412201339934302736994050842387217034598362124], [697499335761149183946349999018112690402803049413621747650, -51778595054615668831663112764686545173620128143232], [795882881893000030045697085068454165853311098865793973400, -164063821738470159282677916619660291297557948354114], [-637883463901191878582023542705478000572899001150864455010, -3130833327420529297012910977785175622936102427700], [-206409857134225321060827097741033220513815838008258832912, -562003568818624409940106256690522667638863924900500], [1700841388427268647334581220370037897349249316248860682950, -78812637778097669860207074189674223186828160368612], [51910370405427834341966762299816942363553767140606385250, -360762628049156442597267350542372354085037559488000], [2679311494565505790358032342382949815700329170188480242820, -67836401457214528043454753256571315194248232073475], [734692314478945081003665415214517616909257225735081425550, 260243658339084096373794086638544395896321625191228], [-3280873753495492214538298208738226174340639005679488784640, 164538837044284975259565667697747355253821672427200], [4288309535514075769309466254996935729916826689344752498700, -260431451270889192400802508417152665487292416510729], [-1512137032682252528843093358020291913553103003985406207830, -12563132416378246078135672266450942681615499004600], [-4351462352339805015402631240596512001152823617483921058332, -610610509672650513452324593482728690388159031516875], [-3905788197443087337735985332416303078176071765622013503150, 506709833642730278236243423876120956032791538009448], [-1743755515123381861887062468498940262503814027586786555898, -1909901612714191033284888932391861331393503324824500], [-122203804196805221185624083662306036652357234443848830200, -1278481296634826566172892799240485144630794707145334], [732314042477358722528526825684240319425462818451964900500, -1833191126552950849973271445445018000202552971378383], [-1918733428356020266593966106994324787144364586249545029960, 339157820292715698303269728193258005353359811792550], [1577386015801701072797507659084212700614873117044661927242, -929221498785566008894202330803442094578256039510000], [-1832789693926532774635856856723046952260301831074395042800, -741881218521242477000227447938217647144360867362028], [7620258127959878845777576999324389938639477671192838795922, 1512420683239976232752050613221746188044441946041000], [11022871189309167827434545959201143927912443180751457286600, -699309502516399266383527354607310771591362947878918], [-1535424610696210885767540744631395378330327680225020213650, -447415767697556788465601596646863866638098465624036], [12549316537623376443444908311476659573761074934274763149462, -759603953442294814029734340687653642254689705568500], [-2806665809542933271097793589036363200527055705807909866200, 3736646713509460615200836467222293498225130336907250], [19816400419753140853878373862395850057751333676727231840130, 2938606756915568298899340832609947395198238275630600], [6847235756573214275509656418431888250014589463103894180400, 9766210757333377761102425661445410312745436904043836], [-18078312409200499608245439160990312700925954892046258511300, -2290331554327864702264815466314742916865339679762253], [-10221610679044055841562274141664152048566024705017149228410, 10965309707031041726235933859278106431232330447998300], [-6754879506439228631660117804299867034680000052586720994950, -9324991733802622284594557269798873954552793690874296], [11380941478745555718343828894210073920256527182160051622880, -9795268236996629409001625355270151570519653279983400], [6990747736132966359000813572521271365733459602245274809400, -1834607811906872816012376081961275155727779787271098], [-4526219050039676616983052849985460363038848291781750862652, 14640419211606887088908212452392960471552847904566125], [-33439113889702312413415782630678319790914538110423615586050, -2433879423231720701559831881482247590798008384641316], [-27472791712123535125135638013202612858064907736006951495780, -9196394011510508260597200676140294281263294822840725], [-8988018910474265953685564985186004182684812395571466521792, 10384667213240684737798619204036071562294147047146000], [24390680795783536973098986799174309428440801151126625197162, 1472509281095784162890317830260816713946770905833000], [7270106458952107302802037218289601566335324781865021873700, 19006758993613525982872078522486155370231565019037221], [33647859365080849599277688385404259390524522566541156290800, -7212632222183009272548607259844698879568566178210388], [-8292961994556873266639791255857424109650682545177634069230, 12465128391620850992515747095490364784979639305215400], [180052477611211618569544579019996116771610653202098935750, 26990919182478834842963042309567148603287717778479244], [35625822409917162226702940994582018824538532990209755020500, -812243319459122285682396171415807589706197992589375], [77154344579819868069697838428391369785091684085262653729528, -10301742465173676072857930643885228132687331034810250], [78830337609663072639823211683886480393300425609090416951900, 3520344537286713588320565060433178800381144378738811], [-54518810193065043329455169417543456666709671011300714904012, -35431443355747164033317218946731098488894237356098375], [29659581454763663467380690351862508631493310369703521767000, -7676700688339820429727310067334015780001174032754194], [76595037253475949820597044442184761594433181636468780797150, 12165562160353268159071848886624728231932262231163500], [177130773066653287541894128942558682160396749328585486330450, 734806751099825736332351803424042457353788526295584], [-91980734415740986660965030419974785159135565379709639193080, 35406205185823989447530224414369776559052552313096650], [31224697885942765060482311518840625561463218624452413493600, 32720162126404069535142702307051024255012338087424632], [179841512601633733207936575006138416323259996877132205670508, 21149253608712202785960255539109913139151509230135375], [39963860828248448391817812567257641781490555246054194811460, -45531528336807535205032756348194882377605305149250675], [-125399591902301449088987490576848639589673975515793713346800, -10025222022521422513739013893344663433192276541429804], [-152454922569464049225936732964543829471305093230402724217650, 42265764113123284222900515637315299389187770854538748], [-142276798236988154879149597236307096409091477456933511620798, -10199552937372534414984450910464756935894765405820000], [63121786595888695780122336712692741869544511531165794207000, -17441799716259212907256296971105862805907641120417058], [-14743916571182276117426135770033190869217809307120891605270, 105638165677479799170995976142633870118587453335654600], [-39145648823649056418218718730875005589646541230219865402850, 38844788034320106847485071432323776456600965506305724], [78698996332168336453234382393363012849380124939193767830140, 99659511455146688684939347409199203747238649267968675], [-288150327200357481652811832729956851095159537556656417033658, -833378713363014782989632113344897492499070941404500], [-164865916941488676574996048113097472132425287625850315984300, 55782486947794936499821955875153661944622930832615297], [313956349328228404986596431008281513132459043744337329388950, -2004589978775960895445289491804026217790824832014212], [279255355084266264584402661659412738975803000316564142156250, 11027442892277958161345935529533434881287659911830608], [-418618856827475787616404719015212378852282808968239313846400, 40582833433903538153470997573998118164661780741268576], [73265959315270849719559378728651225343126409072977810217100, 16732609685218769163076338903233325862677004762296407], [-110575722187263920574613028467848483661450011542087071596490, -55064368121992694059591195461910662194805931535811300], [-6697940573089489673697796358004449902003808812066919655250, 105247810600171398853541723359005700941677170064314044], [100008125816153876588853454121626402662257516831393013698850, -268518007612811205601188507313648385238208694666252152], [666284335496730094962289064266372388542389135733856019985900, -26098341286515555677882695318116605532334425818036625], [379029083448360492351837629233794997355049954709282013292030, 283434368991571186873033682180824364374375283556599100], [-339937319194188715353935398201545103684865079229570185545958, -31190373428287572891510113537479366319119379960747000], [-493579244762866616487730405730024523729432850605130905289100, -93881114180206506138436475566762698329083290676969239], [-326430448757561205605567232012402213766075216845367392717450, -201382730299169287535755626627623911672510979651570596], [130846631681947020261090605745683450573244121784136881869982, -379463364407286566081198269513278834016572882088000500], [-639189351296296678754265544724410770598779278767627560196100, -53743158767312255037702564414072673002064889102359773], [-1023631555756218662901898816633526310381771752568973739028550, -242770810887802206922683954849601635691937240627894616], [-1278212472604692146056560646340248739613837949560912237699680, -168886237461281639852944339062959779080839954132724600], [-1453669780466242616771501537253799972889007138614433585263950, 197678875582210535462976918572968809322818733726717728], [-178660344434086602480079178958758789428682785206415537971800, -617470811977453137902693145278764487827412656212511854], [-1256395599630234053847470221672897580235885369887294504234700, 248181338871172729519900404838943840120251950551394937], [541379572082607982188870822949036489735912989325152231574670, -77534143655396011658439745309969148199576591334514100], [1037835924046622578411924087931345921448667458001110987858602, 88307654695101998143005059405377978639840925627421000], [-566945713875861008725757749108393656832840112078804153269572, 217716925470963306930766096757036535251406157358721875], [319054685793308826397685972536565290145484103880275644386400, -11569422372965085169016365938452820029121576856616264], [479219620757179055329398878383264210689028554639273837640888, -707563272507153882798268868270744353250892369397988250], [3734290954075810691981249643491036064556001471063045667767400, -16070378575263270983222988344478274588605713556431998], [76677355712961217041139948527381924455320783481013430290422, 753865111537142675139743600322472713894876437467771500], [-5403677180443823843421634072182591207427545783752599472279900, -268321473299238626253991064771482995101789378830178043], [146053912285850890227502489353057008244618382396099499223408, 356877966830128183387578332903371460747003238186511500], [-1683744299800445629682306204973167744506863840650212757431150, 948265489172715852130633544229196874065836412698415464], [2306627085922955164705255336259035341702611421656393784692550, -1207632823739424364200102866587672105669338183388119172], [3234021437340008514267069897937547558006736575460606894575560, -509215700261056489642689857671670112654668618381924550], [-3460943888277404080768649447296555866722897199578598733920030, -560375415201028204194227540063306909994346749971733600], [-4953894156517745778529464456325207778471396302821837956485698, -627273290756381179934858498153086434473471068257030500], [-4387763433248547874995416664255405064033076129579960654302500, -756084185862047573880266658321106876870521943880417733], [502245081321829424968345252555310123105267181531101347666650, 582161471891975985249256153434154628127198670366060424], [-4649915552466635591683912844430153501545933556174256815238812, 335607799383898520563890113305018071885491086860191125], [-3864262146029896040188735899992583903576629603846129621740450, 1276778619103695872565575570404633230904101690868794204], [-4794108726384930561161485859789549239501393686461596517677650, 2439568223829660359463703748080000672125931625631723500], [-6985028651979887198691599070763486277579700620455387262277152, -1573930668593518073762167819394829947256331975182945000], [-623836650205115475746036915529280570377059788570992434194650, -3362164010252368500281364982486146961407508178063951636], [-2745374132999466585617140999967793326578878387604399492441740, 3310136804047087811573739911583309255460698649038714825], [10112080955888004577296505748911202948719221038498529558388300, -119557248250423065456467001199465309869354070250271513], [-1396248839282784447317911408573622745336641812097453272249750, 6419676601972501671526970311949797981134997443547257744], [-2286966348455712161444206200303919346294041270860627328087650, 1846069062085918520274796775041535708639106589499723148], [-4088830005776872557002976906262053386617114294171393364810000, 1159353884624462168714865500843541073654456084366555500], [-3876016770283101892633308008521157236984847625008361022397700, 1734820286322360989825928405188167199287546581235535491], [2634625636156175121847347351811308696668727203952899695203028, -1117929881650983031738626180914658278090227234524717375], [7447891894081522378015903966753172920011317616105468678135650, -1483995611908869612258885804879993550351834067830005432], [13846854089259522967705097112506631662548369970009851870733700, -3015268984377068352744189304136647906189763860489321603], [-9546234301102699082877314254470750053133519440452008415260610, 436697494527557214390499228345573758656363586776160300], [-16230338471147907120930433168682005527156270356668351883224920, 1713015092983100112472378244286990849746542629657336850], [5539549968615884499131322323386406201949123730939234921344950, -6937531412763530910158104517921269856688375646805510916], [-22913404279612158687650483199663831776561715264405804133112400, 2982594727710222194031609616643463681940998663590016476], [16159057826128985932550714439540359058991379419747999981864710, 7961253799164561869665926791416962216627128039704298700], [-12566629727796030856772330950733906876963597973401421016012638, -4037732176415811850717145129094000394771589520141251000], [24580126536763946729317921426800158197668781696366432240686700, 1470651582812868044863848406297578621988793286251317071], [-8842621242025196239176970590184262325854849664394660497328200, -1048238641896310429425177435152866702222626926664435738], [12797717487168656186408640487742672823012407601120100404074570, 7852753757557845251527221232230057112812975234509579400], [22930678999172339628742011495986574366901386191440394508284700, -3788463105354788265076894231723510187100471324340847125], [11735820803647073368887634247558413768050754761344536205723328, -7159013824235552262251140786982442726528984454787690000], [-24326677966696616282440277406186240390408698911735010670620350, -740892392567544931856856719445825976786224965302219776], [-41689911553469960400145323785869256571915059893736914462835310, 2274012631035294630569356237615779338019257639269236800], [23949454784610749710836685087841763051502024615805374961788, 11659289687530541364312235465151058894108801898017259875], [4518317825790451058116559046786776119938263765335314156059450, -18025806409939209431263752386034114780738891998384777712], [-62248256618646008676541799626033452016322563581840923915971218, -2306681003030395942296089420047946288990145803034874500], [-25653180720635398652667520294289068217140247194128349202156000, 6361400542728066257152214935784737756461890846834095656], [27152731426086064177021290978483403765194842770072872952749450, 15921261015223383895554394899115592137168449378428611984], [4512480143784295743483801631196808831104788651016560021673522, 22112037257173455596924169306196960753123166069538057000], [-9831567839805264543518416511737166111672979704890194484564340, -20786576177566182905311604392940161403752952144387200425], [-6969303540441276880362799444692230151364275331510579295806700, 318335604321865135226223464370416869537102521721983441], [30109930557367466265313261708338535274936981995856486307276000, -16479211362162734628390163211190731480344460955435082408], [138822720020003865352944553470400386330157507997600642216232150, -1249844916281081270058997826020857298588532187102837876], [-27629584816454749282595540821666913381268716862108085885331458, -11130576070492415284133534553875908610044843799025136500], [-14352287635061584880893921608772770579426556184460824686096050, -382959307125685542823206477320943873094997516847760612], [38879356978106528463389925029879644349133748616383380190012480, 4729964603803705610726031799009486592583258466625883600], [-106695586739993271037727972639938138111621193168999899635832500, 6354210666590932713653700065128384268141584744352518631], [-22943154545743771433765155660739019602843008548713835123884252, 21031374473296462169251493239218789769524369288543505125], [122614416883435441032501139899730169987467028984053241728454100, 4360442681845544986430320300880671064845500828163449057], [17717137826393097778276478136000830493337270696306315141603310, 7293884626326602978292010079685962329551874678554452700], [223681473859011344449888362221240572786778350125487203643850850, 520768440853870940088678213302992402016362249689484064], [51073858691966814429392047199180164347691649785202375765834762, 17254679519608195149701756913621055236128683429236273000], [5704134139455314476809281106082961443818419520835450499774800, -16308147312562516415474239643585517990983971125234172188], [-91562240883094006114934223767466879319882716844438592866500250, -21022124747644135919883715974119892328394679369048125556], [34761224954153195141777086685632098835856381701144554795701850, -44211088995391178080094879171011269957556444192803869552], [-49754082180065769784718705982125330234345799092982679696612170, 683618367457281925357450718124242708778825982546807100], [37508786761913813382619123714566014959484121854330263552515928, -29055859074699915195577061641517447505964382798178359250], [-9209748944769821675585691974543081738958279260226939328842450, -27996398982165952627268563944968790844657353844634938196], [-3866531906380545366517779527165045448223415789694878490332820, 72137378128033954621621012024772354884771104362798724975], [126071766011152206862524746773969348989384315484447066754916182, -71164022720594597397465062126893460760273695949118612500], [-62109940915464205794907071188179994180761203663230618253991100, 6419591401967895773917036354330996668944214095114744877], [29708991590524471184191194481745118222591107129354953236396048, -36419723735365223125564238466340917284247195082869323500], [159786743474618253055816517108200768135280218877599853730051750, 17427874804235110345618123009347474610967527108107715308], [-119452499991999388943166113327770076512224417582844739292279092, -91642506460310895703713376385541160867472503945488713625], [219962196057164492304219497985320740664415640403422907775939050, 16055162665502271464820115144787184488018161501998989328], [-187613161750116224387384079942127379269968101856508957953869538, -32458518181686807164585735922551503514836904844484736500], [-97606793541962560710495160697260487088165159093718907702214800, -5024833713500724887994090628812666629484712244693294004], [321183519191674012507126399539135484092070859167923405558534470, 39772254893132538806929221059612711983003018445647137900], [258564822282038397313700982648536729867953669214837791301000250, -16623385529514309746230078294071647888415137575495693656], [525726832014999677527845659491172952083876154502342839310528800, -29635312681710733274422796377214939809357030235054015000], [602029878820256908820991819752155157151530609363893518942324228, 16517770588349081967309913464311149065089506258855072125], [-129650641805589762000191477189231536414955941271043271907206350, 189722008083412126376527902000873416350742383177969188968], [318440543912958868546204896222589190345269857434588319307055400, 876018401586832310019135097982972454927420963050113586], [260687757363807391404001016588431946880478990967629431972912950, -8691651995524111966100362190941736025252582704817221412], [281839204807625096566397212025913585515767540633137150050307882, 8062610468626522144826515610405863260577764510924445000], [142415360621982875269882770983976431175564038138748869517860400, -13515179978020193079717212624809890966757703745415401348], [312699335162921076911863892860734875144245679936761015780595220, -246891654762975136801906654781360904832743566719892344975], [406898872908882035125610139025191290548134566651927179657701100, 171422697094747044534863568849419956405349687465479742607], [388834056812449307374000548313385958036330351213368974227451850, -45653447426808197149351298325817060236005762598955994136], [-82542080835806697861679086405027525525812934324456026862408450, -196279073250176643791027448465287772376103739675186315572], [175120896620761168339044550620209473933187819505407302618235800, -18141890543801375783246609311685139846414310587667397634], [-246656722049258551455793191278497298339976104152509938819628358, -32144761507838179690554049555282503507759854324389254000], [-505950995570547753172580585108148515964000174388923069665853012, -313053021676805918497650163380835054110652145334157350625], [-338064511588428787962688835954108725054112320789359165060023420, 59828148718342926722847640413632690447001126183164137725], [-585053413767004400860802979864839021681191991682259815450414000, 345502269644036742660470345483612362733238394500842283556], [665094548526423963174593839310247262263081189286228173063618150, 338827452227992594519097716152963746899564029852572297500], [-825772660352939027360499454797364873810200115128497996970283352, -176997191472981657524261113490742208134918189564730920750], [-583924704905743756193909632462370098547546572994811187066203250, -130259375846624394330978664427071185919893383187535731492], [-377284804297751322701903548898521362105528357284574397592169540, -277292349669272557986157928218448016297316552590015790925], [-345756240887564832643770376979757824498674047269913321634038432, 458703926564898006630364273982128947677165524262100411000], [-883904816921330824878331426146541924972318703291750338335334750, 545203181535635264756592134884954854392131581174937878144], [-868680955952904098133490377024046795621078733917206840226560270, 132603346538447013851131855647429597731110485397366530600], [2387249351033835193660616100923919350796425270658221519148522650, 239707212313715904540697753119089896216479974383956441168], [-638189797051708217013893414006917066597888662394782505455140658, -229138740466392490003729115883985155845912973297104286500], [1607374813054797109613717736546268934114700649383727769677027050, -436301536662566699055309506938579102824039072091936920496], [-631930098209042391718013460672025635172565616265089277386956600, -284690522363207821084624042660114360915244429653303473798], [-634155811577867813244945335959397621332226834327335926961182750, -1117257054383660907301046988472704744967083189707174571392], [-279169578720422767290297755489514965787062284460876418947463380, 555593254640050637226343332279958318782463449326055767775], [1481685524948342634180933614221297060531215036178693026489492600, -401719956992055871349510218599337062017692266326677213674], [760392234738029698835844221572091601001153651468998946914873808, -628804757281570496257054295493968394472176095229120997500], [3321414862402966195033695767308429061846796097755549691674040550, -468275119230292149628533693849926079304608871294328082372], [2176505688264523534522908098417697459421869413306438796957771700, 336963515146023373620478388779917178014249804485454780921], [-699589797267511067648134146071966393672574033228818694061315200, 859827756506193129779210949014046336458396950016120242912], [-52247692596350719528705569244313605216430095214090024111221630, -129456432215944200490673973153120501061317216174218661600], [933536422544028691616797238872315804243921200592702135654941750, -1018865192378690929719593407313407900581981002821599837956], [-1931836525927325201220067109694593289959034450973499817661427100, 36628516122602957752773944510593551812672154346449007125], [-2007044662742563809095916305020792214495885008083321689297442500, -122239792330993651110025274634448384403146985221530415533], [1691665481785429900690267371208648339124181006197109252479797128, 328585835951301547206738991336812496592600981905423630250], [646751587738023964650488853964640379237334408773175520120022650, 1056412172330867973502797224287388348238234064100433132624], [3296840415743929078322594911175225592367060437970153371478063840, 597115239926568818853228020533122505424107617424718107800], [160292216093950904332698719382167037810335666257986542627084490, -1335258007738108967638715232839025627553406031537997425200], [392740215863029591368600562250372068074949853546192324246299588, -231435730595644837473092637390063033062231778456192265875], [-2331893858480382320881800572108167787796445166528490298277229018, 239808966817050227472355912365674406845125892979042681500], [708113139272561724059040273482643071735675866677043068076796750, -390634109978591963062261013806950767387034700738122634500], [-5184101110882135187664675722276829079941628176478514870667263550, 816877975426196140961233113198544637298789478823974749384], [3810149802565214660785623510460820565459984614303489715739375600, 842637015999173140362867373632532036176883867872107005932], [-238734268231859149508295251863032470422452238136291310136186950, 1830318030368775606574176436735670590483903999936579467728], [4337217467036407857839115425896169403446284272228975331741979670, -1646265649538310287077401365435804461199503487926461038100], [6199779474714899748039161239797837140741386705858284147006706168, 113926744350600778095019617879732451686731141634294693750], [-2585726500737834994864748261459593914489650859273433937358995650, 2323381638224485517115748623151498740659607465321784815948], [-5263316551261660316522836634497320331985403043823047494126808398, -1404121571939997080442348597471491450628125025465044471000], [-3046599998831439987318199716916035779537314369603566700004353700, 1511741119090979006829433695956188438574409028299535167291], [6124819594124391942440786387931630998925694831712862059586390540, -751157500478167382509197622759526438177704599953851966825], [-1220741254628816265182794816043216514857845594506967165329611950, -1957815611278220928569936357554724044405493187153308457696], [1033691961341175606930212706401400346650738327932877619080850950, -2529091849791491726609250993526946936466260276938653743012], [2413560810546126177225053478998620922698717469438245843444516500, 2534693966167558179824247002954585437073609554777604822481], [1710050489572836178564840271599505189626778483491014051070109548, -2354066403298566804079085044483894179737074921793828540625], [5090193726648087762137534498288513346186537862496713244924434250, -2588706233619352235351987433119460803816942370405368199192], [-5814832150198724407168980651360560192990367242887875032580424578, 2513197898075769042339573997736466931586303266309456015500], [-2760836025192682411420859330492674592919300950404236324832741440, 1804989273062833459586795719682399639073647332028986657200], [4987946477866762607748516795863017926932987163957873715742411800, 3642361084296321921685767311258136034195162759020974034462], [5976753745430567491197036940646034744263701689256093344454856850, 1906099170478732438546116923868718636733151859101071067048], [9471971333010307702569778131678307108798988174912631143602297800, 3682049906705008576796040414028729399301266683414885638266], [-10937240435170720374391676892234156765182090720261670730164884370, 937546665709298389794001765742358806022554191126087341100], [2142756987820723139426645445060248142424085060589288924765632150, -1059006188385802504786526977147175331136340203900623938532], [-10131693053352185442329321361159668438926873442535058707440554800, -1624543571414378401880606795713707054479669673050876157628], [8673572814608801850966263478281206110910630390579369326045811380, -654588321082874486821831587953976206957881293353334448775], [4323948229176906836870965330992310599535443829033929399309233450, -4875631030477702051620649514670617401789998451544923848816], [938662511228732503394377422649970763822489479281076953564614750, -4323878689489753682526962840851210943972741404367894579092], [538608307211391242904807001194800144231948080661495699107415100, -6638511328934064660146996674760443607338558409035394468749], [12985885139620176725499510890024992710070996729470044750520940410, 2658001547676523750454375072713821615316517754208134160200], [20823541976044829390921875335172191772932228375595810762861042708, 726576272358242250060071864592433344833067103669264076625], [-26190822286869513670579838506687836960971827076777121469801407000, 340313257669599588464018435173468503782032204335703417250]];
    aps := ConvertToHeckeField(raw_aps);
    chi := MakeCharacter_16_a_Hecke(Universe(aps));
    return ExtendMultiplicatively(weight, aps, chi);
end function;


// To make the newform (type ModFrm), type "MakeNewformModFrm_16_38_a_b();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose lines below.
// The precision argument determines an initial guess on how many Fourier coefficients to use.
// This guess is increased enough to uniquely determine the newform.
function MakeNewformModFrm_16_38_a_b(:prec:=2)
    chi := MakeCharacter_16_a();
    f_vec := qexpCoeffs();
    Kf := Universe(f_vec);
    // SetVerbose("ModularForms", true);
    // SetVerbose("ModularSymbols", true);
    S := CuspidalSubspace(ModularForms(chi, 38));
    S := BaseChange(S, Kf);
    maxprec := NextPrime(2999) - 1;
    while true do
        trunc_vec := Vector(Kf, [0] cat [f_vec[i]: i in [1..prec]]);
        B := Basis(S, prec + 1);
        S_basismat := Matrix([AbsEltseq(g): g in B]);
        if Rank(S_basismat) eq Min(NumberOfRows(S_basismat), NumberOfColumns(S_basismat)) then
            S_basismat := ChangeRing(S_basismat,Kf);
            f_lincom := Solution(S_basismat,trunc_vec);
            f := &+[f_lincom[i]*Basis(S)[i] : i in [1..#Basis(S)]];
            return f;
        end if;
        error if prec eq maxprec, "Unable to distinguish newform within newspace";
        prec := Min(Ceiling(1.25 * prec), maxprec);
    end while;
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_16_38_a_b();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose line below.
// The default sign is -1.  You can change this with the optional parameter "sign".
function MakeNewformModSym_16_38_a_b( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_16_a();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,38,sign)));
    Vf := Kernel([<3,R![-712337053132656, 13991400, 1]>],Snew);
    return Vf;
end function;