
// Make newform 475.2.n.a in Magma, downloaded from the LMFDB on 25 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_475_n();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_475_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_475_n();"
function MakeCharacter_475_n()
    N := 475;
    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_475_n_Hecke(Kf)
    return MakeCharacter_475_n();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_475_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_475_2_n_a( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_475_n();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![625, -5000, 153750, 18340625, 296597750, 1193167750, -5471960250, -25960937625, 123520868325, 61740112175, -932541734675, 412280400375, 6476475997260, 1934412896125, -17704351812360, 12989239254295, 99598827749741, -3031994714865, -245652494334019, 49827054711595, 601390743418426, -133087772921750, -1253934798906190, 299436907100065, 2193840900354161, -734782494681050, -3176374390749047, 1389392953521300, 3853092542941820, -1878202996747770, -3990014749923828, 1961621084863445, 3658362239338298, -1746154693404095, -2972791968506485, 1321071278986200, 2150480667217108, -832030038620355, -1380507135956469, 435596819257065, 783367447704831, -196291551302820, -390147160271567, 77190962345345, 172594630399013, -26788090945660, -68616410836833, 8226168274510, 24640858955020, -2244086403110, -7998683759608, 541404866505, 2362085225241, -115449486125, -636853473206, 21455256605, 156659078853, -3383728890, -35105660406, 437695255, 7186033075, -44040850, -1341739640, 2498785, 227239044, 196560, -34733082, -67170, 4791788, 8120, -589681, -620, 63429, 40, -5856, 0, 461, 0, -28, 0, 1]>],Snew);
    return Vf;
end function;