
// Make newform 576.2.bd.b in Magma, downloaded from the LMFDB on 03 January 2025.
// To make the character of type GrpDrchElt, type "MakeCharacter_576_bd();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_576_2_bd_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_576_bd();"
function MakeCharacter_576_bd()
    N := 576;
    order := 16;
    char_gens := [127, 325, 65];
    v := [16, 9, 16];
    // 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_576_bd_Hecke(Kf)
    return MakeCharacter_576_bd();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_576_2_bd_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_576_2_bd_b( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_576_bd();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<5,R![1174950579887757328384, -600550076184120101175296, 76698457087202934030073856, 805463232733798794537205760, 15096600775286281846013296640, 233437161776555627408267411456, 2413502333667982870013152329728, 12846754825499613379780958748672, 177262627033298955174332176793600, 1419024155211532666505524611645440, 4922815509328005181007689882271744, -9762795871762123760496617512239104, 52703528920333669703407310949318656, -205143323765224087830003785081552896, 543156050132944160973393782886105088, -1312919539960240364312684124769878016, 3089982298195329372814465909007581184, -5807084325393959570502905471845793792, 10117822484665350600533059733207121920, -16325733353793661900598674593410973696, 20516652554458930443828036683276746752, -24844178539099310306633645735765082112, 29143509515522073549072211498032431104, -28898436222261952570330032694993354752, 44518321748948712156087567660972244992, -74340412310087906113848634684901163008, 81538720440045623117859125917567156224, -40818426101166917835529186751360794624, -3128023434540007799568503660917817344, 3572211710851881955139015814565330944, 7908442667245606989584343601311121408, -12093695494003587769865909554519212032, 23686858511974197519015838925619986432, -26790467193505948769171657300587315200, -974244688250085048546304110666711040, 26572176299864687123353471188025212928, -9003296692725928554602315722008821760, -17763686295908352781623262775038967808, 13962251623165814566459640610918760448, -2211466392705433942971559438209515520, 6246573504078850164061091347795279872, -11837743529104744127113299467119362048, 7490125225794039326772837860971118592, -3245040588923815284495775453027500032, 3742726947478833463907494554133069824, -3074126126616191711366093866434297856, 1328032401763438837060420243269091328, -1675267128438286196420990712911233024, 2193266964819179034611442060483362816, -938796113413142344317754123997937664, -524144096414941054924506734965817344, 807678027767155017522830686767022080, -359836279827304445382889978009485312, -3591102795792980275986076081848320, 69342825325851389136625998718042112, -23829255027136371286627773803134976, 5230945887095411207267682353152000, -9723244310513030757870861476691968, 8695405136641540975588159168708608, -1776031973875372006401644505071616, -2259836701756791491160246139748352, 1932348271809359922896799257591808, -463056087996579365332006509477888, -187981403472181405281214269489152, 187158099264065898205659500666880, -48175260855816062487758229602304, -10673533829778101924309920776192, 10127293653454172133606247104512, -2807146712622046797683858964480, -434746694120561604980832206848, 439375789074676147998355357696, -81357333364613334206192877568, 12058864167048659917850673152, 26234167448311901543789887488, 2085290569050842273322860544, 2611217899130625036144771072, 1348999216307031102800379904, 383636810169585086926323712, 163115565642237961262465024, 83320918406272549971394560, 44537692010283349229568000, 5785308045956638557093888, 1756650124049613004849152, 1136303411163639380230144, -207257213886962077339648, -60812206490366609817600, 25568881215175544700928, -192420535533301325824, 629462324847520382976, 1603738574095901122560, 529416222268221526016, 288213332726376624128, 115277506032873119744, 30601339604695437312, 14226114218452615168, 5350694577884315648, 2102448344641487104, 496460798075680768, 160778230395574272, 55983184010653696, 4537721959415296, 842733322551296, 940595096121344, 151199472260096, -27752940386304, -6350322546688, 1976192961024, 1073174441472, -16760059648, -163213136384, -639479808, 2938911232, 3450851328, -92161280, -74866432, 52923648, 3377984, 1141248, -195584, -79488, 12288, -2432, 3264, -192, 0, -64, 0, 0, 1]>],Snew);
    return Vf;
end function;