
// Make newform 441.4.a.x in Magma, downloaded from the LMFDB on 24 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_441_a();"
// To make the coeffs of the qexp of the newform in the Hecke field type "qexpCoeffs();"
// To make the newform (type ModFrm), type "MakeNewformModFrm_441_4_a_x();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose lines below.
// The precision argument determines an initial guess on how many Fourier coefficients to use.
// This guess is increased enough to uniquely determine the newform.
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_441_4_a_x();".
// 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 ConvertToHeckeField(input: pass_field := false, Kf := [])
    if not pass_field then
        poly := [2500, 0, -8828, 0, 1469, 0, -74, 0, 1];
        Kf := NumberField(Polynomial([elt : elt in poly]));
        AssignNames(~Kf, ["nu"]);
    end if;
    Rf_num := [[1, 0, 0, 0, 0, 0, 0, 0], [-18202, 0, 4633, 0, -148, 0, 1, 0], [0, -67414, 0, 13147, 0, -862, 0, 13], [1828, 0, 1124, 0, -119, 0, 2, 0], [0, 60682, 0, -6049, 0, 148, 0, -1], [0, 246634, 0, -46357, 0, 2197, 0, -28], [37214, 0, -22847, 0, 1814, 0, -29, 0], [0, -347998, 0, 92029, 0, -6034, 0, 91]];
    Rf_basisdens := [1, 1416, 17700, 177, 1416, 8850, 708, 17700];
    Rf_basisnums := ChangeUniverse([[z : z in elt] : elt in Rf_num], Kf);
    Rfbasis := [Rf_basisnums[i]/Rf_basisdens[i] : i in [1..Degree(Kf)]];
    inp_vec := Vector(Rfbasis)*ChangeRing(Transpose(Matrix([[elt : elt in row] : row in input])),Kf);
    return Eltseq(inp_vec);
end function;


// To make the character of type GrpDrchElt, type "MakeCharacter_441_a();"
function MakeCharacter_441_a()
    N := 441;
    order := 1;
    char_gens := [344, 199];
    v := [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_441_a_Hecke(Kf)
    return MakeCharacter_441_a();
end function;


function ExtendMultiplicatively(weight, aps, character)
    prec := NextPrime(NthPrime(#aps)) - 1; // we will able to figure out a_0 ... a_prec
    primes := PrimesUpTo(prec);
    prime_powers := primes;
    assert #primes eq #aps;
    log_prec := Floor(Log(prec)/Log(2)); // prec < 2^(log_prec+1)
    F := Universe(aps);
    FXY<X, Y> := PolynomialRing(F, 2);
    // 1/(1 - a_p T + p^(weight - 1) * char(p) T^2) = 1 + a_p T + a_{p^2} T^2 + ...
    R<T> := PowerSeriesRing(FXY : Precision := log_prec + 1);
    recursion := Coefficients(1/(1 - X*T + Y*T^2));
    coeffs := [F!0: i in [1..(prec+1)]];
    coeffs[1] := 1; //a_1
    for i := 1 to #primes do
        p := primes[i];
        coeffs[p] := aps[i];
        b := p^(weight - 1) * F!character(p);
        r := 2;
        p_power := p * p;
        //deals with powers of p
        while p_power le prec do
            Append(~prime_powers, p_power);
            coeffs[p_power] := Evaluate(recursion[r + 1], [aps[i], b]);
            p_power *:= p;
            r +:= 1;
        end while;    
    end for;
    Sort(~prime_powers);
    for pp in prime_powers do
        for k := 1 to Floor(prec/pp) do
            if GCD(k, pp) eq 1 then
                coeffs[pp*k] := coeffs[pp]*coeffs[k];
            end if;
        end for;
    end for;
    return coeffs;
end function;


function qexpCoeffs()
    // To make the coeffs of the qexp of the newform in the Hecke field type "qexpCoeffs();"
    weight := 4;
    raw_aps := [[0, 0, -1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, -7, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 2, 0, 3], [0, 1, 0, 0, 0, 0, -2, 0], [0, 0, 0, 0, 0, 6, 0, -2], [0, 0, 7, 0, 3, 0, 0, 0], [0, 0, -13, 0, 9, 0, 0, 0], [0, 0, 0, 0, 0, -2, 0, 10], [20, 0, 0, 24, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 10, 0], [280, 0, 0, 20, 0, 0, 0, 0], [0, 30, 0, 0, 0, 0, 2, 0], [0, 0, -34, 0, -14, 0, 0, 0], [0, -2, 0, 0, 0, 0, -10, 0], [0, 0, 0, 0, 0, 22, 0, -55], [20, 0, 0, 40, 0, 0, 0, 0], [0, 0, 163, 0, -9, 0, 0, 0], [0, 0, 0, 0, 0, -28, 0, 23], [660, 0, 0, -28, 0, 0, 0, 0], [0, 52, 0, 0, 0, 0, -16, 0], [0, 7, 0, 0, 0, 0, 10, 0], [0, 0, 0, 0, 0, -28, 0, -57], [0, -91, 0, 0, 0, 0, -20, 0], [0, 0, 0, 0, 0, 34, 0, 26], [0, 0, 199, 0, -65, 0, 0, 0], [1136, 0, 0, -44, 0, 0, 0, 0], [0, 0, -128, 0, -32, 0, 0, 0], [360, 0, 0, -32, 0, 0, 0, 0], [0, 40, 0, 0, 0, 0, 60, 0], [0, 0, 199, 0, 25, 0, 0, 0], [0, 0, 0, 0, 0, 96, 0, -100], [0, 0, 374, 0, 98, 0, 0, 0], [1140, 0, 0, -60, 0, 0, 0, 0], [0, 0, 0, 0, 0, 86, 0, 79], [-1100, 0, 0, 152, 0, 0, 0, 0], [0, 138, 0, 0, 0, 0, 50, 0], [0, -125, 0, 0, 0, 0, -4, 0], [0, 0, 427, 0, 219, 0, 0, 0], [0, 0, 0, 0, 0, 58, 0, -291], [0, 0, -345, 0, -165, 0, 0, 0], [290, 0, 0, 148, 0, 0, 0, 0], [0, 0, -158, 0, -178, 0, 0, 0], [0, 0, 0, 0, 0, 20, 0, -184], [788, 0, 0, -192, 0, 0, 0, 0], [0, 0, 0, 0, 0, -20, 0, -520], [0, 50, 0, 0, 0, 0, 30, 0], [0, 0, 0, 0, 0, -58, 0, 289], [0, 0, 1017, 0, 103, 0, 0, 0], [0, 0, 3, 0, 271, 0, 0, 0], [0, 0, 0, 0, 0, -96, 0, 429], [0, 298, 0, 0, 0, 0, 70, 0], [0, -83, 0, 0, 0, 0, 70, 0], [0, 0, -475, 0, -199, 0, 0, 0], [0, 263, 0, 0, 0, 0, 200, 0], [0, 0, 0, 0, 0, -310, 0, 138], [-810, 0, 0, -28, 0, 0, 0, 0], [0, 0, 677, 0, 19, 0, 0, 0], [0, 0, 0, 0, 0, 54, 0, 66], [0, -87, 0, 0, 0, 0, -200, 0], [0, 0, 0, 0, 0, -154, 0, 134], [0, 146, 0, 0, 0, 0, -50, 0], [0, 0, 0, 0, 0, 368, 0, -343], [0, 0, -1162, 0, 274, 0, 0, 0], [-772, 0, 0, 168, 0, 0, 0, 0], [5960, 0, 0, -104, 0, 0, 0, 0], [0, 0, -1691, 0, 141, 0, 0, 0], [0, 0, 0, 0, 0, 210, 0, -421], [0, 107, 0, 0, 0, 0, 170, 0], [0, 0, -1295, 0, -35, 0, 0, 0], [0, 0, 0, 0, 0, -428, 0, 288], [-2510, 0, 0, 640, 0, 0, 0, 0], [8340, 0, 0, 176, 0, 0, 0, 0], [0, -348, 0, 0, 0, 0, -64, 0], [0, 0, -957, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 146, 0, -351], [0, 0, -615, 0, -305, 0, 0, 0], [0, 0, 0, 0, 0, -280, 0, 639], [0, 126, 0, 0, 0, 0, 110, 0], [2590, 0, 0, 92, 0, 0, 0, 0], [0, 0, -461, 0, 143, 0, 0, 0], [0, 0, 0, 0, 0, -296, 0, -229], [0, 0, 0, 0, 0, 360, 0, -176], [0, 0, -321, 0, 159, 0, 0, 0], [0, 0, -968, 0, -176, 0, 0, 0], [-9630, 0, 0, -744, 0, 0, 0, 0], [0, -441, 0, 0, 0, 0, 200, 0], [1960, 0, 0, 232, 0, 0, 0, 0], [0, -494, 0, 0, 0, 0, -330, 0], [0, -886, 0, 0, 0, 0, 150, 0], [-2980, 0, 0, 740, 0, 0, 0, 0], [0, 0, -3019, 0, -803, 0, 0, 0], [10560, 0, 0, -164, 0, 0, 0, 0], [0, -972, 0, 0, 0, 0, -24, 0], [0, -341, 0, 0, 0, 0, -220, 0], [0, 307, 0, 0, 0, 0, -430, 0], [0, 0, 0, 0, 0, -340, 0, 1740], [-5470, 0, 0, -260, 0, 0, 0, 0], [-6320, 0, 0, -948, 0, 0, 0, 0], [0, 0, 70, 0, 698, 0, 0, 0], [0, 430, 0, 0, 0, 0, 134, 0], [0, 0, -577, 0, -719, 0, 0, 0], [5688, 0, 0, -260, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1128, 0, -553], [0, -718, 0, 0, 0, 0, -602, 0], [0, 737, 0, 0, 0, 0, 330, 0], [0, 0, -2497, 0, -1229, 0, 0, 0], [0, 0, 0, 0, 0, 944, 0, -451], [0, 0, 0, 0, 0, -432, 0, 412], [-14680, 0, 0, 1076, 0, 0, 0, 0], [0, 0, -1121, 0, 161, 0, 0, 0], [0, 0, 0, 0, 0, -864, 0, -1080], [-760, 0, 0, -1544, 0, 0, 0, 0], [0, 0, 3501, 0, -733, 0, 0, 0], [0, 0, 0, 0, 0, 622, 0, 1058], [0, -1470, 0, 0, 0, 0, 250, 0], [0, 0, -433, 0, -155, 0, 0, 0], [0, 0, -2495, 0, -495, 0, 0, 0], [0, 0, 0, 0, 0, -586, 0, -1], [-1660, 0, 0, -1124, 0, 0, 0, 0], [0, 1167, 0, 0, 0, 0, 20, 0], [0, 0, 5059, 0, -333, 0, 0, 0], [0, 0, 0, 0, 0, -264, 0, 356], [0, 0, 1297, 0, 459, 0, 0, 0], [-25480, 0, 0, 20, 0, 0, 0, 0], [0, 16, 0, 0, 0, 0, 460, 0], [0, 0, 0, 0, 0, -214, 0, 2914], [0, 0, 0, 0, 0, -170, 0, -1615], [596, 0, 0, 2048, 0, 0, 0, 0], [0, 0, 5815, 0, 11, 0, 0, 0], [13728, 0, 0, 632, 0, 0, 0, 0], [-15920, 0, 0, -1484, 0, 0, 0, 0], [0, 259, 0, 0, 0, 0, -390, 0], [0, 0, 0, 0, 0, 552, 0, -213], [0, 651, 0, 0, 0, 0, -316, 0], [0, 0, 0, 0, 0, 408, 0, -3188], [0, 845, 0, 0, 0, 0, 948, 0], [0, 0, -868, 0, 244, 0, 0, 0], [0, 0, 0, 0, 0, -1752, 0, 1040], [0, 0, 7806, 0, -998, 0, 0, 0], [17740, 0, 0, 756, 0, 0, 0, 0], [0, 0, -6029, 0, -605, 0, 0, 0], [0, 0, 0, 0, 0, 774, 0, 2667], [0, -1914, 0, 0, 0, 0, 70, 0], [0, 0, 0, 0, 0, -990, 0, -785], [0, -365, 0, 0, 0, 0, 642, 0], [0, 0, 0, 0, 0, -1058, 0, -1138], [0, 0, 623, 0, -565, 0, 0, 0], [-4280, 0, 0, 524, 0, 0, 0, 0], [0, -935, 0, 0, 0, 0, 10, 0], [-7400, 0, 0, 1228, 0, 0, 0, 0], [0, -546, 0, 0, 0, 0, -1042, 0], [-13360, 0, 0, -1476, 0, 0, 0, 0], [0, 0, 2895, 0, 1755, 0, 0, 0], [19404, 0, 0, 1364, 0, 0, 0, 0], [0, -189, 0, 0, 0, 0, 270, 0], [0, 0, 0, 0, 0, -1292, 0, 2257], [0, -2009, 0, 0, 0, 0, -740, 0], [0, 0, -2153, 0, 1567, 0, 0, 0], [0, 0, -3632, 0, 1112, 0, 0, 0], [29840, 0, 0, -1024, 0, 0, 0, 0], [0, -2156, 0, 0, 0, 0, 620, 0], [0, 0, -2185, 0, 113, 0, 0, 0], [0, -1060, 0, 0, 0, 0, 580, 0], [11812, 0, 0, -804, 0, 0, 0, 0], [0, 0, 0, 0, 0, -866, 0, 111], [3746, 0, 0, 900, 0, 0, 0, 0], [0, -2939, 0, 0, 0, 0, -360, 0], [0, 0, 6883, 0, 1571, 0, 0, 0], [0, 0, 0, 0, 0, 418, 0, 385], [0, 0, -2461, 0, -2697, 0, 0, 0], [-9580, 0, 0, 388, 0, 0, 0, 0], [0, 0, 0, 0, 0, -412, 0, 68], [0, -1413, 0, 0, 0, 0, -650, 0], [-2960, 0, 0, -1564, 0, 0, 0, 0], [0, 0, -2655, 0, -2765, 0, 0, 0], [0, 0, 0, 0, 0, 2718, 0, 1002], [0, 0, 0, 0, 0, -1346, 0, -1133], [30780, 0, 0, 2188, 0, 0, 0, 0], [0, 904, 0, 0, 0, 0, -440, 0], [18700, 0, 0, -704, 0, 0, 0, 0], [0, -1173, 0, 0, 0, 0, -338, 0], [0, 0, -7353, 0, -2237, 0, 0, 0], [0, 931, 0, 0, 0, 0, 640, 0], [-5290, 0, 0, -3824, 0, 0, 0, 0], [0, 0, 0, 0, 0, 2408, 0, -1228], [-30980, 0, 0, -588, 0, 0, 0, 0], [0, -1356, 0, 0, 0, 0, 600, 0], [0, 0, 0, 0, 0, -3248, 0, 113], [0, 0, -2295, 0, -679, 0, 0, 0], [9420, 0, 0, -784, 0, 0, 0, 0], [0, -3095, 0, 0, 0, 0, -600, 0], [0, 0, 6471, 0, 399, 0, 0, 0], [0, 285, 0, 0, 0, 0, 730, 0], [-4780, 0, 0, 1780, 0, 0, 0, 0], [-14340, 0, 0, -2272, 0, 0, 0, 0], [0, -2049, 0, 0, 0, 0, -410, 0], [0, -2866, 0, 0, 0, 0, -1550, 0], [0, 0, -14354, 0, 1642, 0, 0, 0], [0, 0, 0, 0, 0, 480, 0, 1272], [0, 0, 0, 0, 0, 54, 0, -2089], [0, 0, 0, 0, 0, -2196, 0, 1437], [0, -2044, 0, 0, 0, 0, -620, 0], [0, -37, 0, 0, 0, 0, -432, 0], [0, 0, 0, 0, 0, -3644, 0, 3828], [0, 0, 8145, 0, -1279, 0, 0, 0], [0, 0, -10204, 0, -1308, 0, 0, 0], [0, 0, 0, 0, 0, -1374, 0, -3494], [-50400, 0, 0, -1224, 0, 0, 0, 0], [0, 155, 0, 0, 0, 0, 1820, 0], [44220, 0, 0, 212, 0, 0, 0, 0], [0, 3284, 0, 0, 0, 0, 428, 0], [0, 1410, 0, 0, 0, 0, -730, 0], [0, 0, 0, 0, 0, -1068, 0, 2515], [-2220, 0, 0, -3476, 0, 0, 0, 0], [0, 5451, 0, 0, 0, 0, 350, 0], [0, 0, -15357, 0, 1223, 0, 0, 0], [0, 0, -5489, 0, -1419, 0, 0, 0], [20480, 0, 0, -756, 0, 0, 0, 0], [0, 0, 0, 0, 0, -50, 0, -2526], [0, 0, -13348, 0, 2724, 0, 0, 0], [-30080, 0, 0, -2104, 0, 0, 0, 0], [0, 2648, 0, 0, 0, 0, 60, 0], [67300, 0, 0, 1944, 0, 0, 0, 0], [0, -2861, 0, 0, 0, 0, -970, 0], [0, 0, 5805, 0, 585, 0, 0, 0], [0, 0, 0, 0, 0, -398, 0, -3922], [0, 0, 2555, 0, 675, 0, 0, 0], [20760, 0, 0, 3444, 0, 0, 0, 0], [0, 0, 0, 0, 0, -3026, 0, -1310], [70500, 0, 0, -132, 0, 0, 0, 0], [0, 0, 9108, 0, -524, 0, 0, 0], [0, 0, 0, 0, 0, 2670, 0, -1750], [0, 3220, 0, 0, 0, 0, 380, 0], [0, 0, 0, 0, 0, 3652, 0, -31], [0, 0, 17234, 0, 462, 0, 0, 0], [0, 0, -7915, 0, 1445, 0, 0, 0], [0, 24, 0, 0, 0, 0, -100, 0], [0, 0, 3837, 0, 1493, 0, 0, 0], [0, 0, 0, 0, 0, 1772, 0, 7396], [0, 0, 0, 0, 0, -60, 0, 6140], [-34994, 0, 0, 2628, 0, 0, 0, 0], [0, 597, 0, 0, 0, 0, 1446, 0], [0, 690, 0, 0, 0, 0, 810, 0], [0, 0, 0, 0, 0, -4774, 0, 2794], [0, -3242, 0, 0, 0, 0, 330, 0], [64320, 0, 0, -2388, 0, 0, 0, 0], [0, 0, 6405, 0, -2791, 0, 0, 0], [21190, 0, 0, 2816, 0, 0, 0, 0], [0, 4215, 0, 0, 0, 0, -730, 0], [0, 0, -493, 0, -2289, 0, 0, 0], [0, 0, 0, 0, 0, 3500, 0, 1769], [0, 281, 0, 0, 0, 0, 1396, 0], [0, 0, 5283, 0, -4589, 0, 0, 0], [-30940, 0, 0, -1056, 0, 0, 0, 0], [0, 0, 0, 0, 0, 2374, 0, -5674], [0, 497, 0, 0, 0, 0, -328, 0], [0, 0, 0, 0, 0, 1692, 0, -2117], [91740, 0, 0, 1556, 0, 0, 0, 0], [0, 0, 13305, 0, -4327, 0, 0, 0], [0, 0, 0, 0, 0, -1606, 0, 7315], [0, 0, 0, 0, 0, -710, 0, -7505], [0, -4907, 0, 0, 0, 0, -750, 0], [0, 0, 0, 0, 0, 1892, 0, 8052], [0, 0, 5738, 0, -2554, 0, 0, 0], [0, 3601, 0, 0, 0, 0, -1810, 0], [37640, 0, 0, 4428, 0, 0, 0, 0], [0, 0, 6537, 0, 4475, 0, 0, 0], [0, 0, 0, 0, 0, 1030, 0, -3217], [24620, 0, 0, -5248, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1228, 0, 3977], [122576, 0, 0, -648, 0, 0, 0, 0], [0, 0, 0, 0, 0, -4816, 0, 4241], [0, 0, 0, 0, 0, 1762, 0, -5602], [0, 0, 5371, 0, 4819, 0, 0, 0], [60730, 0, 0, 5012, 0, 0, 0, 0], [12730, 0, 0, -9404, 0, 0, 0, 0], [0, -4870, 0, 0, 0, 0, 190, 0], [0, 356, 0, 0, 0, 0, -3220, 0], [-45000, 0, 0, 752, 0, 0, 0, 0], [0, -2632, 0, 0, 0, 0, 2720, 0], [0, 0, 0, 0, 0, -4734, 0, 617], [0, 0, 0, 0, 0, 540, 0, -740], [0, 0, 17195, 0, -225, 0, 0, 0], [-72570, 0, 0, 2040, 0, 0, 0, 0], [0, 0, 6278, 0, 2554, 0, 0, 0], [0, 0, 0, 0, 0, 2114, 0, 202], [0, 3635, 0, 0, 0, 0, 770, 0], [0, 0, 19366, 0, 6642, 0, 0, 0], [0, -5700, 0, 0, 0, 0, -392, 0], [0, 0, -4501, 0, -1651, 0, 0, 0], [0, -4706, 0, 0, 0, 0, 750, 0], [-83450, 0, 0, -1296, 0, 0, 0, 0], [0, -2683, 0, 0, 0, 0, -420, 0], [0, 0, 0, 0, 0, -2816, 0, -1956], [0, 2069, 0, 0, 0, 0, 680, 0], [0, 3578, 0, 0, 0, 0, 3910, 0], [0, 0, 0, 0, 0, -2336, 0, 5536], [0, 0, 0, 0, 0, -2956, 0, -2579], [0, 0, 9701, 0, -3841, 0, 0, 0], [-35656, 0, 0, 8512, 0, 0, 0, 0], [0, 0, 13905, 0, 7721, 0, 0, 0], [-102192, 0, 0, 676, 0, 0, 0, 0], [-66160, 0, 0, 536, 0, 0, 0, 0], [0, 0, -8199, 0, -5991, 0, 0, 0], [0, 0, 0, 0, 0, 6754, 0, 2095], [0, 0, 28633, 0, 461, 0, 0, 0], [-63870, 0, 0, 5572, 0, 0, 0, 0], [0, -3252, 0, 0, 0, 0, -580, 0], [0, 0, -25183, 0, -7261, 0, 0, 0], [0, 0, 19269, 0, 1963, 0, 0, 0], [-72320, 0, 0, -5764, 0, 0, 0, 0], [0, 0, -1465, 0, -5693, 0, 0, 0], [0, 0, 0, 0, 0, 1404, 0, -1985], [0, -3352, 0, 0, 0, 0, -160, 0], [0, 0, -25437, 0, 2471, 0, 0, 0], [0, 0, 0, 0, 0, 4972, 0, -437], [0, 0, -18227, 0, -189, 0, 0, 0], [0, 0, 0, 0, 0, 3110, 0, -4518], [42180, 0, 0, -3556, 0, 0, 0, 0], [0, 1539, 0, 0, 0, 0, -2440, 0], [11020, 0, 0, 5052, 0, 0, 0, 0], [0, 0, 17268, 0, 1180, 0, 0, 0], [0, 0, 0, 0, 0, 1784, 0, 9243], [-84316, 0, 0, -6120, 0, 0, 0, 0], [0, 0, 0, 0, 0, 3346, 0, 10734], [0, 0, 6299, 0, 1895, 0, 0, 0], [0, 0, 36419, 0, -3391, 0, 0, 0], [36810, 0, 0, -3328, 0, 0, 0, 0], [0, 0, 11703, 0, 4253, 0, 0, 0], [0, 0, 0, 0, 0, 450, 0, -1146], [0, -1942, 0, 0, 0, 0, 746, 0], [-14020, 0, 0, 6136, 0, 0, 0, 0], [0, -5902, 0, 0, 0, 0, -3078, 0], [-36920, 0, 0, -8524, 0, 0, 0, 0], [0, 3483, 0, 0, 0, 0, -2150, 0], [0, 0, 0, 0, 0, 6252, 0, 2625], [0, 0, 0, 0, 0, 3746, 0, -5346], [-33570, 0, 0, 11536, 0, 0, 0, 0], [0, 0, -1343, 0, -3633, 0, 0, 0], [0, -635, 0, 0, 0, 0, -1120, 0], [49520, 0, 0, 8048, 0, 0, 0, 0], [0, 0, -22403, 0, -5657, 0, 0, 0], [0, 0, -28173, 0, 4299, 0, 0, 0], [0, 0, 0, 0, 0, 1534, 0, -14181], [-55320, 0, 0, -1412, 0, 0, 0, 0], [0, -4064, 0, 0, 0, 0, -440, 0], [0, 2619, 0, 0, 0, 0, 1340, 0], [0, 0, 0, 0, 0, -6934, 0, -6418], [-139130, 0, 0, 1484, 0, 0, 0, 0], [0, 0, -16114, 0, 1282, 0, 0, 0], [0, 0, 0, 0, 0, -4124, 0, 10484], [79870, 0, 0, 2416, 0, 0, 0, 0], [0, 6011, 0, 0, 0, 0, 3510, 0], [0, 3436, 0, 0, 0, 0, 5040, 0], [0, -6352, 0, 0, 0, 0, 1040, 0], [0, 0, 37876, 0, -5060, 0, 0, 0], [0, 0, 13835, 0, -3969, 0, 0, 0], [62530, 0, 0, 7264, 0, 0, 0, 0], [0, -13299, 0, 0, 0, 0, -910, 0], [0, 0, 14543, 0, 8003, 0, 0, 0], [0, 0, -26127, 0, -8079, 0, 0, 0], [0, 0, 0, 0, 0, 3612, 0, -632], [85860, 0, 0, -924, 0, 0, 0, 0], [0, -1767, 0, 0, 0, 0, 1440, 0], [-33540, 0, 0, -9836, 0, 0, 0, 0], [-36310, 0, 0, 1060, 0, 0, 0, 0], [0, 0, -35935, 0, 2785, 0, 0, 0], [0, 0, 0, 0, 0, 1986, 0, 4578], [0, 0, -28203, 0, -3415, 0, 0, 0], [0, 0, -42282, 0, 3946, 0, 0, 0], [0, 0, 0, 0, 0, -1798, 0, 6646], [142970, 0, 0, 6356, 0, 0, 0, 0], [0, -5552, 0, 0, 0, 0, -3220, 0], [0, 0, -15743, 0, -5331, 0, 0, 0], [0, 0, 0, 0, 0, -832, 0, -10903], [0, 8853, 0, 0, 0, 0, -550, 0], [0, 0, 0, 0, 0, -836, 0, 16731], [0, -8485, 0, 0, 0, 0, 1420, 0], [0, 0, 4560, 0, -8584, 0, 0, 0], [-3680, 0, 0, -5392, 0, 0, 0, 0], [0, 0, -21420, 0, -4892, 0, 0, 0], [0, 0, 0, 0, 0, 2308, 0, -4532], [0, 10604, 0, 0, 0, 0, -1264, 0], [91132, 0, 0, -10812, 0, 0, 0, 0], [0, 0, 0, 0, 0, 4022, 0, 3693], [-208000, 0, 0, 4076, 0, 0, 0, 0], [0, 4890, 0, 0, 0, 0, 2038, 0], [-58060, 0, 0, -2700, 0, 0, 0, 0], [0, -8929, 0, 0, 0, 0, -3976, 0], [0, 0, -10651, 0, 4533, 0, 0, 0], [0, 0, 0, 0, 0, 1970, 0, -810], [0, 0, -1541, 0, -897, 0, 0, 0], [85080, 0, 0, -3152, 0, 0, 0, 0], [0, 0, 0, 0, 0, 4660, 0, 8724], [0, -16977, 0, 0, 0, 0, 350, 0], [-41552, 0, 0, 3676, 0, 0, 0, 0], [0, 0, 2705, 0, -5165, 0, 0, 0], [0, 0, 0, 0, 0, 7334, 0, 4675], [0, 0, 40648, 0, 7472, 0, 0, 0], [-3880, 0, 0, 7912, 0, 0, 0, 0], [0, -9655, 0, 0, 0, 0, 1578, 0], [0, 17565, 0, 0, 0, 0, -480, 0], [0, 0, 0, 0, 0, 360, 0, -7972], [-124970, 0, 0, -2740, 0, 0, 0, 0], [0, 0, 11432, 0, 5344, 0, 0, 0], [0, 0, 0, 0, 0, -2232, 0, -2368], [0, 13078, 0, 0, 0, 0, -1810, 0], [0, 0, 0, 0, 0, 4852, 0, -9797], [0, 0, 13355, 0, 5657, 0, 0, 0], [0, 0, 13533, 0, 9117, 0, 0, 0], [2792, 0, 0, 8116, 0, 0, 0, 0], [152420, 0, 0, -10892, 0, 0, 0, 0], [0, -7617, 0, 0, 0, 0, -1960, 0], [0, 0, -35041, 0, 3163, 0, 0, 0], [0, 0, 0, 0, 0, -5862, 0, 16922], [0, 8261, 0, 0, 0, 0, -22, 0], [0, 3486, 0, 0, 0, 0, -6, 0], [0, 0, 14333, 0, 1991, 0, 0, 0], [0, 0, 0, 0, 0, -4254, 0, 17739], [0, 0, -19055, 0, 10877, 0, 0, 0], [0, -12424, 0, 0, 0, 0, 1260, 0], [0, 0, 0, 0, 0, -8116, 0, -13549], [0, 2213, 0, 0, 0, 0, -5080, 0], [0, 0, 18965, 0, -8731, 0, 0, 0], [0, 0, -20805, 0, -5715, 0, 0, 0], [0, 0, 0, 0, 0, -20, 0, -17408], [0, -10386, 0, 0, 0, 0, -4770, 0]];
    aps := ConvertToHeckeField(raw_aps);
    chi := MakeCharacter_441_a_Hecke(Universe(aps));
    return ExtendMultiplicatively(weight, aps, chi);
end function;


// To make the newform (type ModFrm), type "MakeNewformModFrm_441_4_a_x();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose lines below.
// The precision argument determines an initial guess on how many Fourier coefficients to use.
// This guess is increased enough to uniquely determine the newform.
function MakeNewformModFrm_441_4_a_x(:prec:=8)
    chi := MakeCharacter_441_a();
    f_vec := qexpCoeffs();
    Kf := Universe(f_vec);
    // SetVerbose("ModularForms", true);
    // SetVerbose("ModularSymbols", true);
    S := CuspidalSubspace(ModularForms(chi, 4));
    S := BaseChange(S, Kf);
    maxprec := NextPrime(2999) - 1;
    while true do
        trunc_vec := Vector(Kf, [0] cat [f_vec[i]: i in [1..prec]]);
        B := Basis(S, prec + 1);
        S_basismat := Matrix([AbsEltseq(g): g in B]);
        if Rank(S_basismat) eq Min(NumberOfRows(S_basismat), NumberOfColumns(S_basismat)) then
            S_basismat := ChangeRing(S_basismat,Kf);
            f_lincom := Solution(S_basismat,trunc_vec);
            f := &+[f_lincom[i]*Basis(S)[i] : i in [1..#Basis(S)]];
            return f;
        end if;
        error if prec eq maxprec, "Unable to distinguish newform within newspace";
        prec := Min(Ceiling(1.25 * prec), maxprec);
    end while;
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_441_4_a_x();".
// 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_441_4_a_x( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_441_a();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,4,sign)));
    Vf := Kernel([<2,R![112, 0, -33, 0, 1]>,<5,R![34300, 0, -384, 0, 1]>,<13,R![4900, 0, -5268, 0, 1]>],Snew);
    return Vf;
end function;