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


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_820_2_j_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_j_c( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_820_j();
    // 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![3159021950599168000, -411759697221019238400, 10776532289059728916480, -16362586165041654923264, -492849182026957191118848, 1803881133865810719932416, 3380032092353485572145152, -22842457848281506974793728, 11190204729392434832146432, 84745052003517040517971968, -101532684853103457389641728, -145682258448507713159757824, 270591861748160987751350272, 123392905965360927670272000, -397512670336443736762777600, -25604319076146331591294976, 377736255851900323884032000, -55167522443257656952430592, -250935737109710133729374208, 70077630229484759770263552, 122223884768656070246825984, -45651464913713424883990528, -45123340024521435579108352, 20108481351689584276491264, 12950384005910065885858816, -6520203827147165394741248, -2949230523013620688615808, 1622440836099535458222848, 542293450499220423958400, -317608909482070919449664, -81735505946415153670656, 49714632908727949191488, 10229452288294804192592, -6290252446697177058112, -1074144063436299535568, 647889165675615219520, 95301257336839997568, -54538578414481931184, -7165302370211164696, 3756864770914380200, 455824026163971804, -211488671150742476, -24392399492119862, 9690056679731496, 1087578035730553, -358775055378124, -39889053371176, 10615751425524, 1184148952306, -246924768436, -27871223314, 4406222252, 505953635, -58105752, -6807980, 532548, 63754, -3024, -370, 8, 1]>],Snew);
    return Vf;
end function;