
// Make newform 4033.2.a.e in Magma, downloaded from the LMFDB on 18 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_4033_a();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_4033_2_a_e();".
// 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_4033_a();"
function MakeCharacter_4033_a()
    N := 4033;
    order := 1;
    char_gens := [1963, 2295];
    v := [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_4033_a_Hecke(Kf)
    return MakeCharacter_4033_a();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_4033_2_a_e();".
// 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_4033_2_a_e( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_4033_a();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![2256, 244228, -3427390, -367193931, -3172406921, 44246097350, 342415085540, -2428912927412, -12927222725749, 71981726035126, 248001088342656, -1264529966760480, -2829794944811921, 14241790285826333, 21065328571075801, -109886697975739460, -108249879937567848, 612078354087061259, 396005623436832964, -2562350815154973886, -1035167732289810997, 8315637271269392118, 1842460382278860948, -21430670051096314582, -1698523646103370459, 44697887501998960243, -1591816694847798341, -76593472873458047862, 10055884085569382799, 109141204946849215408, -23292199228655000629, -130580650850496651641, 37354491080173675578, 132193108181026086277, -46583409785227642494, -113918562421922219373, 47278339259790816798, 83945137117316151779, -39990288598098336397, -53057508370969651690, 28599078154762299966, 28809967433656924873, -17456107215944401100, -13438738389902359504, 9152008628844979866, 5373661453813516266, -4139301418258981664, -1832670872856566514, 1619401678669688444, 527897165156688136, -548776598664777487, -126037491120776548, 161109451086336114, 23967024979106154, -40934175663520656, -3257434882140598, 8980525335477755, 173446418897667, -1694982360028790, 58095218481644, 273737778177551, -22755058296934, -37542384938013, 4847155697793, 4326537053550, -754224965016, -412748023273, 91472984912, 31880459417, -8791897788, -1924032103, 667363589, 84918376, -39305779, -2316473, 1736678, 10313, -54246, 1976, 1069, -76, -10, 1]>],Snew);
    return Vf;
end function;