
// Make newform 820.2.s.c in Magma, downloaded from the LMFDB on 03 September 2025.
// To make the character of type GrpDrchElt, type "MakeCharacter_820_s();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_820_2_s_c();".
// 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".
// To make the character of type GrpDrchElt, type "MakeCharacter_820_s();"
function MakeCharacter_820_s()
    N := 820;
    order := 4;
    char_gens := [411, 657, 621];
    v := [2, 3, 3];
    // 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_820_s_Hecke( : Kf := Kf)
    return MakeCharacter_820_s();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_820_2_s_c();".
// 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_820_2_s_c( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_820_s();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<3,R![4009174312681472, 0, -2038116419490021376, 0, 322324592457911959552, 0, -24243719749768664317952, 0, 1036856408375854846427136, 0, -27895507628633618078990336, 0, 506753311886600842649473024, 0, -6558594976665834151092338688, 0, 63084712008940411888632737792, 0, -466450947778939377964769394688, 0, 2724662698899919571361770771456, 0, -12856733199274892652008330573824, 0, 49918008869799073896285237388288, 0, -161942817203060455475681309497344, 0, 444687750015853610821433930254336, 0, -1044952992233260159809997350221824, 0, 2121053368730030350199265362599680, 0, -3748987799872932607634267877861888, 0, 5810377926653242590718921763469056, 0, -7944120129790929606429849658868736, 0, 9632204058584429078206405420166912, 0, -10405071886367255451591349761462272, 0, 10054463484046976053704858194028736, 0, -8721845516440369326342355996192640, 0, 6813148836396414544205156773682560, 0, -4805809821373884306652268245081984, 0, 3068361489940984840346239649158784, 0, -1776958093977991231395426203827072, 0, 935120253106633351286606122450320, 0, -447873460816172635193852713692896, 0, 195485944089870680964722901053968, 0, -77844082775071509806524462599872, 0, 28305464350282466274699281107120, 0, -9404692608901380198130064119808, 0, 2856640888522482130535658626656, 0, -793456314791305941012387901312, 0, 201547808261222591215636977912, 0, -46812499751864547284592846936, 0, 9938513486524211986661036584, 0, -1927547542246508728763012096, 0, 341236333087442784270943932, 0, -55080720220035876716050776, 0, 8095423015063320642410032, 0, -1081522617715466767584152, 0, 131065643798609505601049, 0, -14372004067354279109464, 0, 1421758086428296388336, 0, -126434708444219069032, 0, 10064401187242767740, 0, -713457116392438968, 0, 44763057062905152, 0, -2466980532741464, 0, 118318963206630, 0, -4880807675344, 0, 170579892728, 0, -4950926968, 0, 116091792, 0, -2112528, 0, 27984, 0, -240, 0, 1]>,<13,R![9979419684367372227834202292224000000, 0, 101459444150584674704796280560057057280000, 0, 99544898358290134968700696102053239534387200, 0, 9383258183355233763614277959030946769169022976, 0, 356042180305955547808761353706824338157466550272, 0, 7022871707404679336681082459212788553618252890112, 0, 83271301340940591610436404583034715884831377457152, 0, 650627066171245042528226742889829710564111255863296, 0, 3564740510330174762912421325863156750219901640114176, 0, 14326418472161300595820603049402685470952502224486400, 0, 43719412201402814852069626440830484582332017496031232, 0, 104146471515758724989733518858089657032689810938003456, 0, 198094483749564684970576790938855014240008195805282304, 0, 306546392887913956608101541109729273910332947913768960, 0, 392024067252218532918332243616838975763828028737585152, 0, 419794267537295209022380170907721780865850915380264960, 0, 380630512380394281955419880460258452191227759130836992, 0, 295007652322878549794901074192810865576135361099202560, 0, 197041073907470056697806627039190124454961239161831424, 0, 114214125119003001406265729492033691001347489138737152, 0, 57804888141668098583320292736537746327118452191395840, 0, 25679989625788669180206705840276086536540451812409344, 0, 10060706734205743878198602602833069266694502421102592, 0, 3490111413491541795065205528410342115313610340171776, 0, 1075946614348048145885086280841392146187867296628736, 0, 295708034955457395735365559136155848864076915933184, 0, 72656691174881088726815418840299418411940735369216, 0, 15999402451449690622667236457306772183069654056960, 0, 3164417573678531454451044807231398108703753617408, 0, 563214618937739603387225454611709388721474240512, 0, 90357323795350991055553276632609773716763934720, 0, 13085165732524249025590346489319451351720173568, 0, 1712543992302867558666978478300037213665882368, 0, 202757909544469869732907921654819937925398016, 0, 21733177473935888881644763547316956394892032, 0, 2110199284792867743519747165331568065820160, 0, 185666324988658561089300826610145502041472, 0, 14805192026844765096559183911546333569600, 0, 1069871981575369714059736493649994391712, 0, 70040770408455350485932969874362177696, 0, 4151717822858655749932542145756037168, 0, 222639444612034425302386699055522704, 0, 10789091528941150453513552009730812, 0, 471785036013950030119898369838508, 0, 18581736792793119661522678473857, 0, 657706730827553950946642253144, 0, 20863513100613972507014435620, 0, 591156268547001243637823544, 0, 14901205486521637715432250, 0, 332518052648005144414168, 0, 6529621117292442600756, 0, 112008184297489002332, 0, 1663160826273885459, 0, 21131477863295912, 0, 226342563436216, 0, 2003750566800, 0, 14264927322, 0, 78459264, 0, 312792, 0, 804, 0, 1]>],Snew);
    return Vf;
end function;