
// Make newform 429.2.bn.a in Magma, downloaded from the LMFDB on 25 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_429_bn();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_429_2_bn_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_429_bn();"
function MakeCharacter_429_bn()
    N := 429;
    order := 30;
    char_gens := [287, 79, 67];
    v := [30, 6, 5];
    // 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_429_bn_Hecke(Kf)
    return MakeCharacter_429_bn();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_429_2_bn_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_429_2_bn_a( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_429_bn();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![9150625, 152233125, 2455619375, 26808127500, 292490938375, 1646858314500, 10762503827250, 58268279133000, 375998542518200, 2780591551837725, 11877614720861250, 43721396704979775, 71487593288062985, -11717212382511945, 372876263533673015, -1788872412755943105, 659246679237730171, -5852812690909285017, 14458503147639746702, -26075473550066804748, 12010416263002524847, 85955576393981924664, -429832513536133662917, 1801527884135801356068, -5122468222974685515275, 10052675973631537045536, -10399261849015042869505, -8682008919197141837139, 71981852672008357154247, -206398678879794844624332, 410226388939192110393791, -639172332377599985814468, 803492544278968559041084, -833527841667780337074969, 731279792602102859542763, -532359530699066090664534, 318214495557511746141946, -131264048600087194322631, -288901033410675957067, 61488595203108803996592, -88812081734512050727343, 79140059771116575853647, -60776806597558347334016, 40283106550325079067419, -18238779828575800908495, 7517325848780062131711, 2879864143177044655057, -4523938751006554320942, 5618048265033906803995, -3992049658934322584643, 2276465205358074985776, -1255679117416737251580, 45801008774630943253, -34933248459368996283, -348627592880043885625, 136399706600821364097, -147920035560414634412, 65526623888009940477, -13495543073983859776, 17595939903531207402, 15262014583247062850, 4337685753249691035, 9887042241567661859, 1404981574657371081, 3058138968450423993, 403363429881110316, 355284923782099209, 54800930004769809, -121220613881515308, -17426529390759666, -74286850914694069, -15192898838736288, -18804524702945708, -4904970530072052, -1550534054649267, -511417164459420, 735562077328897, 184483906396257, 326041104633146, 78540549126351, 53389493457619, 10617807271260, -1416797988786, -603643065171, -2500880164634, -466502500989, -531362428959, -80886859338, -41215893906, -4966973940, 6270307340, 935532246, 2616529358, 297984858, 413300670, 35839332, 22308419, 798456, -4466455, -386505, -1184837, -61626, -132425, -4278, -5067, -96, 1054, 6, 247, 0, 24, 0, 1]>],Snew);
    return Vf;
end function;