
// Make newform 136.3.t.b in Magma, downloaded from the LMFDB on 13 May 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_136_t();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_136_3_t_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_136_t();"
function MakeCharacter_136_t()
    N := 136;
    order := 16;
    char_gens := [103, 69, 105];
    v := [16, 16, 11];
    // 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_136_t_Hecke(Kf)
    return MakeCharacter_136_t();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_136_3_t_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_136_3_t_b( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_136_t();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,3,sign)));
    Vf := Kernel([<3,R![558577609736192, 3756051735511040, 42506668185485312, 133907957122170880, 187019197218885632, 70275776081240064, -84680865484702720, -129956159611071488, -48295278341261248, 24685524614085888, 39409421414072832, 10112527727934080, -5159580031086944, -5099736496110208, 467115514099616, 917780141041920, -570437753865784, -129608825779360, 86536904052560, 26130501914208, 8758382991992, -5584513782272, 3761960325952, -685027357408, -21857575116, 67689370816, -11710215616, 870633632, 246391384, -45767168, 12615864, -3515808, 750578, -188488, 35492, -6216, 1542, -272, 40, -8, 1]>],Snew);
    return Vf;
end function;