
// Make newform 950.2.n.a in Magma, downloaded from the LMFDB on 17 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_950_n();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_950_2_n_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_950_n();"
function MakeCharacter_950_n()
    N := 950;
    order := 10;
    char_gens := [77, 401];
    v := [3, 10];
    // 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_950_n_Hecke(Kf)
    return MakeCharacter_950_n();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_950_2_n_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_950_2_n_a( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_950_n();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<3,R![9468569026816, 20831747911680, -350785858163200, -818814020613120, 5912409741962112, 14881147753205760, -52009069833672768, -136516876653119520, 369008802350601968, 1054472250798516960, -2315105477412113472, -9011215255838589640, 7567327502255075268, 63627519150415980060, 75628706887563300554, -60748384338685197170, -183682776208160489319, 17283347664819607520, 314460598307777276516, 72136380413243400290, -432544303606793763418, -106359975448973460990, 807699817336187164099, 671349923624988045530, -474035741847769401933, -568273966654637284130, 632861368544849476958, 870225353404679677310, -380758264414936448684, -888249222635998185150, 133290513921224106239, 748201663344242054680, 38949753333993534442, -532120146141835668500, -94790691708935716384, 366896880402166312550, 138480410791928499559, -193839825700703101830, -111537884901731198899, 85300030535926164230, 68367989368771458282, -32099377984205648650, -35300743805070610659, 10253795453221023530, 16260368309679232497, -2150349946789636500, -6324722881068689964, 163978474454231350, 2162047717067512242, 111295431514589720, -663986399118173864, -73581240435792970, 186172361219473489, 30684847655126240, -46571103471386084, -9437154986202150, 10796072022991242, 2511880401295120, -2294944092964001, -586145915070670, 448445153969381, 121596684069910, -80523491306237, -22398153970510, 13457869506167, 3762767771740, -2061791919811, -566697618720, 291158972397, 76673822940, -37852578349, -9318417890, 4514446846, 1015813280, -487523756, -96752080, 47717788, 8009110, -4173592, -567630, 320393, 32980, -20983, -1350, 1137, 30, -45, 0, 1]>],Snew);
    return Vf;
end function;