
// Make newform 25.33.c.b in Magma, downloaded from the LMFDB on 19 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_25_c();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_25_33_c_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_25_c();"
function MakeCharacter_25_c()
    N := 25;
    order := 4;
    char_gens := [2];
    v := [1];
    // 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_25_c_Hecke(Kf)
    return MakeCharacter_25_c();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_25_33_c_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_25_33_c_b( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_25_c();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,33,sign)));
    Vf := Kernel([<2,R![7851689779264567317666826532984535524280031398472096305888614710645725885301111965265159095647604780487709605162019706213008181568088066490368, -2219534453989749937499511040705173339079317462630397056018317100654148073661294381184551859048629329904797011497353344234437761525211987968, 313711655130432636009763165654911612547517294826012527613592176271201537844094687506847817510879236279605777140109506169907634486902784, -16190077244016649839270249098459119507786039407733404250229391274625765062578303381742939698163890330873131420684365131475530547200, 153961956103256242051709677142892208477361708170694749415782922351297627854922705869377017909380696856878725028085526947692544, 30148626519599852881290093277892363291010541505188937881209421594698856023717782138496451670173781925497342301558387245056, 2017874578853318635050472420515440509655832008140180996001158115353454001366596411491192414099560717132050293086748672, 7352170227256876312448667167978322091134183522000327788793110222542580728389354811341479770351897052538155827200, 21571309615968698186923788222039098854434206636148898920893776387514924669194900436226595706341143512875008, 5377188752885883898041396155166593918688107592496800360040591534791541946536670028735244819365460180992, 771769200284783405722750386255917192700551104545033087773437011538457348742309398726078926373781504, 1593765490356066530517662640692119095579707363607396616259915318283426162114807506751455232000, -565123771008628737499332420664814304615439413974640634692600854684209975821198247854080, 156670191819962037273413642812806882825047115234480381395480929879930118728665006080, 104070661075593714958078585148098539554751918749607079154742167508735218375720960, -47233292976806294558741162706747086419651656833391767769187876293574656000, 93291405177425344482666371094061727339301198903302534880607841812480, 30749359707705806312421126156298744704900298275526931696341483520, 4413635232240602792483186908845775811511863180819381344010240, 837615479508935045099451731512753280658657364672512000, 1666346975915792956874326898984021345772421251072, 479146027537555662024379391124055151466774528, 69828379848457207416167865587786409639936, 26281169294721918701633050362163200, 6448364347381785173293513856, 1794505385980973355516544, 454105634637041086528, 113595371968800, 2, -2, 1]>],Snew);
    return Vf;
end function;