
// Make newform 429.2.bn.b in Magma, downloaded from the LMFDB on 24 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_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_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_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_429_2_bn_b( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_429_bn();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![1, -21, 3515, -70728, 8921117, -1012957494, 50623041572, -1543007984130, 31480257692222, -434645578982937, 4014281847429836, -22525822070949627, 50233363828271645, 11584174639607535, 651359412311687751, 1023396597848477745, 5053414871826727819, 5746594741772701509, 15101055711073017846, 10539502333965250050, 13365908708747357005, -19075233355657135674, -45575140923656323071, -90061009775982396516, -161543615878604300801, -88188019383364493856, -200600426846872565621, 163096103775492599457, 23892882980903461699, 429682843744354463160, 551225199493173361859, 333138970421924009472, 1129628433012766024026, -151915658564192687991, 1432933893470246869567, -822589680273338825220, 1123088249343330111672, -1224635399851428512511, 105511009038254283517, -597260377976546568000, -1151198979709465388331, 658308485375796572337, -1670696749695026317870, 1255193825514123474015, -1019828132623126395631, 707954345011421372775, 82118876893656222871, -89195474764984272942, 700158347920695509305, -432681945688640036931, 665578618784836793676, -378278286935702765226, 368767351235941255341, -195682808432614203123, 115945974005128194841, -48709617845475434661, -5991378670758788042, 11063298221888407779, -27680792747953835734, 14000841099252839712, -13165940664216809854, 4445724044767618677, -1933213822266705249, 66614831962776027, 826600344165711385, -369367816531033410, 526662380436794969, -101241420565871499, 128405643876784024, 222329937366420, 4898673510329745, 4509862822601856, -8529818830017930, 369527470084944, -3507881951617671, -220461611629110, -562660493936263, -39140884915965, 48759272728842, 9427020774705, 44426061194417, 4647723540816, 9625008418280, 793043782269, 764526363036, 39264601581, -149424738855, -16925888472, -63634350932, -5341830582, -10244828766, -632494374, -302354902, 12326274, 209823324, 13966422, 45946169, 1860030, 3987069, 83007, -115485, -9450, -92011, -2106, -13801, -192, -680, -6, 99, 0, 18, 0, 1]>],Snew);
    return Vf;
end function;