
// Make newform 819.2.fn.e in Magma, downloaded from the LMFDB on 24 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_819_fn();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_819_2_fn_e();".
// 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_819_fn();"
function MakeCharacter_819_fn()
    N := 819;
    order := 12;
    char_gens := [92, 703, 379];
    v := [12, 2, 3];
    // 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_819_fn_Hecke(Kf)
    return MakeCharacter_819_fn();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_819_2_fn_e();".
// 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_819_2_fn_e( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_819_fn();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![50625, 60750, 36450, 122040, -99801, -262998, -96642, -377184, 299377, 741310, 257378, 1040606, 317018, -711182, 59768, -303750, 1122, 125870, -11952, 49422, -1650, -17542, 2866, -4354, 1641, 516, -90, 118, -37, -12, 2, -2, 1]>,<19,R![338395192861441, 811864428665010, 973896592558050, 778844791903500, 229141940812812, -128336622528318, -71079287369580, -57855659230152, -12333454137794, 11055714665244, 1327033497582, 3523018778916, 1179403314116, -772828916994, 123787403676, -70440339744, -15147857589, 13204687572, -3209171886, 962312640, 252808612, -185146038, 46178928, -8249304, 254462, 240822, -60192, 10656, -364, -288, 72, -12, 1]>],Snew);
    return Vf;
end function;