
// Make newform 930.2.br.a in Magma, downloaded from the LMFDB on 24 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_930_br();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_930_2_br_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_930_br();"
function MakeCharacter_930_br()
    N := 930;
    order := 30;
    char_gens := [311, 187, 871];
    v := [15, 30, 23];
    // 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_930_br_Hecke(Kf)
    return MakeCharacter_930_br();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_930_2_br_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_930_2_br_a( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_930_br();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<7,R![3560424885135616, 252040175348180480, 4892836606760647296, 8135729931649285824, 2543401059654426211744, -30244123503054615697840, 329917154776436308153788, -2909373563110684552104092, 17404081588240617879612381, -77120289105527619358849992, 253464319335500550649546807, -538116422007869170339358126, 553860582676731215651580808, 81739858872523213207153476, -382263408655585494950266517, -2432311826885974140476062620, 11547701013335037323488230490, -25458909198762027719132697382, 33905783024809675645581879985, -36389461387090556945084071656, 59062413543700125848949490938, -105807173619001600105233545620, 123783300743014121481443465067, -95347130102051664201703730372, 86019532727741283998021490186, -115891211261287242357359749890, 117736524250341319132558831417, -76542335235182208467163078102, 47337886123897333926993925366, -41514860234586804456803343688, 35775418669903294872848049586, -26127488687127497951472354940, 11529148442101388235134353107, 1405936924381433458271176758, 304183326404968964262141177, -5483800469007702784039689730, 1367499093457991075089801956, 2614316888338990598938620598, -803789516877511758090405688, -744712976838054126019445938, 197153971951320947527625643, 171570244870347371095258154, -42709292562970808076472835, -22608757241828586723342944, 7986445081617514995794366, -1021911868260102861279482, -370355493551687676230994, 868114039951360067330758, -218320785869363939791079, -115849958137516487154358, 50411286926119946347298, 486473096846792131028, -2945386956925230627960, 1585693730095385588518, -493747467957585594130, -184409806509230342894, 104503705912671853115, 4545540229178733552, -6377901180777713931, 969367200278742598, -271889818234911559, -112137135911086278, 74808908116184505, 2800346618815690, -6041689934534111, 401197746422616, 229011482233745, -45996150027474, 8330983903127, 3321257639172, -1740837898214, -131941724906, 121046128578, -171381916, -3680630319, 324844848, -61886226, -11573820, 12665689, 215984, -630068, -11930, 13845, -494, 457, 82, -42, -2, 1]>],Snew);
    return Vf;
end function;