Skip to content

Commit 75ccd3d

Browse files
Merge pull request #6863 from AndrewVSutherland/main
display ell-adic index for j=0,1728 curves
2 parents 5adea6a + 1e43d39 commit 75ccd3d

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

lmfdb/elliptic_curves/web_ec.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
short_weierstrass_eqn_regex = re.compile(r'\[(-?\d+),(-?\d+)\]')
3131
modm_not_computed_regex = re.compile(r'(\d+)\.(\d+)\.(\d+)\.(\?)')
3232

33-
3433
def match_coeff_vec(lab):
3534
return ZLIST_RE.fullmatch(lab)
3635

@@ -451,13 +450,25 @@ def red(p):
451450
galois_data = list(db.ec_galrep.search({'lmfdb_label': lmfdb_label}))
452451
data['galois_data'] = [r for r in galois_data if r["prime"] > 0]
453452
for gd in data['galois_data']:
453+
s = gd['elladic_image'].split('.')
454454
if self.cm:
455-
if self.cm in [-3,-4]:
456-
gd['elladic_index'] = '?'
455+
if self.cm == -3:
456+
# for j=0 nonmaximal elladic-images have index 3 for ell > 3 (see https://arxiv.org/abs/1809.02584v3 Theorem 1.4)
457+
# for ell=2,3 the index can vary but is always determined by the image mod 16,27, respectively
458+
# the dictionary below lists the index of the maximal image for j=0 modulo relevant powers of 2,3
459+
j0_elladic_indices = { 2:1, 3:4, 4:4, 8:16, 9:36, 16:64, 27:324 }
460+
gd['elladic_index'] = 3 if gd['prime'] > 3 else int(s[1]) // j0_elladic_indices[int(s[0])]
461+
elif self.cm == -4:
462+
# for j=1728 the elladic image is maximal except possibly at 2 (see https://arxiv.org/abs/1809.02584v3 Theorem 1.2(4))
463+
# for ell=2 the index can vary but is always determined by the image mod 16
464+
# the dictionary below lists the index of the maximal image for j=1728 modulo relevant powers of 2
465+
assert gd['prime'] == 2
466+
j1728_elladic_indices = { 2:3, 4:6, 8:24, 16:96 }
467+
gd['elladic_index'] = int(s[1]) // j1728_elladic_indices[int(s[0])]
457468
else:
458469
gd['elladic_index'] = 2
459470
else:
460-
gd['elladic_index'] = gd['elladic_image'].split('.')[1]
471+
gd['elladic_index'] = s[1]
461472
adelic_data = [r for r in galois_data if r["prime"] == 0]
462473
if adelic_data:
463474
assert len(adelic_data) == 1

0 commit comments

Comments
 (0)