// Make newform 507.4.a.j in Magma, downloaded from the LMFDB on 29 March 2024. // To make the character of type GrpDrchElt, type "MakeCharacter_507_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_507_4_a_j();". // 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_507_4_a_j();". // 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 := [48, 0, -29, 0, 1]; Kf := NumberField(Polynomial([elt : elt in poly])); AssignNames(~Kf, ["nu"]); end if; Rf_num := [[1, 0, 0, 0], [0, 1, 0, 0], [0, -25, 0, 1], [-15, 0, 1, 0]]; Rf_basisdens := [1, 1, 2, 1]; 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_507_a();" function MakeCharacter_507_a() N := 507; order := 1; char_gens := [170, 340]; 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_507_a_Hecke(Kf) return MakeCharacter_507_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 := 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 := 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, 1, 0, 0], [-3, 0, 0, 0], [0, 0, -1, 0], [0, -6, 0, 0], [0, -2, -1, 0], [0, 0, 0, 0], [-54, 0, 0, 0], [0, 6, 6, 0], [-36, 0, 0, -12], [-18, 0, 0, -12], [0, -18, 6, 0], [0, -48, 24, 0], [0, -4, 13, 0], [-260, 0, 0, 12], [0, 122, -21, 0], [-198, 0, 0, 36], [0, -34, -15, 0], [-566, 0, 0, 8], [0, 150, 12, 0], [0, 6, 23, 0], [0, 0, 54, 0], [88, 0, 0, 32], [0, 138, -25, 0], [0, -4, 15, 0], [0, -336, 54, 0], [-162, 0, 0, -60], [712, 0, 0, -60], [-792, 0, 0, 36], [0, 192, -6, 0], [342, 0, 0, -24], [-784, 0, 0, -80], [-72, 0, 0, 84], [0, 172, -151, 0], [1340, 0, 0, 60], [0, -392, -123, 0], [0, -102, -186, 0], [-82, 0, 0, -84], [0, -150, 174, 0], [0, 114, -65, 0], [-1530, 0, 0, 12], [1440, 0, 0, 180], [1594, 0, 0, 84], [252, 0, 0, -300], [0, -312, -12, 0], [0, -416, -21, 0], [1880, 0, 0, -80], [-548, 0, 0, 80], [0, 726, 54, 0], [0, -30, -283, 0], [0, 744, 234, 0], [-3690, 0, 0, 72], [0, -730, -497, 0], [0, -288, -174, 0], [828, 0, 0, 0], [-2610, 0, 0, -264], [-6120, 0, 0, 168], [2286, 0, 0, -36], [0, 162, 216, 0], [-2726, 0, 0, -168], [0, -588, -479, 0], [-5428, 0, 0, -80], [0, 880, -271, 0], [0, 882, -216, 0], [972, 0, 0, 636], [-2114, 0, 0, 332], [0, 176, 175, 0], [0, 1566, -132, 0], [-550, 0, 0, -404], [180, 0, 0, 264], [0, 2232, 168, 0], [0, -1020, 401, 0], [0, -2406, 619, 0], [992, 0, 0, -468], [-5318, 0, 0, -244], [0, -978, 174, 0], [0, -3010, 301, 0], [-2070, 0, 0, -60], [0, -840, -372, 0], [0, 836, 63, 0], [0, 2232, 114, 0], [-360, 0, 0, -420], [0, -1272, -1026, 0], [0, -1106, -243, 0], [-3238, 0, 0, 760], [1144, 0, 0, 876], [8064, 0, 0, 204], [0, 1572, 763, 0], [0, 504, -186, 0], [0, 3304, -693, 0], [0, -2118, -900, 0], [-1044, 0, 0, -1080], [0, -3958, 453, 0], [0, 3342, -582, 0], [-7092, 0, 0, -480], [0, 1662, 264, 0], [-16632, 0, 0, 0], [0, -2936, 15, 0], [918, 0, 0, 144], [-5788, 0, 0, 276], [0, 816, 978, 0], [6716, 0, 0, 828], [0, 112, -751, 0], [-12960, 0, 0, -228], [10998, 0, 0, 552], [10412, 0, 0, 1216], [0, -3744, 180, 0], [0, -2854, -425, 0], [0, 1492, 35, 0], [16848, 0, 0, -528], [-8018, 0, 0, -100], [11432, 0, 0, 612], [0, 3888, -540, 0], [0, 2796, 725, 0], [0, -1398, 1488, 0], [0, 4434, 402, 0], [-486, 0, 0, -456], [0, -642, 300, 0], [14256, 0, 0, 720], [-10674, 0, 0, -1068], [-5148, 0, 0, -192], [0, 1704, -1308, 0], [478, 0, 0, 84], [3330, 0, 0, -1596], [0, -4266, -1169, 0], [0, -234, 48, 0], [-27630, 0, 0, -252], [0, -2664, -2010, 0], [28332, 0, 0, -612], [128, 0, 0, -32], [0, -2472, -1530, 0], [0, 1434, 2064, 0], [0, 6918, -985, 0], [8872, 0, 0, -1044], [-17390, 0, 0, 1184], [0, 5844, 517, 0], [0, 1368, -1128, 0], [0, -4184, -2511, 0], [0, -1734, 816, 0], [-9126, 0, 0, -1668], [3510, 0, 0, -360], [0, 5262, -1254, 0], [0, -5296, 1777, 0], [-368, 0, 0, 1020], [0, 5638, 347, 0], [4166, 0, 0, 784], [0, -2022, 121, 0], [0, -4008, -1140, 0], [-20970, 0, 0, 1056], [-8948, 0, 0, 968], [0, -2178, 1097, 0], [0, -1944, 1500, 0], [21366, 0, 0, -1008], [6212, 0, 0, 760], [19620, 0, 0, -996], [-5212, 0, 0, 1288], [12060, 0, 0, 1932], [-9512, 0, 0, -2728], [0, -3988, 1789, 0], [6094, 0, 0, 1160], [0, 7280, -155, 0], [0, 5438, -843, 0], [8262, 0, 0, 2160], [0, 366, 750, 0], [-28116, 0, 0, 648], [0, 8868, -349, 0], [0, -998, 2405, 0], [42992, 0, 0, -660], [6830, 0, 0, 2544], [0, 10080, -1098, 0], [-50706, 0, 0, -732], [0, -2070, -847, 0], [0, 13296, -1812, 0], [6012, 0, 0, 3876], [0, -6816, 738, 0], [34120, 0, 0, -1500], [23922, 0, 0, -2472], [0, 3882, 2376, 0], [0, 9296, -1827, 0], [17344, 0, 0, -1572], [-2558, 0, 0, -292], [0, -1494, -2784, 0], [-12528, 0, 0, -2004], [-23102, 0, 0, 2240], [0, 580, 2127, 0], [0, -862, -1977, 0], [7434, 0, 0, 1596], [-40094, 0, 0, 1380], [0, -3258, 2442, 0], [0, -7992, 3306, 0], [0, 6874, 827, 0], [21770, 0, 0, -12], [0, 4234, 3243, 0], [19124, 0, 0, -3252], [0, -5520, -1955, 0], [-50544, 0, 0, -900], [42030, 0, 0, 2832], [0, 1584, 1572, 0], [-21178, 0, 0, 2260], [0, -11860, 3243, 0], [13644, 0, 0, -756], [0, -6288, -4757, 0], [11456, 0, 0, 4236], [0, 288, -2334, 0], [-20998, 0, 0, -2892], [0, 2502, -3527, 0], [-70758, 0, 0, 612], [0, -3306, 690, 0], [-30744, 0, 0, 2892], [0, -5124, -409, 0], [-20404, 0, 0, 1432], [-6694, 0, 0, 760], [7578, 0, 0, 444], [59608, 0, 0, 440], [0, -3706, 3135, 0], [0, 4198, -1203, 0], [0, -11136, 12, 0], [31768, 0, 0, 4856], [60858, 0, 0, -1776], [0, -3706, -5921, 0], [0, -1696, 2841, 0], [-20170, 0, 0, -408], [0, -5190, -3828, 0], [0, -18652, 1507, 0], [0, -7914, 5334, 0], [4428, 0, 0, -4512], [-13358, 0, 0, -5472], [-23310, 0, 0, 3048], [-29592, 0, 0, -5328], [19160, 0, 0, 3016], [0, -9738, -539, 0], [45970, 0, 0, -828], [8108, 0, 0, 3012], [0, -21642, 2664, 0], [-38502, 0, 0, -480], [26828, 0, 0, -3900], [0, 5222, -2177, 0], [0, -18432, 2406, 0], [0, -10488, 1825, 0], [58968, 0, 0, 132], [-22932, 0, 0, -2916], [0, -15758, 3627, 0], [15500, 0, 0, 3568], [-45992, 0, 0, 2480], [0, -9864, 2736, 0], [0, -4804, 4879, 0], [65772, 0, 0, -2292], [0, -5862, -1128, 0], [0, -1666, 2097, 0], [0, -17586, 150, 0], [-45540, 0, 0, 2052], [0, 16680, 4218, 0], [0, 20060, 1105, 0], [0, 7882, 3869, 0], [-68398, 0, 0, -3812], [-20754, 0, 0, -1668], [0, 15870, 4027, 0], [1810, 0, 0, 1052], [0, -12762, -6234, 0], [22482, 0, 0, 1764], [0, 4560, 2292, 0], [-64, 0, 0, 3016], [-51516, 0, 0, 600], [0, -7536, -3930, 0], [-85642, 0, 0, 0], [0, 10004, -4305, 0], [-22364, 0, 0, -6256], [0, 17648, 1447, 0], [0, 4204, 4257, 0], [0, 18258, -4032, 0], [-49626, 0, 0, -12], [-13354, 0, 0, -968], [0, -17538, 4188, 0], [0, -7920, 3894, 0], [-54224, 0, 0, -2796], [-3482, 0, 0, 5156], [0, 7830, -7524, 0], [0, -3798, -3907, 0], [0, 1344, -1116, 0], [0, 18120, -7800, 0], [-67068, 0, 0, 6456], [60660, 0, 0, 4548], [0, 2754, 912, 0], [-32868, 0, 0, -8148], [0, 15744, 5712, 0], [0, -3390, 8268, 0], [19872, 0, 0, -5544], [-2978, 0, 0, 296], [0, 4480, -4503, 0], [0, -3558, -7782, 0], [-31482, 0, 0, -3528], [109098, 0, 0, 1644], [-35892, 0, 0, 936], [0, 26852, -4613, 0], [0, 5638, -211, 0], [-78226, 0, 0, 2124], [-8766, 0, 0, -8004], [-30760, 0, 0, -1548], [98946, 0, 0, 1596], [-61164, 0, 0, -7056], [0, -10806, -1440, 0], [-1898, 0, 0, 9840], [0, 13064, 2715, 0], [-41480, 0, 0, -5820], [45252, 0, 0, 5736], [-5212, 0, 0, 3804], [0, 6144, 8034, 0], [67104, 0, 0, -3948], [-78370, 0, 0, 3960], [0, 22882, 2993, 0], [-29482, 0, 0, 8644], [-49464, 0, 0, 5352], [0, -8512, -5273, 0], [-66906, 0, 0, 1968], [87868, 0, 0, -3160], [0, -20662, 3567, 0], [57646, 0, 0, -8236], [0, 6362, -5951, 0], [0, 10494, 4877, 0], [0, -8712, 258, 0], [-68742, 0, 0, 7152], [39196, 0, 0, 8292], [0, 8688, -5904, 0], [15354, 0, 0, -1692], [0, 31506, 4542, 0], [0, -24244, -3093, 0], [7966, 0, 0, 13256], [0, 7218, -7074, 0], [0, 19398, -4620, 0], [-36216, 0, 0, -168], [-4338, 0, 0, -13644], [0, 16728, 2514, 0], [-58554, 0, 0, -10212], [-9416, 0, 0, 4136], [0, 14998, -12217, 0], [0, 14814, 342, 0], [0, 14018, -5369, 0], [0, 7992, 7668, 0], [0, -43060, 6189, 0], [0, 40656, -2322, 0], [-102008, 0, 0, 324], [0, -27864, 4944, 0], [61326, 0, 0, 888], [0, -2784, 9565, 0], [60400, 0, 0, 8148], [0, 18440, -7049, 0], [28584, 0, 0, 396], [121618, 0, 0, -2836], [0, -2310, -9162, 0], [0, 25306, 2843, 0], [-52038, 0, 0, 5004], [0, 6006, 6948, 0], [0, 744, -210, 0], [0, -36920, 2265, 0], [-4744, 0, 0, -2384], [54494, 0, 0, 6616], [-18666, 0, 0, -17496], [0, -7902, 6031, 0], [0, -16334, 11313, 0], [166662, 0, 0, -3576], [0, -8930, 8421, 0], [0, -7320, 9072, 0], [30906, 0, 0, -9528], [-27144, 0, 0, 3168], [0, 7762, -11751, 0], [62908, 0, 0, -2052], [55898, 0, 0, 9420], [0, 42184, -3445, 0], [0, 4434, -3954, 0], [-35738, 0, 0, 1236], [58968, 0, 0, -3396], [50068, 0, 0, -1788], [0, -6182, -9817, 0], [-43038, 0, 0, 1788], [50968, 0, 0, -3376], [-125362, 0, 0, -6024], [0, -40614, -6469, 0], [180648, 0, 0, 0], [0, -13008, -4548, 0], [178650, 0, 0, -5400], [-13058, 0, 0, -3876], [0, -14096, -13123, 0], [0, 52524, -3959, 0], [0, -12822, 9552, 0], [0, -10956, -12181, 0], [0, 3282, -1962, 0], [0, -27854, -17863, 0], [0, 41214, -10668, 0], [-193042, 0, 0, 1648], [0, -36690, 14106, 0], [20664, 0, 0, -1680], [0, 4728, -2034, 0], [0, -32528, -8643, 0], [0, -4154, -805, 0], [-67220, 0, 0, -12736], [0, 866, -8817, 0], [-212042, 0, 0, -2920], [0, 35502, -14196, 0], [200754, 0, 0, 2136], [-98756, 0, 0, 10448], [0, -7912, 8379, 0], [0, 34464, 3060, 0], [88434, 0, 0, 12888], [0, -1278, 9804, 0], [0, -12764, -3169, 0], [0, -24872, 671, 0], [-30512, 0, 0, -17176], [0, 24408, -3714, 0], [0, -20556, -11233, 0], [0, -57966, 2436, 0], [0, 30254, 12939, 0], [111934, 0, 0, 3648], [5202, 0, 0, 5892], [-141516, 0, 0, 4824], [-80372, 0, 0, 900], [-183050, 0, 0, 3936], [-6606, 0, 0, 13788], [0, -17658, -6121, 0], [-95120, 0, 0, 12104], [0, 17820, 5743, 0], [-79668, 0, 0, 5100], [31158, 0, 0, 14412], [0, -34608, 12048, 0], [0, -64346, 11019, 0], [-149040, 0, 0, -10860], [0, -54816, 4728, 0], [0, 34472, 9433, 0], [-60444, 0, 0, 1776], [0, 25164, -505, 0], [0, -50094, 5598, 0], [58716, 0, 0, 8484]]; aps := ConvertToHeckeField(raw_aps); chi := MakeCharacter_507_a_Hecke(Universe(aps)); return ExtendMultiplicatively(weight, aps, chi); end function; // To make the newform (type ModFrm), type "MakeNewformModFrm_507_4_a_j();". // 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_507_4_a_j(:prec:=4) chi := MakeCharacter_507_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_507_4_a_j();". // 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_507_4_a_j( : sign := -1) R := PolynomialRing(Rationals()); chi := MakeCharacter_507_a(); // SetVerbose("ModularSymbols", true); Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,4,sign))); Vf := Kernel([<2,R![48, 0, -29, 0, 1]>,<5,R![8112, 0, -272, 0, 1]>],Snew); return Vf; end function;