
// Make newform 936.2.cw.b in Magma, downloaded from the LMFDB on 10 September 2025.
// To make the character of type GrpDrchElt, type "MakeCharacter_936_cw();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_936_2_cw_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_936_cw();"
function MakeCharacter_936_cw()
    N := 936;
    order := 6;
    char_gens := [703, 469, 209, 145];
    v := [6, 6, 4, 3];
    // 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_936_cw_Hecke( : Kf := Kf)
    return MakeCharacter_936_cw();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_936_2_cw_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_936_2_cw_b( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_936_cw();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<5,R![4746193387776, 0, -1691973316791360, 0, 496099678475455632, 0, -35739458913988367712, 0, 1977101337104995672512, 0, -23784696246502678871568, 0, 191761965332482876531852, 0, -794606085561965673192356, 0, 2198461538256895967094312, 0, -4460622039328639258792884, 0, 7057195825638978382039281, 0, -9007185275895931111376193, 0, 9499071247119576587639179, 0, -8407924243624665609285896, 0, 6319721519423309283295917, 0, -4067224253936256267083000, 0, 2255925327156561578032969, 0, -1083718970537455832422176, 0, 452767203585581620415421, 0, -165065744840028596659125, 0, 52668296207626812741813, 0, -14744461640855544551360, 0, 3629475660457102486666, 0, -786970453416350153889, 0, 150516621570820367581, 0, -25416859427055408887, 0, 3791120351442122589, 0, -499401576461443011, 0, 58052526460874889, 0, -5945280161087154, 0, 535056909222265, 0, -42156779720159, 0, 2892759625884, 0, -171620189018, 0, 8715987424, 0, -373594365, 0, 13245432, 0, -376440, 0, 8157, 0, -122, 0, 1]>],Snew);
    return Vf;
end function;