
// Make newform 429.2.bj.b in Magma, downloaded from the LMFDB on 25 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_429_bj();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_429_2_bj_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_bj();"
function MakeCharacter_429_bj()
    N := 429;
    order := 20;
    char_gens := [287, 79, 67];
    v := [20, 14, 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_bj_Hecke(Kf)
    return MakeCharacter_429_bj();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_429_2_bj_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_bj_b( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_429_bj();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![495504774241, -6307498198920, 40145459335200, -367036117334570, 2056326773152055, -4719519318852600, 29412294741890450, -129489145643373820, 97897425606192251, -1648294788613790310, 9382986704286596650, -23423069817928722350, 132380229941117039447, -537446177282248780560, 1335188080836506851800, -1824869194990684624510, 686651241645394980404, 2322487351620426284630, -4486175389947701529950, 4932904027643425571040, -1726655908476896957683, -3059537814531664755370, 6587522213364305141350, -9400565842633882895770, 7229362531347528552032, 2991203689115171054460, -12138882442939540386150, 14865184940267698474650, -2653653277161132866972, -17612143278883738712720, 29304104081609146395050, -36296714007050845100870, 27562024832861751180655, -5856987770783876244520, -5719582053874633522300, 11748388038703236020970, -8729066200611585203909, -1851230987521470117540, 5683228938189672080800, -10105295956079376293990, 7512624206368922332064, 1001202030761237080670, -1187589308050791315550, 4023195102028602050090, -4416317308865408996981, -451341579424219103260, 317378056322220146700, -1098824274005126235140, 1652261169562197205580, 101759783734643120680, -148037356565832132200, 293524565265809751130, -457930452707799368629, 17827286002643293860, 52576836609596823350, -89811159990196610990, 108874236417921483775, -20541838581901667410, -7864216350606549400, 19424809988563322520, -20071137145303192011, 5565273803173372990, 630687137101441000, -2778391070773049040, 2630462270179398137, -783935709343463820, -28492884883397050, 267000377308430190, -239189344621953418, 67691766798417230, 1643192355241800, -18643474702901730, 15839975237959534, -4205927042420250, -50670176460350, 1038930936622370, -869787151926251, 233768992834400, 926562554050, -52614046030060, 43187237209057, -10793631598510, 48230440900, 2026622228710, -1608894108962, 361203231780, -1566595150, -56912016560, 44880458681, -8490975540, 36360200, 1160771260, -1024967284, 162644010, -584800, -21268080, 22908717, -2834880, 20000, 323910, -406480, 37220, 0, -3280, 5879, -200, 0, 0, -74, 0, 0, 0, 1]>],Snew);
    return Vf;
end function;