
// Make newform 525.2.bg.a in Magma, downloaded from the LMFDB on 19 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_525_bg();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_525_2_bg_a();".
// 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_525_bg();"
function MakeCharacter_525_bg()
    N := 525;
    order := 15;
    char_gens := [176, 127, 451];
    v := [15, 3, 5];
    // 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_525_bg_Hecke(Kf)
    return MakeCharacter_525_bg();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_525_2_bg_a();".
// 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_525_2_bg_a( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_525_bg();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![390625, -17812500, 208125000, 1999006250, -36853525625, -677087025250, 6023148273375, 389828316754540, -8958499247295479, 94961281025817592, 221828966263056980, -45140174006460660080, 1126214576198252678129, -15888901381347918017882, 164289448061594767734628, -1363915454662974312864870, 8645769664352763793867380, -39327203120297252674424936, 138387506378565271088412939, -415594223235931382682951539, 957998058110354093024984026, -1488894079339928192824894602, 3162512013159676147827658130, -9387649052203640538857286174, 10691270861539542028527897805, -10471277052940789351561231205, 54300890575807833905499608962, 88873566848557574551924453828, -377978542400418139283177049785, -833026893214983994406914086659, 1395662813775106621538600820014, 4024036976826685796976060142458, -3125112623333859838899969219121, -9660962185428994321456317931648, 7273249292539127938114470331937, 745361885281055040355230627205, -17653521175681045754485208992845, 49562034217302254575334760666752, 25283708022113978457885053014253, -120655229294991532615047289401094, 15557885437088898800667330391692, 141907536149087140549417516190871, -103690615528364964429737216229432, -44625241469738172328667654658234, 165537137673833794803568784052358, -139712160677947048705447938500016, -154215435061449040445761476021392, 281268976956932409849370802161575, 100055988285301588289644593505693, -290681523062827506511533249039972, -50408110556253392925772532195021, 188874317743593804516636205870700, 25581287466245238463430225987259, -52163076872314629071338534629650, -20447607114577744114557295720275, -46761686664325791229187691495503, 18372511190297867238401768106474, 75632972996815902548381584477381, -9138404839936305122578653801723, -53219853632553473893726869869447, -2006989018734366847932364937427, 18517135249312248847020677541621, 7116796929133000615913517612178, 3674754191550693281255534546510, -5782667846035944242036550990549, -9636747890873322899301240807451, 2153922578724134777358030222599, 6491885505084063818067257141863, 417094606431436333250978055617, -1919147255183203010107172537324, -1037207627795288557690150408716, -497171354774100498210665313248, 576439173513165793799041730607, 830848624518755520084054125613, -84199534264179582771215945596, -399020121596674818637552143651, -80114332838213568816331004667, 55347715636259035416010513031, 56591293627565285397838344447, 46093236598945687586436694781, -13700430144270056506024657068, -33406971248905686282966539619, -1962655041708906595833382862, 9279588236966971618885402808, 2611032628031118955365280169, 372631259997077719998210724, -871561957975551279336811431, -1405148015767418665405083397, 74040682713360243109950875, 590226151431004106320830926, 60323335734363055761086597, -97320322678335595000758142, -30441102159893960530332044, -22774675007759019551568517, 5726637258146383972265477, 19403116263886093279399521, 516907224086491611701248, -5570635960660616922656509, -592038552279031088552700, 418909212667869143924310, 148038845585825216083286, 306870441776468710632886, -5665007119685652622005, -144486461010512125009094, -8173446962804202909049, 28816644253119981730815, 2890426820892502631061, 26228767689329822767, -296420126140092360963, -1877258483865298290488, -114718292619552558149, 604459141308053328623, 53186443470273965113, -82667246532362491137, -8072316352211024498, -6684830896992181683, -783048508868067123, 5997884559225557881, 691500162310288087, -1410090980094349845, -172371350290405976, 135544841223358842, 17096949472562316, 19533928481880271, 3520129569261598, -9901061819161267, -1786937621699058, 1762223144594221, 338682073458851, -109238683266680, -23797009472837, -25512592730748, -4660355203096, 8545957797975, 1765984127610, -1175657232023, -268779098373, 39653948073, 11430284055, 17387645477, 4149511822, -3926514603, -1020547030, 378857116, 102540760, -794846, -197449, -5523175, -1594605, 881546, 267096, -60092, -18834, -1646, -779, 728, 307, -62, -28, 2, 1]>],Snew);
    return Vf;
end function;