// Make newform 648.4.a.i in Magma, downloaded from the LMFDB on 28 March 2024. // To make the character of type GrpDrchElt, type "MakeCharacter_648_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_648_4_a_i();". // 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_648_4_a_i();". // 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 := [12, 3, -8, -1, 1]; Kf := NumberField(Polynomial([elt : elt in poly])); AssignNames(~Kf, ["nu"]); end if; Rf_num := [[1, 0, 0, 0], [4, -12, -3, 3], [-17, 0, 5, -1], [-19, 6, 5, -1]]; Rf_basisdens := [1, 1, 1, 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_648_a();" function MakeCharacter_648_a() N := 648; order := 1; char_gens := [487, 325, 569]; 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_648_a_Hecke(Kf) return MakeCharacter_648_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, 0, 0, 0], [0, 0, 0, 0], [1, 0, 1, 0], [-1, 0, 0, -1], [-4, 1, -2, -1], [-6, -1, 0, 4], [1, -5, -10, 6], [-28, 6, -1, 2], [-10, -1, -3, -7], [-4, 17, 2, 0], [-70, -17, -25, 9], [-103, 13, 17, -16], [86, -7, 21, -20], [-141, 10, 19, -29], [-43, -6, 10, 3], [119, -25, -9, 32], [-149, 8, 13, 41], [-308, -27, -44, 28], [-300, -9, 56, 9], [-121, 37, 47, -56], [-321, -39, 26, 10], [-470, 29, 13, 15], [-333, -60, -24, 5], [181, 41, 15, -36], [-606, 21, -39, 64], [367, -26, -37, 52], [-567, 16, -40, -79], [-522, 44, 37, -30], [-613, -13, -17, -56], [435, -30, -113, 82], [-504, -4, 90, -20], [-1103, 12, 32, -37], [536, -17, 43, -116], [-463, 30, 85, 21], [1248, 81, 186, -40], [-272, -53, -23, -17], [-461, -98, -221, 212], [124, 64, 128, -56], [-335, -44, 230, -107], [1533, 12, -89, 172], [-1126, -166, -178, 96], [449, 217, 235, -20], [-1233, 208, 128, -69], [882, -219, -87, -80], [350, -116, 86, 140], [325, 67, -233, -124], [1192, -7, -225, 35], [987, -52, -360, 67], [-670, 123, 224, 43], [1425, -52, 47, 132], [1664, 252, 251, -106], [-1198, 43, 193, 93], [1403, 248, 174, -44], [-3962, 80, -25, -2], [2737, -226, -170, 360], [-246, -207, -473, 23], [2045, -167, -239, -312], [3026, -226, -74, 144], [1191, -310, -479, 80], [2722, -201, -214, -262], [1867, 130, 242, -457], [-1821, 274, 41, -156], [1186, 68, 151, -74], [3400, 141, -413, 185], [2423, 204, -166, 184], [-182, 155, 368, -16], [2992, 131, 125, 369], [1053, 266, -162, -136], [-4522, -251, -142, 149], [31, -162, -257, 488], [-2184, 51, 541, 372], [-506, 198, 532, -820], [-760, 55, 547, -9], [-1420, 213, -462, 0], [1607, -169, -514, 370], [3645, -48, 186, -87], [2347, 222, -551, 48], [323, 499, 379, -592], [-4520, -217, 15, -24], [675, -80, 402, -152], [2526, 523, 461, 147], [2180, -355, -700, -320], [8322, -214, -364, 420], [-4725, 257, -92, -226], [-280, 343, 1347, -789], [3861, 344, 273, -725], [2739, -343, -36, 270], [-3686, -627, -183, -76], [-6540, 193, 62, -32], [-4772, 85, 297, -519], [-8348, -310, -751, 398], [5210, 177, -97, 627], [-2858, 910, 912, -620], [-1933, -388, 171, -107], [-5593, -164, -875, 181], [12549, -57, 433, 112], [-8760, 149, -484, 160], [-12500, -156, 345, -486], [-4205, -675, 107, 464], [-5018, -404, -154, 364], [-1960, -959, -288, 415], [1183, 803, 37, -172], [-10324, 615, 556, -215], [-11829, -888, -146, 200], [-5164, 963, 970, -903], [-6531, 603, 192, -950], [-3289, 822, 1359, -1821], [4051, -53, 837, -1572], [6577, 1508, 310, -563], [-4276, -201, -27, -8], [-8089, 1190, 152, -407], [-1501, -893, -2281, 1272], [-15870, -95, 371, 504], [-4812, 661, -1044, 483], [2050, -322, 506, -296], [-4773, -912, -1382, 500], [988, 723, 1570, -235], [17174, -258, -504, -284], [-2859, -304, -1261, 2176], [7100, -1345, -1307, 1661], [3627, -602, -105, -688], [-4036, -235, -388, -418], [-14609, 206, 863, -1092], [-18526, -328, -939, 698], [-2263, 302, 1994, -347], [7397, 845, 1343, 156], [-5655, 988, -1031, 1116], [17324, -404, 504, -584], [1510, -1211, 515, -305], [10832, -1207, 162, -76], [-5171, 1313, 148, 1010], [21021, 668, 292, -191], [19549, 800, 1066, -623], [-8306, 824, 444, -584], [-5810, 1147, 1378, -1894], [-419, 648, -1483, -782], [5705, -631, -1465, -732], [-4691, -2024, -2320, 2139], [17324, -1975, -636, 440], [5375, -1851, -1200, 1342], [21816, -626, 669, 270], [13412, 641, 1142, -1356], [3126, -1557, 403, 1853], [-3902, 586, -1426, 1872], [13151, -1253, -759, 1916], [-6091, -2330, -3200, 1075], [14588, 289, 730, -340], [-12172, 2397, 356, 58], [16690, -1539, -912, -527], [11314, 1046, -2358, 1144], [5488, 1565, 1220, 1016], [19317, -1183, -289, 108], [1856, 278, 1449, 854], [-6812, 549, 1057, -731], [-14045, -322, 149, 367], [4152, 31, 2687, -1073], [15982, 1150, 148, -148], [29480, 377, -24, 414], [9395, 1235, 3949, -3076], [-3231, 936, 2105, -1540], [-18578, -1013, 3490, -201], [-12353, -731, 392, -1442], [16124, -479, -3285, 937], [-12207, 551, -807, 320], [7221, -370, -668, -660], [16100, -1381, -857, 1499], [-218, -1886, -1146, -584], [-8165, -174, 2427, 300], [7879, -2337, 1141, 804], [20238, 1367, -2090, -836], [-26513, -1302, -2779, 1791], [-10540, 873, -1984, -1760], [-1840, -399, -3207, 2773], [-9482, 1461, 1935, -144], [-2025, -518, 1682, -1475], [-7905, -842, -1945, 1382], [19643, 562, -1965, 1963], [-21869, 831, -1027, -2772], [-1756, -1636, -2856, 696], [13215, 2078, -1745, -896], [-6517, -2220, -5196, 4587], [-6069, -886, -3065, -2185], [5249, -44, 971, 2108], [8537, 823, -1444, 266], [-19757, -946, -498, 189], [-8006, -329, -1962, 2048], [-15142, 800, -602, 2188], [-31975, 1038, 2, -899], [-21627, 1854, 2704, -2424], [3164, -1780, -1272, 3976], [6911, 569, -3746, 3058], [-23688, 2461, 3870, -3305], [9814, 836, 4589, -3518], [8307, -542, -4169, 576], [6060, -2958, -3127, 1166], [813, 1986, 862, -516], [8526, -3059, -569, -524], [-15181, -2414, -2273, -432], [-291, 218, 1838, 192], [-27368, -2340, -642, 2020], [33531, -414, -903, 272], [-21487, -378, -14, 1579], [-40281, -2766, -3521, 1832], [-34895, 3278, 238, -3816], [-4700, 106, -747, 1094], [2073, -3031, 611, 412], [-11046, 1630, 4410, -2104], [3085, -1918, 277, -47], [-2057, 1144, 2912, -2124], [15793, 646, 1417, -2083], [-41975, -365, -98, -90], [-4446, 239, -408, -2560], [2337, -1410, 2022, 3767], [1864, 3499, -1915, 777], [-8847, 3452, 4442, -1059], [-5711, 3762, 5312, -3752], [-54530, -981, -421, 913], [29216, -625, -137, -312], [13278, 1702, 3056, 1668], [7878, 3519, 2674, -3536], [35886, 1043, 1388, 2552], [2823, -754, 4184, 3469], [12436, -5253, -2013, 4576], [-28886, -2966, 272, -1060], [-817, -108, -1811, 4341], [-21413, -2898, -2951, 4152], [-9239, -1916, -3571, -1754], [-2114, -3998, -5478, -1168], [-42396, 1895, 2397, -4777], [10314, -583, 1571, -2719], [-41093, -1070, 721, 720], [14160, 1548, -4828, 2872], [15102, 4023, 3721, -3043], [-20809, -1224, -6396, 1140], [-17686, 1769, -1765, 3057], [14179, -2732, -6072, -2501], [13018, 2303, 6682, -4954], [-15091, 2589, 6359, 1532], [10719, -1108, -3435, 5089], [2604, 4696, 2, -3116], [20891, -1470, -773, 3111], [8774, -2602, -1998, 4448], [-40117, -190, 4152, -1731], [6659, -3113, 669, -3124], [1024, -45, -4463, -76], [-8117, -3088, -4478, 2523], [-2920, -4112, 3276, 824], [6326, 2013, -2958, -1903], [-23918, -3609, -8171, 3079], [-6594, 5326, 2328, -6060], [7330, 2823, -1208, -2836], [27543, -423, 1074, -1014], [-3074, 4475, -3377, -1107], [5749, -2088, -7359, 8670], [11533, -236, -6925, 6100], [6847, 4379, 8744, -3682], [-6745, 63, 3915, -2328], [19324, 4263, 2457, -903], [-59286, -2200, -1362, -1180], [1309, -3289, -4470, 3062], [-17646, -2547, -2111, 1887], [30837, -2644, -2309, 2859], [-40017, 3218, 3379, 2744], [18373, 3661, 2879, -5972], [-3264, 2441, 996, -3498], [30688, -1843, 3410, -1605], [24473, -1307, -10631, 1344], [-12907, 210, 6174, -1652], [49960, -133, 332, -5043], [-45536, 2625, 5834, 128], [51256, 333, -7176, 3168], [-45046, 2650, -3770, 896], [-11805, -1892, -7572, -5220], [-28971, 3452, -892, 6789], [-51266, -1459, 2575, 3924], [48788, 572, 1016, -440], [61983, -1394, 766, 4583], [-24404, 3041, 4002, -800], [97667, 285, 410, 642], [43038, 3391, -1628, -717], [-10655, -3656, 3948, -2595], [93367, -1254, -4786, 4169], [8260, 1471, 6457, -425], [17001, -3080, -1401, 1088], [-3431, -1926, 4143, 1841], [3683, 3893, 1669, 1188], [6633, 3749, 2871, -636], [-86077, 1974, -877, -5192], [-29385, 1020, 1666, -5341], [-4344, 964, -8401, 2414], [-26212, 1733, 3180, 2948], [48583, -2289, -8962, 1122], [-40721, -1560, -7112, 996], [-8562, -79, -1500, -4759], [64849, -2796, 1617, 256], [17327, -3106, -7403, -4728], [66006, -5475, -233, 6251], [14446, -4161, -5248, -876], [59608, -5140, -5092, 3848], [-96235, 3354, 2442, 837], [-39115, -4090, -7412, 1152], [6213, 3517, 4495, -7844], [-9584, 6656, -3280, -5424], [61903, -7538, -1054, 3731], [45203, 3250, 3574, 3679], [24689, -1379, 3159, -1148], [69280, -269, -4419, 1985], [2137, 1976, -3003, 1636], [-78107, -4356, -7640, 1729], [877, 1265, 4873, 8], [-106257, 1892, -486, 4559], [-28863, 6669, 5749, -632], [66897, -3772, 329, 642], [-24108, 6037, 639, -381], [49686, 3842, 7018, -3200], [-1539, 2307, 7344, -3782], [9968, 1341, -5518, -3677], [6406, 1267, 11795, -8951], [-67827, -3790, 322, -1496], [111372, 1629, 2144, -562], [40182, -1725, -6518, 3879], [-8925, 6536, -1298, -1744], [77295, 1895, -1193, -2944], [21850, -2494, -1860, -4540], [-21456, -6151, 3444, 474], [30020, -1508, -6091, 1370], [-12473, -1633, 9950, -670], [-74040, -3895, -6804, 3731], [25239, -4076, -10338, 7871], [-41779, 2829, -105, -4276], [20545, 932, -7919, 10080], [2331, -1098, -9413, 11620], [-42047, -3590, -2268, 5663], [88451, -338, 6701, -2917], [-26428, 2590, -1457, 1234], [6764, 4440, 8024, -4904], [-42138, -3880, 6300, -464], [88710, 2933, 1639, -4068], [-5688, 2459, 6381, 7968], [-96675, 3055, 349, 6200], [-52836, 2925, 6368, 1792], [383, -1458, -8105, 9726], [-24837, -5434, -3353, 2760], [32259, 6512, 246, 3995], [4856, 21, 7334, -2656], [-55061, 3291, -1366, 9874], [30033, 981, 5369, 32], [-45503, 1992, 1523, 1895], [-17428, -7413, 7275, 1775], [-10458, 8000, 7380, -8456], [22712, -3031, -5465, 5291], [-112139, -1817, 5798, 2654], [69958, -4477, -660, 2596], [-77244, 9067, 4495, -14713], [-17434, 2151, 3698, -9004], [-2370, -9724, -3880, 5712], [-52216, 3017, 11141, -6287], [81276, 232, -2624, -6248], [-39515, -720, 4941, -3046], [-59414, 7785, 10259, -14841], [-63848, 9669, 7726, -9660], [-65325, 468, 80, 2012], [-54495, 771, 12261, -9744], [49776, -2579, -6998, 11191], [-103238, -10124, -15973, 7038], [7574, -4051, 5323, -5128], [38582, -3613, -8466, 5188], [-95289, 2673, -2459, 3612], [31971, 9817, 4832, -6010], [49052, 6511, 5981, -2315], [-17234, 14020, 3669, -3742], [-97911, 6076, 4562, 9977], [-33656, 5065, 6744, -11928], [41191, 1258, 12694, 2945], [-6439, -2735, -3673, 4452], [-88576, -10913, -13250, 6493], [-102399, -11721, -14729, 7276], [-70577, 7663, 4561, -14356], [52319, -4331, -5868, 11862], [-128616, -5615, -9604, 4546], [104081, 4760, -269, 1556], [-15645, 2512, 1946, -8416], [-21990, -10138, -10846, 13720], [-17436, 5351, -4959, -6604], [-94633, 744, -6325, -9663], [-109292, 7804, 960, -3064], [16603, 4980, 17116, -18397], [-46519, 792, -1455, 3432], [-29062, 9898, 4370, -5384], [-88799, -2620, -5166, 5457], [57810, -12071, -10253, 3676], [62914, 3431, 9802, 4496], [-69391, -39, 17514, -3778], [15553, 5916, 3021, 4279], [-132429, 2444, 1068, -4489], [-14532, -1459, -2092, 5298], [-48541, 1801, 7575, -3264], [62994, 8845, -3347, -1396], [116673, 1478, -11807, -2291], [-78160, -6307, 3208, 3372], [14549, 312, -1825, -5776], [19103, 4973, 3576, -10226], [5934, -16485, -5349, 6161], [58328, -87, 4612, 2426], [88542, -3304, 7852, -5576], [155079, -1179, 5599, -6744], [-40999, 7312, -1477, 940], [60387, -4504, -12734, 7116], [-46174, -2819, -2764, -7779], [-30363, 1834, 19370, -5259], [43960, 4539, 9617, 2164], [-56713, -7166, 11429, 5256], [-15427, 6185, 11556, -1854], [-5540, 2097, -5882, 7195], [24450, 8127, 22706, -10150], [104479, -373, 6377, 7164], [-35582, -6918, -1852, 8292], [20004, 1479, -1667, 11831], [123485, -2369, 3178, 4918], [-144663, -2316, 17762, -2411], [68189, -8992, -2207, -9392], [-41545, -1209, -11393, 1888], [-41447, -17590, -10752, 4559], [38103, -3956, -10471, -2359], [10873, -6291, 6007, 388], [13876, 11041, -6140, 4304], [-7565, 5110, 10121, -9733], [17389, 5561, 3659, 932], [65084, -6472, -18016, 3048], [-82056, 11959, 10379, -17477]]; aps := ConvertToHeckeField(raw_aps); chi := MakeCharacter_648_a_Hecke(Universe(aps)); return ExtendMultiplicatively(weight, aps, chi); end function; // To make the newform (type ModFrm), type "MakeNewformModFrm_648_4_a_i();". // 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_648_4_a_i(:prec:=4) chi := MakeCharacter_648_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_648_4_a_i();". // 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_648_4_a_i( : sign := -1) R := PolynomialRing(Rationals()); chi := MakeCharacter_648_a(); // SetVerbose("ModularSymbols", true); Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,4,sign))); Vf := Kernel([<5,R![1408, -503, -189, -5, 1]>],Snew); return Vf; end function;