
// Make newform 975.2.bt.m in Magma, downloaded from the LMFDB on 01 May 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_975_bt();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_975_2_bt_m();".
// 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_975_bt();"
function MakeCharacter_975_bt()
    N := 975;
    order := 12;
    char_gens := [326, 352, 301];
    v := [6, 9, 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_975_bt_Hecke(Kf)
    return MakeCharacter_975_bt();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_975_2_bt_m();".
// 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_975_2_bt_m( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_975_bt();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![57648010000, 0, 0, 0, -2403275187600, 0, 0, 0, 70909866182576, 0, 0, 0, -937612092307520, 0, 0, 0, 8681632547077312, 0, 0, 0, -47912738448454128, 0, 0, 0, 190261793835755432, 0, 0, 0, -475373010173009428, 0, 0, 0, 838067531646983240, 0, 0, 0, -785378573223720856, 0, 0, 0, 511818602887592748, 0, 0, 0, -197449355697761628, 0, 0, 0, 54158800995865457, 0, 0, 0, -10522067796252792, 0, 0, 0, 1538955652806912, 0, 0, 0, -166488346234428, 0, 0, 0, 13794117584640, 0, 0, 0, -861542076636, 0, 0, 0, 41745244318, 0, 0, 0, -1550167572, 0, 0, 0, 44647360, 0, 0, 0, -962308, 0, 0, 0, 15348, 0, 0, 0, -160, 0, 0, 0, 1]>,<7,R![11316496, -295789792, 3865666592, -174540239840, 2117782025580, 21236396745136, 67511980758568, 428312150125764, 1865479787237413, 1791851411854064, 1552984182933784, 3137710616692116, 13937978757055, -2410270289545434, 111627162499256, -802915260081582, 507467218348111, 200742233985954, -9819530986934, 54944506237350, -43491294480974, -10745658523700, 717992620280, -2729289919990, 2497293662037, 337710937586, -20701108744, 75918574380, -75637927131, -7628399852, 539894742, -1752568176, 1601472001, 149922382, -9255476, 26087536, -18700674, -1809150, 105166, -252402, 153467, 14468, -698, 1330, -405, -48, 2, -2, 1]>,<59,R![2680737212824935115267923701785600, 0, 66712806195764218649560489955217920, 0, 1627747295793104257239226999590433984, 0, 796009856900060731428856970664903072, 0, 243782107878662333288789245642187012, 0, 45577734276742748391623326927966612, 0, 6114576741184988771873314601526804, 0, 555377920177822451251718421247000, 0, 37216613571764064178708942588012, 0, 1889961313720256221504312831600, 0, 75522157102991213139637919736, 0, 2416053178381599213454509574, 0, 63075538369374245685559648, 0, 1358050944290339878768012, 0, 24354879387956158046410, 0, 365388200846779413532, 0, 4600154663221562401, 0, 48504987988184188, 0, 426700216856588, 0, 3098366608652, 0, 18299038235, 0, 85362180, 0, 301572, 0, 730, 0, 1]>],Snew);
    return Vf;
end function;