
// Make newform 804.2.y.b in Magma, downloaded from the LMFDB on 23 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_804_y();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_804_2_y_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_804_y();"
function MakeCharacter_804_y()
    N := 804;
    order := 33;
    char_gens := [403, 269, 337];
    v := [33, 33, 23];
    // 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_804_y_Hecke(Kf)
    return MakeCharacter_804_y();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_804_2_y_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_804_2_y_b( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_804_y();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<5,R![180961467356258344370176, -9810914177341083823898624, 311564520407718640527081472, -37340203608742053382193152, 1531937201890318048823214080, 24017097247237173364974813184, 195542744642485332863107989504, 316592791798528637142595026944, 2159053066098302394269039374336, 4347446303067481497050306813952, 29286906432632837242030993848320, 66044391917110846672648569677824, 121390948038304907867598793891072, 393066282839426495542461894231680, 482217731259273054812493037491776, 1121580756796903254017942139656384, 3071632031642174849003028674097984, -300771437911216225551500659097336, 5430426151394304414769853250785552, 7181930123209752320474712387123294, 22140183503949722052241624367403223, 140938620345428764048080836209041559, 327111354284480916248228352091338595, 805053955708239717384479653507040820, 1679579577229784268036044128008239978, 2674966144791135889979642652237668737, 4864983404653917248776865701236905742, 6215240624376875023964154900287960172, 9179130244061663558931154625125764714, 10233367782911341184608985978236089952, 12026403892428031249431707434966520772, 11718859947178145099931797512976894249, 10835273922679242405059901998739307548, 7977068302068881228909115180246509159, 5295621866830974523777647066106658811, 2671491006110055173704198723275386580, 1295058134570970999921271296074260974, 1122367879703008070645384655169963760, 2338008557530594527426255401146340417, 3985389558011346352817888946784282545, 5455335531428876178369589531692640863, 5933165645752204877788781253791769245, 5446081627860996357550262423216060934, 4257003587036895576187124301808750711, 2897948052689756023232107810641625542, 1657217272673156679880513890998851071, 786190206625950009516208230247982626, 304985404919977988281482808361758674, 117509200731863521382239404434793451, 60219062544489663297317609468981561, 42699367240950683461371073490565151, 26765917902347573406408568575924625, 13611376259425210470657333984642585, 5265541957984423737806581047986776, 1893523712162161384261651885304782, 610222793561426066480881614190500, 279161776508810275822760080870324, 167284981702822735657889473134671, 124949357453874596772656856780483, 65434929236155926898656550848613, 28591301054760847743346697677498, 8171132579835811942289153659528, 2260024894349468191040643768840, 615922323028954817760571402658, 616039490087925437761989025098, 369452164515511215579072577267, 197313869145999159381682376937, 55216457721069162899196087242, 14233044852956573365749669556, 173368852602540455188264511, 1507814267904808440841944154, 793712686782571593516572782, 699309804588461172925681223, 163544118213477082419359458, 64630960887805468113037549, -4129767887628258656355472, 4125718369383942334917883, 32825468310756081963257, 1579251899029275315706972, 229251079609696014335905, 193470463058146171598598, -5960593514883461638370, 14070657276973494957148, -1501565272693789823638, 2190668871098805583296, 71701715602639543831, 277929322685661447131, 2561863632519432200, 23058982113563801098, -1508558855420793527, 1836152558386840025, -147734057976193098, 183588355297365033, -4867196534457831, 19136329904375321, -199186731971989, 1752362249603180, -44754139222652, 139602625179795, -5289612082945, 10324343016604, -525569359633, 748491411051, -33172210070, 53456168751, -632700301, 3322893447, 146483001, 183960534, 21215484, 10484146, 1694000, 636047, 93918, 35843, 3801, 1616, 107, 53, 2, 1]>],Snew);
    return Vf;
end function;