
// Make newform 414.3.k.b in Magma, downloaded from the LMFDB on 23 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_414_k();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_414_3_k_b();".
// 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_414_k();"
function MakeCharacter_414_k()
    N := 414;
    order := 22;
    char_gens := [47, 235];
    v := [11, 20];
    // 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_414_k_Hecke(Kf)
    return MakeCharacter_414_k();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_414_3_k_b();".
// 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_414_3_k_b( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_414_k();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,3,sign)));
    Vf := Kernel([<5,R![1592286199034314601890579667904718333921, 0, -59251376969022393985532258842406766134552, 0, 763992923289294905829122526164388856971675, 0, -3670517629887711136865231863770161754067658, 0, 5185991560278374779916097111678292023587649, 0, 34269606891637069956214040984835484656974456, 0, 14643576400566531501764692842017677330652412, 0, -252837836241334954222758608496261468612206028, 0, 235778477172801575642611053262724333726602938, 0, -64795434756486308230818556765131284469204984, 0, 142569881299473724571296798413548025677991666, 0, 116755575631666699171516105150892599012700058, 0, 56849655742390609171645128029761077634060994, 0, 11674814643113636480150933569552399867262280, 0, 7973219472969196611862377736033544015572208, 0, -100209113549032907796558912758758369776020, 0, 45429061248311060679178139346014759365793, 0, -140462785754465950060553667086985537176, 0, 204035230422255721566656883843149111012, 0, 2101423810941301433595356435959763378, 0, 441303450536873670545524369016160486, 0, 3395081353360868011731808892285666, 0, 424307321490088339948540000788348, 0, -1218237563898015101946272303714, 0, 143888721134321760076831028755, 0, -2466085339309667109450199084, 0, 67324795714948484570242284, 0, -451272536750443750521650, 0, 15378305585111809644829, 0, -561137608777085699494, 0, 8251819614319082360, 0, -102629371931183390, 0, 1980300522083717, 0, -34569703200050, 0, 468935035136, 0, -6075874580, 0, 104428799, 0, -1637494, 0, 22970, 0, -228, 0, 1]>],Snew);
    return Vf;
end function;