
// Make newform 8015.2.a.n in Magma, downloaded from the LMFDB on 25 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_8015_a();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_8015_2_a_n();".
// 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_8015_a();"
function MakeCharacter_8015_a()
    N := 8015;
    order := 1;
    char_gens := [3207, 4581, 4586];
    v := [1, 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_8015_a_Hecke(Kf)
    return MakeCharacter_8015_a();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_8015_2_a_n();".
// 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_8015_2_a_n( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_8015_a();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![-15565411, -167192879, 725746728, 11692453860, -7284423230, -328356489140, -80275449415, 5197923724405, 2244371762356, -53042207338351, -19942712088997, 373861660434656, 87802763359233, -1899586220055327, -142309924371809, 7171667383039613, -553311509982404, -20596634025594696, 4386131799350979, 45871034974820688, -15239407588704916, -80509655854738130, 35268283796259810, 112869418124378104, -60367088835106683, -127785913354224757, 80180013750247372, 117819741421603895, -84995595025987978, -88968188034323277, 73260330983901312, 55154313635876884, -52017679982421122, -28016933696063838, 30711390703013416, 11559894950244845, -15176676768572079, -3789339474739021, 6304907785017924, 932518983119463, -2207269926785144, -141332442645447, 651560105483348, -4485816276845, -161957037233207, 11098689202791, 33782907429283, -4184992812454, -5878107656491, 1032468696404, 845155977157, -191648900818, -98982045114, 27830215961, 9232659964, -3190554193, -660264449, 287016016, 33556026, -19886798, -972418, 1025905, -4389, -37136, 1744, 842, -69, -9, 1]>,<3,R![-504199168, 44870531072, -834183838688, 5336712660176, 4184621928584, -211123085673760, 825101851336880, 777267618181873, -12549893135000770, 19513656943923559, 62673612791332795, -209263590374270953, -85328987135594359, 989782951851466711, -450214813729305815, -2867059819548840567, 2781939194691265161, 5701115431297154487, -8066399672994915164, -8232648101484083059, 15707859080172824147, 8885543886103260845, -22764686331179919365, -7231090965312039468, 25790935918078097839, 4364231490489028402, -23511623848532011824, -1807566088175487093, 17574353289883824955, 336943389369035894, -10911443081815965708, 174800056462743695, 5679099395964965650, -205628513646945748, -2494178508180659253, 115598020965456457, 928639514456390973, -46274112332242786, -294035215456724167, 14414142313656742, 79320312529218934, -3615419466774260, -18242660395306318, 741767066635153, 3575096640255101, -125354365020254, -595967624052001, 17477770122003, 84242169101171, -2005594931532, -10049266351493, 188220608319, 1004812262110, -14293016954, -83424533775, 864054753, 5677201438, -40581066, -311012893, 1426230, 13367187, -35270, -433678, 547, 9978, -4, -145, 0, 1]>],Snew);
    return Vf;
end function;