
// Make newform 8048.2.a.s in Magma, downloaded from the LMFDB on 20 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_8048_a();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_8048_2_a_s();".
// 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_8048_a();"
function MakeCharacter_8048_a()
    N := 8048;
    order := 1;
    char_gens := [1007, 6037, 2017];
    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_8048_a_Hecke(Kf)
    return MakeCharacter_8048_a();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_8048_2_a_s();".
// 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_8048_2_a_s( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_8048_a();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<3,R![41, -582, 871, 15353, -49615, -45872, 190519, 136442, -235371, -191892, 122117, 129082, -22587, -44493, -2568, 7876, 1614, -627, -221, 8, 10, 1]>,<5,R![-64512, 33792, 764672, -370560, -2938432, 1443840, 4396336, -2104568, -3240960, 1464842, 1327922, -558421, -319041, 125170, 45604, -16871, -3785, 1337, 167, -57, -3, 1]>,<7,R![-1292009, 19928452, -55436554, 32818833, 56274202, -64401366, -21987971, 43133175, 4593967, -16197893, -993830, 3813428, 334765, -561858, -80812, 47618, 10228, -1837, -609, 3, 13, 1]>,<13,R![2465001, -13904157, -25390487, 185433726, -27709962, -472044947, 155130737, 429983769, -126416907, -157040433, 48631161, 26181456, -9123021, -2107392, 894414, 71067, -46562, 184, 1204, -64, -12, 1]>],Snew);
    return Vf;
end function;