
// Make newform 4655.2.a.bs in Magma, downloaded from the LMFDB on 17 January 2026.
// To make the character of type GrpDrchElt, type "MakeCharacter_4655_a();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_4655_2_a_bs();".
// 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_4655_a();"
function MakeCharacter_4655_a()
    N := 4655;
    order := 1;
    char_gens := [932, 3041, 2206];
    v := [1, 1, 1];
    // 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_4655_a_Hecke( : Kf := Kf)
    return MakeCharacter_4655_a();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_4655_2_a_bs();".
// 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_4655_2_a_bs( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_4655_a();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![14, 468, 5323, 22216, -8550, -264484, -240138, 1085892, 679924, -2097100, -704031, 2223504, 312072, -1415928, -18616, 570368, -41098, -148780, 19547, 25056, -4366, -2628, 542, 156, -36, -4, 1]>,<3,R![-19612, 249368, -795196, -1087088, 7569152, -2491520, -21085952, 14649552, 27821752, -23871000, -20435992, 19921136, 8901344, -9891552, -2284464, 3111536, 303621, -634270, -4675, 83236, -4736, -6760, 704, 308, -43, -6, 1]>,<11,R![-32130496, 569465472, 17501775296, 28465241472, -261205860352, -145825106048, 1380554713216, -1253624914624, -249552828432, 742161426400, -172418151248, -142188468544, 65932774528, 8519731264, -9008046720, 425878304, 618652348, -86825576, -22521228, 5105528, 372544, -150792, 536, 2276, -103, -14, 1]>,<13,R![-3138774099712, -968325761024, 13196788085504, 9436517240576, -15117901421184, -15596076660672, 4592800115040, 8320046387584, -140523289220, -2275002813864, -177625051676, 383062504304, 41005423872, -43362702560, -4401124704, 3426810720, 261158940, -189506672, -7932924, 7133368, 46048, -172048, 4328, 2368, -121, -14, 1]>,<17,R![-6892135972864, -26083791339520, 9420582748160, 98811378401280, 43444940914688, -98428053356544, -60274863308800, 41955047456768, 27089634917888, -10111727022080, -5881666644480, 1578719793152, 717939630784, -167725612160, -52714722432, 12126772480, 2364124575, -586356314, -62024759, 18434040, 783854, -358572, 650, 3896, -129, -18, 1]>],Snew);
    return Vf;
end function;