
// Make newform 864.2.v.b in Magma, downloaded from the LMFDB on 19 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_864_v();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_864_2_v_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_864_v();"
function MakeCharacter_864_v()
    N := 864;
    order := 8;
    char_gens := [703, 325, 353];
    v := [8, 7, 8];
    // 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_864_v_Hecke(Kf)
    return MakeCharacter_864_v();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_864_2_v_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_864_2_v_b( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_864_v();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<5,R![2878946711824242936119296, 0, -12852453672805047772119040, 0, 28688541669277758704844800, 0, 104315050100597905207102275584, 0, 5942836570840168979682465677312, 0, 119330226076112110425754562461696, 0, 1297918195704486557163003291107328, 0, 5772549962356749794519566895808512, 0, 13181930742009403011677633220968448, 0, 115861449607187652903026492084060160, 0, 2373184789067757697492117642259988480, 0, 6954250127422603173448197677097418752, 0, 7204126805637741254817065654399533056, 0, -47589375782121124725867667473536385024, 0, 90416918455393406436429288323139239936, 0, -57372385750197213525743434754737307648, 0, 31580152287183092275531643040966901760, 0, -48207296264449167113083514491668267008, 0, 83679848214038949619770097196972638208, 0, -60790621958268685531932106019766796288, 0, 24465562420429611894106211103585337344, 0, -6609029606885233789240844916891844608, 0, 8428086912766798702425407237885263872, 0, -6179686291299384794572856485595840512, 0, 2421742995477364386905147453606985728, 0, -263243547386630836401024906573119488, 0, 74442774199647339354523465441869824, 0, -60322090300553368625527617179615232, 0, 28179199678046134984343605886320640, 0, -1940582936538770785388190008082432, 0, 136798606243261561669648218324992, 0, -151453716474669398321096876359680, 0, 101128910346509231199163418959872, 0, -2930705879005396798086127288320, 0, 98368042095053220847063924736, 0, -175279901139330021360625975296, 0, 148829763092901572663252221952, 0, -675207144223272122744471552, 0, 76161420680630185587376128, 0, -127644882444609886726946816, 0, 97730435006051340229771264, 0, 319509202366744187322368, 0, 44790401957334257106944, 0, -53890942806429690183680, 0, 31154758219850308288512, 0, 30804190068458569728, 0, 10608749434979483648, 0, -10653820966509010944, 0, 5054206908915765504, 0, -21649275756576768, 0, 913792720601088, 0, -845890156327936, 0, 401195370158080, 0, -3023489709568, 0, 22756098048, 0, -20464036352, 0, 14102444544, 0, -84445440, 0, 131072, 0, -113408, 0, 205312, 0, -512, 0, 0, 0, 0, 0, 1]>],Snew);
    return Vf;
end function;