
// Make newform 603.2.z.c in Magma, downloaded from the LMFDB on 03 June 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_603_z();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_603_2_z_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_603_z();"
function MakeCharacter_603_z()
    N := 603;
    order := 33;
    char_gens := [470, 136];
    v := [33, 8];
    // 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_603_z_Hecke(Kf)
    return MakeCharacter_603_z();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_603_2_z_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_603_2_z_c( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_603_z();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![60466176, 1390722048, 45475603200, 251229403008, 151961577984, -3226890436416, -6097324437216, 18602728410672, 130981012714404, 425475265454676, -24956273628603, -5123757093521607, -4802981055307281, 42540686392008195, 28196720709812181, -260957697021720234, 65193397460009361, 928235911771284543, -1306874349027245310, -421122667286342991, 4392361496972231905, -11481094065626863492, 17762380349340028647, -5786843944783220965, -39082760105527740787, 97301262453856772781, -116974002497616134079, 51695645558796810105, 108676843197485110652, -325140430171184724768, 503870896445198429830, -526774206145587238273, 343061126730801301065, -52274255949572424290, -149658454453634734610, 156805633500458159916, -57114085559655525220, 7539155009644555242, -52501457286271043849, 114178712025119477870, -113597039066299529781, 53621801977430617096, 5182816694798847497, -23964146764165034310, 17769999158838850044, -14735896249859901571, 17988727057447155783, -15647634729316693828, 4745920059983782603, 5961405822487769150, -8372016001039404833, 2989203092259412222, 3955816510569548703, -7420321551509982685, 6773979656875018728, -4206731720627437649, 1860791469530058830, -536630114230711358, 39191044636765569, 65487658851569593, -56479834325815239, 35211931723557712, -19878277894277949, 9417648718915809, -2694811856744384, -695737285042066, 1642725074646006, -1356970793167645, 779218292884299, -346845313629895, 127270319039324, -44180774904034, 19165007519634, -11234575541574, 6886425494189, -3697494454328, 1615713910155, -506818882350, 40265087425, 92105787983, -90079994257, 55129172221, -25842338996, 9530129680, -2604872882, 361373617, 126537599, -137469165, 79999151, -39383701, 17948446, -7602259, 2919916, -990115, 289858, -71762, 14663, -2387, 292, -24, 1]>],Snew);
    return Vf;
end function;