
// Make newform 980.2.x.m in Magma, downloaded from the LMFDB on 24 September 2025.
// To make the character of type GrpDrchElt, type "MakeCharacter_980_x();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_980_2_x_m();".
// 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_980_x();"
function MakeCharacter_980_x()
    N := 980;
    order := 12;
    char_gens := [491, 197, 101];
    v := [6, 3, 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_980_x_Hecke( : Kf := Kf)
    return MakeCharacter_980_x();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_980_2_x_m();".
// 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_980_2_x_m( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_980_x();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<3,R![136048896, 0, 0, 0, -6239120256, 0, 0, 0, 224644412848, 0, 0, 0, -2513981899288, 0, 0, 0, 20656199378249, 0, 0, 0, -57770759256399, 0, 0, 0, 114237438624740, 0, 0, 0, -105455688189725, 0, 0, 0, 69024525652545, 0, 0, 0, -25251533070706, 0, 0, 0, 6449394079565, 0, 0, 0, -631596499705, 0, 0, 0, 42135437541, 0, 0, 0, -1771981650, 0, 0, 0, 54628057, 0, 0, 0, -1150565, 0, 0, 0, 17716, 0, 0, 0, -167, 0, 0, 0, 1]>,<11,R![84332160000, 0, -740259801600, 0, 4710591222016, 0, -12251120068608, 0, 22085596207936, 0, -24174879288608, 0, 18864074863184, 0, -8553466018688, 0, 2740150495524, 0, -590070677834, 0, 94141574089, 0, -11131220640, 0, 1014933178, 0, -70383174, 0, 3773207, 0, -150556, 0, 4450, 0, -86, 0, 1]>,<13,R![12800, 254720, 2534464, 6425216, 7060352, -10425920, 7172032, -527296, 108000, -191280, 187328, -5320, 648, -1068, 1009, -36, 0, 0, 1]>],Snew);
    return Vf;
end function;