
// Make newform 475.2.n.b in Magma, downloaded from the LMFDB on 24 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_b();".
// 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_b();".
// 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_b( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_475_n();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![3041536, -7185280, 333658368, 28887981920, 388680416144, 2171711577160, 9620635672136, 76900488257810, 519189961108217, 1881443875550390, 2800979128781557, -2465317827723015, -5025313187610761, 39934761779980455, 64024902053358655, -414472616824660160, -1308478083706494970, 734524662948104255, 8522848639994342306, 8194445670834290900, -23588303722287180986, -51261131021623819760, 23007811152165721344, 143672057264754766275, 43052833346850211807, -242636833832813024435, -181080857990550899399, 286374020432555957945, 332962164425402544766, -262070925683472070530, -436975692026793400960, 200207840266432596260, 474196055601250823217, -122517156404119882995, -441056435883812664453, 53777903251717501610, 358035278266101006354, -9817857688440265625, -258240832829267598410, -9597072208353463140, 168188406713022145338, 13914934518367691130, -99525551740046623640, -11370108064131078490, 53801879694204953151, 7232101094736569745, -26721447611381654808, -3883851703846860120, 12245578505699005733, 1828699033031683695, -5184066388677264716, -766140542289830815, 2031546842129951594, 288119464146505125, -738279537626849797, -97786314594193350, 248922302667337454, 30060873459118095, -77839905787556541, -8391852733364280, 22590214484468541, 2131174818373290, -6086588484262852, -492106212717315, 1521630467968000, 103254321178275, -352694872453890, -19737584314680, 75826307122341, 3436349069695, -15114891908046, -542493177045, 2789513554550, 77311759180, -475934547679, -9944539500, 75003313815, 1142187515, -10885192797, -114744695, 1448082998, 9872550, -175731516, -718430, 19349115, 39350, -1909057, -1110, 165881, -20, -12446, 0, 782, 0, -37, 0, 1]>],Snew);
    return Vf;
end function;