
// Make newform 8015.2.a.o in Magma, downloaded from the LMFDB on 25 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_8015_a();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_8015_2_a_o();".
// 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_8015_a();"
function MakeCharacter_8015_a()
    N := 8015;
    order := 1;
    char_gens := [3207, 4581, 4586];
    v := [1, 1, 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_8015_a_Hecke(Kf)
    return MakeCharacter_8015_a();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_8015_2_a_o();".
// 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_8015_2_a_o( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_8015_a();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![31509048, -353894636, -7320237608, 79231186577, 388841764693, -3697998062193, -9833078030637, 77170262120948, 138746398420280, -931480184526257, -1216129707242953, 7356016972684485, 7150832674782230, -40857720105995845, -29795912831439255, 167576771709682824, 91343270390678173, -525770373305587294, -210842991880997468, 1295979967932645573, 369632677527921813, -2561970785134950231, -486232893335737220, 4128174516499171691, 451462919724427142, -5492023143474416596, -220742872483044542, 6094676142797366135, -124174386567966205, -5688075695651765643, 422537462407836324, 4493556514855894498, -552758593162154676, -3020052742059940358, 506538187876813389, 1733331426893888698, -362983456628255450, -851799014458357082, 212076427947609821, 358964176623620371, -103127616634905010, -129781646913569915, 42220548947246736, 40225176084741948, -14649375322680146, -10665675403022656, 4323235357902826, 2410126201092111, -1086586203772628, -461358278007102, 232451960335573, 74124278915830, -42226076965064, -9851502913570, 6485493564082, 1057122548777, -836758920583, -87440125876, 89855738100, 4967284659, -7928644617, -106766709, 564618676, -12629340, -31625519, 1686113, 1340585, -107553, -40402, 4193, 771, -96, -7, 1]>,<3,R![-451619323904, -11213446376448, 13261175553792, 2056274934602368, 15822200768235200, 7332067898655200, -315144903772580208, -700067644407853016, 2831871344665047812, 8775717061311074776, -16059153916634861968, -58578556313896978174, 66945191765429602387, 255821732331195841866, -221821708851069123653, -797838900571698278447, 601878157909200217609, 1866423725694206617431, -1342261576215950596487, -3379767991653470149779, 2452892181205982169211, 4840723111524660718543, -3670905583751158181731, -5567303277222096672406, 4513043450455117287935, 5194553991469700711027, -4582457241636320131583, -3955569275572089639443, 3866479245577207139274, 2461426775656367793897, -2726954636737570901788, -1245227769915763340326, 1615907348708054061447, 503714063020207882829, -807843732722200356892, -155940560718995134858, 341755778728684545331, 32076226045196507258, -122562055708800062806, -1102375428941036475, 37276786270085260625, -2451384809324233941, -9604636976120997374, 1287858018976450215, 2090100142686692484, -417217176729580706, -381985420166864852, 101845170447708374, 58069843558863873, -19817990525669133, -7223222611226566, 3139914534060861, 713031258277971, -407955114422845, -52183280595402, 43430849680427, 2253762276657, -3762161723846, 36249871206, 261596923693, -16341423087, -14275171648, 1592210810, 588675495, -96004886, -17099479, 3940592, 294790, -108249, -982, 1810, -67, -14, 1]>],Snew);
    return Vf;
end function;