
// Make newform 880.2.w.a in Magma, downloaded from the LMFDB on 06 September 2025.
// To make the character of type GrpDrchElt, type "MakeCharacter_880_w();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_880_2_w_a();".
// 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_880_w();"
function MakeCharacter_880_w()
    N := 880;
    order := 4;
    char_gens := [111, 661, 177, 321];
    v := [4, 3, 4, 4];
    // 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_880_w_Hecke( : Kf := Kf)
    return MakeCharacter_880_w();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_880_2_w_a();".
// 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_880_2_w_a( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_880_w();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<3,R![1327104, -31850496, 382205952, 2111422464, 12098433024, -92855623680, 423822827520, 416674867200, 420254171392, -4428191742976, 32917137041408, 40697395084288, 18790758412288, -19264418252288, 748566268325888, 1296780710507008, 1109172264971136, 189568880616960, 3706389195251200, 6773840995858176, 6201461381693952, 1328619495613824, 6562169533018624, 12316153883319808, 11786335549729328, 2521104864289792, 4318813546096768, 8345822964676544, 8538830889467968, 1644194024117152, 1407734724151040, 2823289425182752, 3136977719223096, 513105493978448, 264344108492672, 552561657004288, 668524034367008, 89885649584320, 31300383008672, 67830902179240, 88403626428113, 9818661533800, 2446999785056, 5433275972600, 7545587944656, 712632616504, 127766887200, 287324384008, 425879038172, 35132755752, 4411503840, 9967778648, 16071788432, 1166415704, 98102496, 221752952, 404593670, 25301816, 1336992, 3017896, 6667184, 339592, 10080, 22712, 68708, 2536, 32, 72, 400, 8, 0, 0, 1]>],Snew);
    return Vf;
end function;