// Make newform 966.4.a.k in Magma, downloaded from the LMFDB on 28 March 2024. // To make the character of type GrpDrchElt, type "MakeCharacter_966_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_966_4_a_k();". // 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_966_4_a_k();". // 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 := [-241, 271, -66, -1, 1]; Kf := NumberField(Polynomial([elt : elt in poly])); AssignNames(~Kf, ["nu"]); end if; Rf_num := [[1, 0, 0, 0], [0, 1, 0, 0], [35, -46, 4, 1], [-137, 64, -1, -1]]; Rf_basisdens := [1, 1, 6, 3]; 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_966_a();" function MakeCharacter_966_a() N := 966; order := 1; char_gens := [323, 829, 925]; 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_966_a_Hecke(Kf) return MakeCharacter_966_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 := [[2, 0, 0, 0], [-3, 0, 0, 0], [-3, -1, -1, 0], [7, 0, 0, 0], [-8, -4, 5, 0], [-7, 8, -5, 3], [-46, 8, 1, -6], [-40, 7, 6, -3], [23, 0, 0, 0], [10, -15, 12, -3], [-56, 0, -7, 10], [74, 24, -45, 4], [-64, 21, -24, -9], [67, 10, 3, 15], [-108, -21, 31, 17], [-203, -69, 21, 4], [-173, -52, 44, -3], [-243, 0, -3, -15], [-239, 19, 53, -42], [-429, -5, -8, -40], [-430, -7, -28, 17], [78, 5, -16, 11], [-378, -29, -14, -73], [-391, -16, -89, 71], [-448, -146, -3, -34], [-595, 131, -91, 90], [-408, 32, 216, -36], [-503, 158, -115, 81], [-181, 191, -27, -70], [-761, -224, -24, 19], [245, -263, 68, 12], [-918, -313, 50, 45], [130, -145, -70, 63], [651, -92, 78, 177], [488, 109, 81, -33], [-130, 144, 6, 118], [-480, -183, 371, 31], [217, 146, 344, -203], [-416, -234, 189, 112], [750, -158, -83, -92], [479, 114, 44, -105], [358, -14, -185, -158], [-66, 136, -170, -22], [-116, -40, -54, -158], [1171, 325, 120, 92], [-1161, 190, 72, -93], [1096, 369, -384, -167], [-1463, -187, -123, 166], [345, -586, 168, 103], [829, -591, 105, -114], [1057, 334, -472, 67], [-363, 780, -464, 11], [-1088, 366, -73, -142], [-1832, 416, 210, -130], [-100, -178, -90, -196], [-406, 713, -412, 107], [-747, 92, -209, -297], [-1078, 162, 425, -78], [1805, 73, 320, -362], [1416, -654, -112, 216], [2553, -260, -550, 357], [262, -753, 373, 55], [18, 945, -766, -117], [1369, 480, -543, -355], [2316, -201, -41, 75], [3091, -278, 428, 309], [2452, 318, -180, 510], [6519, 41, -800, -180], [358, -303, -522, 403], [3375, 401, -613, 118], [2208, 1087, -154, 529], [-623, 936, -536, -81], [-3357, -839, 1440, 286], [4282, 412, -477, -128], [560, 121, -1295, -47], [592, 77, 788, -583], [-3880, 204, -599, -426], [4426, -113, 89, 165], [-1012, -889, -106, 149], [-3560, 1045, 492, 155], [-7337, -514, 904, 61], [7085, -716, -341, 273], [-3241, -489, 460, 316], [-3230, -499, 465, -153], [588, -30, 1339, -972], [308, -1502, 514, -830], [-1073, -12, 602, -421], [5961, -754, -260, -313], [841, 1225, -1521, -412], [-5642, -997, 1104, -335], [698, 887, 264, -149], [-8962, -1303, -110, 483], [3818, -1255, -236, 611], [-1149, 61, 764, 610], [1529, 640, -240, -293], [-2281, -972, -1180, 701], [-1450, 1075, -727, 241], [304, 845, -773, 865], [6858, 1570, -1462, -534], [11444, 46, 974, -344], [-10163, 1158, -310, -203], [-3100, 1017, -1173, 743], [1423, -1863, -90, -44], [258, 2068, 458, -1008], [-2170, -2426, 767, -1008], [3114, 644, -1976, 672], [-4017, 1325, -1182, 418], [6480, -1500, 1670, 118], [-7281, 819, -1006, -176], [5099, -1984, 1586, 899], [4517, -478, -893, -25], [18132, -540, -369, -30], [-16631, 927, 1662, -608], [973, -689, -836, -828], [-9224, -1809, 1174, 59], [6165, 791, -2256, 460], [301, 723, 1428, 144], [-20487, -221, 983, 248], [8493, -1350, 2436, -169], [-9212, 664, 725, 932], [3526, -698, -697, -442], [6356, -1749, -776, -423], [-7559, 1586, -1573, 451], [-7166, 213, 1908, 755], [8025, -1699, 2846, 48], [-1365, 1495, -915, 334], [2243, -1898, -2991, 2201], [6358, -404, 2449, 272], [6942, 819, -1190, -699], [2724, -1015, 2587, -1709], [8356, -1709, -1778, -89], [449, 10, -938, -1815], [-4653, 332, 3356, -207], [-2938, 2082, -2337, 1254], [22430, 790, 656, -166], [-11278, 1231, 4059, -731], [-1938, 2208, -487, 896], [-17551, 1292, -2080, 945], [-11024, 2425, -1063, -941], [6305, -107, -1968, -1050], [2780, 635, -190, 1287], [160, -2588, 4768, 274], [-2685, 2724, 56, 453], [-22707, 1447, 601, -54], [-21570, 1608, -2765, -194], [-18039, -4459, 3266, 720], [16286, 1429, 2153, -769], [-22704, -1048, 378, -658], [7292, -720, 2430, 1996], [-3734, 786, 634, 372], [-13394, 3778, -3232, -1258], [12530, -1433, -3149, 789], [-11129, 2999, -2934, 336], [2517, 370, -3049, 1623], [11091, 881, 1265, -626], [-18366, 1800, -378, -146], [-31860, 1025, -1316, -863], [-5303, -3716, -434, -1871], [12630, -2738, 209, -2108], [-16926, -3645, 2825, -689], [-11168, -3252, -1846, 1016], [-23691, 3291, -534, -644], [-11528, -4382, 744, 1666], [12993, -3081, -862, 1448], [8793, -389, 164, -1236], [-17344, 3003, -1470, 447], [39687, 235, -2252, -356], [9578, 2732, 1603, -34], [-24447, 2926, 296, -1169], [30501, -2648, -2437, 1439], [8083, -1262, -2599, 2619], [-5796, -3345, 5125, 1903], [1623, 6845, -5074, -454], [-1030, 553, -2, 641], [-12890, 513, 3139, 541], [17692, -2834, -635, 450], [-4781, -737, -352, 532], [14211, 38, 3644, 157], [-10887, 4446, -2724, 1037], [-14819, 2261, -2747, 14], [-1155, -144, -2788, -1353], [2707, -1923, -1860, -2276], [-2165, -3816, 3534, -1009], [23141, 1677, -952, -1446], [12236, -3525, 6390, -157], [-30335, 2696, 4111, -1291], [11158, 7116, 2556, -1060], [1462, -3201, 766, 355], [3371, -1372, -2722, 2007], [-4516, 5902, 4259, -2888], [-20831, -7700, 3524, 517], [12949, -1566, 5606, -47], [-21962, 1783, 5859, 1761], [46950, 126, 1601, 324], [-2677, 1954, 3295, -4049], [23049, 588, -1457, 2331], [3609, 2223, 4096, -1944], [6756, 5727, -179, 2361], [-16456, 1417, 415, 785], [8125, -2901, 1199, -3868], [20062, -3743, 5033, 3057], [27966, -1505, -4179, 383], [-20967, -3941, -1819, 2434], [-12053, 2800, 1599, -495], [-11048, -4213, 1694, 505], [31808, -4163, -2101, -1355], [20724, 4037, 2184, 1269], [22817, 5250, -4794, -1123], [2065, 726, -5788, 2127], [4, 2681, 1154, -2023], [-3272, -2438, 6826, -2332], [16217, -4835, -1931, 2400], [12350, 2877, 3254, -2005], [20666, -640, 4122, -2672], [35667, 554, -5691, -1387], [-36221, 5719, -4363, -3428], [22628, -7015, -876, 3209], [253, -6975, -4974, 610], [-7366, 917, 1464, 2239], [46704, 1785, -5530, -1289], [4661, -6549, 1384, -1924], [-52232, 4996, -1134, -4780], [5305, 9809, -850, 1678], [20016, -4118, 2518, 3146], [-15760, 3583, 7652, 1815], [-26641, 6472, -5108, 4027], [36124, -688, -1467, -1980], [-52840, 3922, -186, -3754], [-24785, -4613, 3858, 892], [18978, -8961, 6394, -2027], [1316, -5589, 7600, -3187], [-2321, -8643, 10020, 1584], [-12359, 3570, -8376, -159], [5958, 2170, 4704, -4878], [37635, -4435, -562, 2552], [-7329, 1525, -1686, 2798], [-8326, -4859, -3429, -541], [-20586, -8970, 4361, 1186], [5106, -7827, 3744, 3347], [7512, 8086, 3527, 2412], [-57332, -4530, 4491, -870], [23907, -6912, -5686, 4185], [3912, 5939, -1015, -4319], [18422, 3611, 5260, -2489], [24140, 11407, -2576, 2913], [-25607, 2548, 3273, -3335], [-16462, 5203, -711, -2937], [9906, 1272, 2, 3652], [-8080, 9176, -4667, -2456], [1442, -4129, 5228, 4241], [-29586, 8064, -2253, 1220], [12724, -4769, 2981, 2631], [-34808, 5153, -488, -867], [-8898, -14220, -927, -1750], [-6356, 5748, -2333, -960], [1086, 3026, -7666, 6392], [81818, 6066, -2129, -622], [-19424, 1699, 10912, 877], [-23715, -1244, 4873, -1669], [27040, 5001, 5720, -2225], [-779, 11591, -3996, 5654], [62656, 7647, -707, 1755], [-42005, -3505, -3115, -2540], [46272, -3326, -8853, -2576], [-16949, -3355, 13832, 876], [-3626, 13385, -7198, 4589], [-2050, 8251, -5229, -105], [7348, -4602, 11425, 266], [-53066, 2524, 3393, -2858], [36941, -1168, -1798, 1789], [-18582, 2186, 2221, -1504], [19292, -1174, -2237, -4814], [48629, 10688, -79, -1509], [-25262, 328, -6170, -4258], [-3728, 11157, -3634, 1151], [-3906, -16923, 10069, -1731], [94138, -4125, 608, -3135], [-25010, 6939, -7928, 5039], [8926, -2151, 7608, -5239], [1666, 9501, -6, 6913], [-836, 13523, -5293, -3599], [10507, -15199, 12944, 138], [-19652, -15353, 17542, 3391], [-22858, -12200, -2661, -3192], [35397, 13668, 1932, -3433], [-13310, -7119, 18054, 591], [39418, 5255, -738, 3187], [-26978, 3323, 3491, -9329], [-80721, -838, -1267, -4983], [-37438, 7590, -10804, -1598], [9655, -9750, 9143, 377], [-32829, 6299, -14902, 3726], [-30947, 4199, -2716, 2568], [75704, 7327, 4256, -1823], [-1262, -15416, 11790, 4212], [-62774, -4468, 10325, 172], [-39452, 12740, -10588, 2560], [-33291, 7184, -4761, -649], [27240, 11319, 4706, -677], [49638, 14113, 226, -4045], [24117, 8008, -225, 3963], [-9854, -6167, 629, -3635], [-49082, -11917, 6740, -1975], [-40981, 5970, -1358, -4733], [-42588, -6493, -561, 2803], [-60698, -9671, 4504, -4183], [-30715, -5988, 5768, -5933], [-15988, 14000, 4479, 7434], [-15914, -6192, -7984, 1466], [13615, -4175, -5786, -3996], [6658, 7378, 13313, -8718], [-48098, -2442, 10839, 1858], [-27209, 4128, 2312, -369], [14118, -15419, 10584, 5711], [-70198, 4223, -10690, 705], [-77836, 4551, 14403, -1257], [-29836, 15985, -5698, 2505], [-49178, -10791, -4850, 1795], [9126, 6004, -9809, 1638], [4704, -10470, 6118, 2900], [21254, -4872, -264, -2420], [-90321, -2009, 3466, -4934], [88985, -4255, -16231, 1788], [31430, 399, -12708, -4035], [-51532, 8481, -13500, 5459], [-56919, 10451, -9131, 1034], [-4254, 6874, -13647, 2864], [-74145, -16742, 226, 1683], [32258, 10466, -22852, -3032], [-40636, -5383, -1041, 3279], [40462, -4580, -18010, 3380], [-40600, 5591, -2358, 21], [11523, -9674, 9003, -3523], [-42193, 9042, 18468, -2785], [-29790, -5549, -5939, -3363], [4464, -1976, -1410, -9320], [17172, -12771, 1419, -2269], [-60302, 1375, -9979, 6841], [-12361, -10078, 11406, 3637], [-51659, 5172, 18004, -7633], [-2256, 20599, -5152, -4807], [-18490, -4998, 19934, 3258], [39695, 1826, 7111, 1079], [53824, 8755, 4608, -1545], [-86366, -16435, 3669, 4993], [67477, -6173, 8856, 8510], [-22587, 833, 13087, 532], [66587, 2062, -6728, 7031], [-7275, 8326, -6640, 1929], [90208, -8952, -16711, 170], [-10779, 19453, 502, -4216], [-7932, -7635, -16118, 5983], [57468, -7877, -2858, 2729], [26439, 9324, -2578, -4795], [-46980, 612, 13297, -4026], [31574, -15616, 13078, -4176], [41442, -2664, -8744, 2630], [-5084, 3451, -1576, -7443], [72102, 21557, -1090, -4127], [44786, -8969, -3092, 8817], [42956, -20090, 16135, 4156], [43940, 22581, -9708, 1163], [-2250, 18129, 2912, 12079], [-125420, -10037, -37, 483], [24050, -15092, 3858, -5490], [19230, 21422, -14232, 1854], [88313, 12418, -17177, -4563], [-80598, 7958, -14112, -1604], [-54621, 21569, -11680, 10060], [-44409, -9777, -6580, 5296], [103094, -6535, -15410, -2593], [-36624, -4908, 26132, -3876], [-28448, 1545, -12353, 147], [-25900, 16844, -15596, 6580], [75972, -10277, -6968, -287], [6317, -15262, 12342, -5883], [31381, 5098, -15520, -939], [35494, 12983, 5069, -495], [33644, -3499, -13825, -1651], [-68980, -20483, 2606, 475], [5200, 6832, -5743, 9486], [-14523, 14799, -4350, -11424], [43110, -13788, -12650, 3186], [-95775, -797, 17504, 5760], [-8077, -342, -5022, -5371], [-102905, -194, 1293, 3565], [47161, -14003, 11348, 732], [53916, 4153, -4117, 4717], [62972, 23092, -8433, -8048], [74218, -9158, 12422, 232], [-146296, -21041, 2766, -1199], [111065, 8449, 6449, 4312], [-113548, 13942, 2560, -5578], [-8230, -30574, 4860, 3208], [15149, -4927, -5424, -8], [-73097, 648, 7822, -2609], [11458, 3521, -16694, 3155], [-89762, 9398, 12271, -5264], [-59939, -4184, -16235, 5759], [-171596, 645, -2050, -9513], [-42186, -7494, 13531, -5396], [47301, -4623, -5150, -9802], [34050, 21360, 9692, -3194], [-38841, -3852, 9129, -4323], [-83765, -2540, 4079, 3645], [-83857, -9532, 5945, -861], [-23094, 6499, 16597, -7885], [28552, -15330, -10216, 10804], [79186, -19438, 7520, 15266], [-5387, 3512, 12900, 1283], [-47625, -29753, 15852, 3822], [18132, 3594, 17342, 6184], [-181152, 9341, -5207, -3591], [107301, -15270, 2939, 4081], [-88167, 16997, -21296, 4446], [-49792, -25793, 19493, -3277], [-63768, 10541, 15696, -1687], [472, -5030, 7175, -2416], [156852, -4182, 12907, -338], [-22634, 9612, -23734, 1886], [8458, -11672, 23195, -9884], [-131338, -16928, 11339, 5820], [-145679, 13362, -5542, 1025], [23635, 14925, -16392, 4186], [-20963, 23527, -3094, -14440], [-7714, 27549, -28017, -3493], [-89859, 26226, -19289, 8465], [-6252, 10090, -1724, -2696], [30267, 19836, -14814, -807], [2765, -11984, 14397, -4007]]; aps := ConvertToHeckeField(raw_aps); chi := MakeCharacter_966_a_Hecke(Universe(aps)); return ExtendMultiplicatively(weight, aps, chi); end function; // To make the newform (type ModFrm), type "MakeNewformModFrm_966_4_a_k();". // 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_966_4_a_k(:prec:=4) chi := MakeCharacter_966_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_966_4_a_k();". // 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_966_4_a_k( : sign := -1) R := PolynomialRing(Rationals()); chi := MakeCharacter_966_a(); // SetVerbose("ModularSymbols", true); Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,4,sign))); Vf := Kernel([<5,R![-336, -434, -117, 15, 1]>],Snew); return Vf; end function;