
// Make newform 201.2.i.b in Magma, downloaded from the LMFDB on 24 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_201_i();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_201_2_i_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_201_i();"
function MakeCharacter_201_i()
    N := 201;
    order := 11;
    char_gens := [68, 136];
    v := [11, 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_201_i_Hecke(Kf)
    return MakeCharacter_201_i();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_201_2_i_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_201_2_i_b( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_201_i();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![31236921, -779112189, 3892109859, 88545950361, 141047910711, -767480918913, -1040962709718, -5490200018394, 19704067226973, 152454027387, 117365877891499, -71727078333242, 391861585758513, -247933484675449, 1162526998535019, -235156723817598, 2177947129880475, 563471841975421, 2863149656745238, 2638992668715604, 3170909374294207, 4082537177312002, 3949367185105223, 3399200852181872, 3823391361297069, 2547657756182776, 2392899902108378, 1600265206426607, 1228410049507728, 690836847375942, 554260502703389, 224565025475563, 188966853626304, 74627376270424, 56419057599987, 22740422816024, 17317442097740, 7071611221594, 4776448339327, 1836053825877, 1291232515553, 431924503542, 369361863171, 133929918466, 115720662919, 39410687696, 28630525902, 8864740537, 6460164249, 1776804696, 1251573117, 289141954, 194576145, 46575576, 27883698, 6707020, 3697161, 777869, 475488, 78936, 60793, 8836, 8248, 1290, 1175, 200, 146, 25, 15, 2, 1]>],Snew);
    return Vf;
end function;