
// Make newform 966.2.s.b in Magma, downloaded from the LMFDB on 19 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_966_s();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_966_2_s_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_966_s();"
function MakeCharacter_966_s()
    N := 966;
    order := 22;
    char_gens := [323, 829, 925];
    v := [22, 11, 1];
    // 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_966_s_Hecke(Kf)
    return MakeCharacter_966_s();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_966_2_s_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_966_2_s_b( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_966_s();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<5,R![4529399265708580274176, 0, -6342096584883003628716032, 0, 2551590775481800166020808704, 0, 982364185142282852308437237760, 0, 270434479902984504682817468497920, 0, -2754589985895473837179434575480832, 0, 499204281561048245923742676784795136, 0, -7344610151413333573983315054354582208, 0, 294846525155527149039401670153718978096, 0, -1162927173091604395401840611586196944196, 0, 2878333926182045830184243283539470405969, 0, 34937457691780648604568890917555848006862, 0, 365579755701823381532954608159800688967739, 0, 4853406940163709692728024218293565596833523, 0, 30857552918329567029020862453933349834788669, 0, 174319702000021173985362298089762738003496266, 0, 973600307567829431976385151998988514965409442, 0, 3971873024721326199318678188585395315925182002, 0, 11183736577765821589047186916716439874496601328, 0, 22829022548323840202096090739610145524340578792, 0, 36122181894393806661461362200065653887300816625, 0, 47491778351058690308692055489211642149094426332, 0, 54529376599652314246914935270795871341538662114, 0, 54932510661839815771629506506036850703801293256, 0, 47761115478520800859340617860012072047017339570, 0, 35797939184167658403833238394333191334854120132, 0, 24106837982461327555732087127523177104090211448, 0, 15956539702679610880651022908297666981958825668, 0, 11285733319468518097688889903967074671914572366, 0, 8390800105810727670806991485054545564662586862, 0, 5897268975319906880869012369169549240407920646, 0, 3562391851988814190977071074514565996204373480, 0, 1842413691817125974992197626249100527337184232, 0, 803975852525616910568694314641996344925222216, 0, 308953834713820938538340895870264743448622269, 0, 106536765847916983310469374063889494987519070, 0, 34352839444167582494482667459765429484389083, 0, 9831363931552475827712952483372531611700691, 0, 2457166463979496920891029651203823257152651, 0, 614591742514720057110918732886489614255456, 0, 147615974174560842176383677429618864566005, 0, 29493612794329359618486702450245313793468, 0, 6050117231123276946975620180831954753548, 0, 1366872686270358502571167808934628244045, 0, 278224624800343474536109070942199838752, 0, 47508540359236507632975944545419663403, 0, 8973080907015499024322536484072391877, 0, 1759685831355918240273496767241115015, 0, 239245875584920915791892145931349768, 0, 22389978275152802511624030791230815, 0, 2605800924620339728122568269858092, 0, 403118557277810656444515741799408, 0, 65129705205632362615771101916357, 0, 8337618964520744531695414741708, 0, 847693843372841480527658457193, 0, 78959041443359064842752532592, 0, 8478677035771333129605165487, 0, 1061734895282874778666161480, 0, 125834723141412202147249020, 0, 12919702697768331271578790, 0, 1207791320273428039271901, 0, 107082458738739320067840, 0, 10111631996524135144156, 0, 973504480572869404019, 0, 92133320064638887057, 0, 8227383255745571521, 0, 693597129453377933, 0, 55589326531980967, 0, 4279627644628890, 0, 320773572699935, 0, 23702316110051, 0, 1725815359200, 0, 123509486830, 0, 8294635989, 0, 515317500, 0, 28776270, 0, 1436477, 0, 62448, 0, 2282, 0, 64, 0, 1]>],Snew);
    return Vf;
end function;