
// Make newform 8043.2.a.o in Magma, downloaded from the LMFDB on 25 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_8043_a();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_8043_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_8043_a();"
function MakeCharacter_8043_a()
    N := 8043;
    order := 1;
    char_gens := [5363, 2299, 6133];
    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_8043_a_Hecke(Kf)
    return MakeCharacter_8043_a();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_8043_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_8043_2_a_o( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_8043_a();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![-464, 10848, -48032, -203380, 1412513, 1301985, -16020190, -2339760, 99654381, -9927019, -384951508, 61299927, 986553328, -147371016, -1758938128, 201859522, 2261004102, -164253256, -2151124667, 64126089, 1543013112, 16996806, -844607928, -41164671, 355105368, 29466232, -114830513, -13056549, 28443112, 4012128, -5339815, -882623, 745229, 139131, -74803, -15378, 5098, 1133, -211, -50, 4, 1]>,<5,R![-52960, -3733224, 123355030, -529433351, -3586623666, 12889118835, 46268660300, -100441748243, -301980092850, 346375894421, 1045969498779, -609467324877, -2067401893196, 644458841525, 2585497803116, -463373787022, -2201273724875, 254214847007, 1337495168954, -118414979113, -597410730415, 49076621684, 199677705246, -17435865876, -50398060356, 4975037628, 9625782781, -1088333117, -1385127170, 177786472, 148458530, -21284570, -11611171, 1827898, 640392, -108979, -23488, 4263, 512, -98, -5, 1]>,<11,R![6008010630760, -16416408434960, -449893086796184, -1156680496223757, 1912700029119118, 8692330000059334, -707278909482340, -25221549801081576, -9685178788735286, 38179649761559309, 23935437247479259, -33657713856171606, -27887319739595449, 17903224532778887, 19593064919205719, -5455501117258275, -9041618598984315, 600435295196946, 2852389260653292, 216458343043757, -625988075321496, -116368249668771, 95513157803588, 27564275602596, -9874587065194, -4098795110225, 632777700978, 413123000643, -15987932345, -28752508083, -1095851492, 1365825031, 133009531, -42295608, -6525553, 755222, 178963, -4572, -2675, -69, 17, 1]>],Snew);
    return Vf;
end function;