
// Make newform 784.2.bb.b in Magma, downloaded from the LMFDB on 25 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_784_bb();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_784_2_bb_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_784_bb();"
function MakeCharacter_784_bb()
    N := 784;
    order := 14;
    char_gens := [687, 197, 689];
    v := [7, 14, 11];
    // 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_784_bb_Hecke(Kf)
    return MakeCharacter_784_bb();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_784_2_bb_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_784_2_bb_b( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_784_bb();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<3,R![3418801, 0, -47281603654, 0, 424637330124149, 0, 105685899131518601, 0, 81223720533137220208, 0, 7358934285310881705649, 0, 1235664434753062800644865, 0, 34656065580824433818913590, 0, 226476859766253251564060738, 0, -1495830179461357165521314336, 0, 40370975761394729004806420105, 0, 166434007711026760844407096586, 0, 298985086917476560437623691723, 0, 399770694922824321648884121146, 0, 596587252200482485389376147088, 0, 875573998209288818987472658165, 0, 1062489883916095726537948352248, 0, 1115606175335033307293612380255, 0, 1106042555576198965079152009820, 0, 1047139520231309320480726249622, 0, 921069678669919078083637010808, 0, 736044124340006997692484648999, 0, 532589095424525160448234448263, 0, 352777952174624868599914317951, 0, 216634920818736466711767577111, 0, 123729332748080924343131827671, 0, 65327556549290004952755318686, 0, 31529033633004748418393865735, 0, 13761857942061647071092317363, 0, 5398821741283213653758278389, 0, 1902459207509125073080023273, 0, 604793678404264508956307546, 0, 175035834549713272505535729, 0, 46641736757397857961133759, 0, 11563500298760971710346029, 0, 2687223416285927276074773, 0, 587591817479282307902555, 0, 121010149626299165543838, 0, 23510264477995056840442, 0, 4320981386120552544491, 0, 753777990671767662720, 0, 125084371393938194770, 0, 19742370054037593798, 0, 2956877980028563366, 0, 420789636794870755, 0, 56916359193456903, 0, 7330592718913218, 0, 897090205359257, 0, 103635348325166, 0, 11278475890583, 0, 1162147610762, 0, 113141953986, 0, 10335849160, 0, 876307913, 0, 68234285, 0, 4891838, 0, 327058, 0, 19853, 0, 1037, 0, 42, 0, 1]>],Snew);
    return Vf;
end function;