
// Make newform 74.6.f.a in Magma, downloaded from the LMFDB on 25 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_74_f();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_74_6_f_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_74_f();"
function MakeCharacter_74_f()
    N := 74;
    order := 9;
    char_gens := [39];
    v := [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_74_f_Hecke(Kf)
    return MakeCharacter_74_f();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_74_6_f_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_74_6_f_a( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_74_f();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,6,sign)));
    Vf := Kernel([<3,R![102477566333487083393413453673417112240555432066624, -540415175761981471050462345189195681465738338221344, 1253223911785366556369873944581519719446755702370752, -561586383725585694631515839020308204952119103522272, 114701632892586274914384053101246534723574445410004, 46233729410599177920198015392134380697399217778318, -27561040657152951469955478759950770364943279249279, 6479667631814617879679021763889021215336575304204, 2400160969617691316682408431405372506601789302179, -1793561506246709272822165374324300935306364253710, 642071066272576323414832399744381889578686813711, -145011383845970349336701982873900466119497363457, 21108804997530029307247395725861329465304266794, -1819241557382969138454854318025598578852550305, 70904111818966093403096149048852221341200074, 2359570589750567151247091949552062658948633, -483501072736754058295177689585751861334022, 8081211921782220740241815295821589430461, 3789603705694418518241792018011174671762, -151679426877652100593579702879807181583, -2649271674077269203282622999902718569, -1216936560651444866945029635165108573, 7894805518313076188311072021107441, 6261614199957833234995502324967453, 515647300472892434213398356649876, -8592540267952693821277997689980, -1044513401881350410250641058567, -77110241374938434170716706418, -450751535573570054900862087, 204555002789935545950166651, 15952669357797409189097046, 337883474159226885493059, 18700101205167017581149, 696884442308994193119, 33853023585189374160, 3078086467641618351, 218893346333353939, 3586921466953326, 53034059115363, 1862655639021, 48800882550, 1702409898, 491920005, 7013421, 5451, 503, 51, 3, 1]>],Snew);
    return Vf;
end function;