diff --git a/lmfdb/classical_modular_forms/templates/cmf_newform_common.html b/lmfdb/classical_modular_forms/templates/cmf_newform_common.html index 7dda32f044..3be27ba50f 100644 --- a/lmfdb/classical_modular_forms/templates/cmf_newform_common.html +++ b/lmfdb/classical_modular_forms/templates/cmf_newform_common.html @@ -139,6 +139,12 @@

Newform invariants

Galois closure of {{ newform.artin_field_display | safe }} {% endif %} + {% if newform.weight == 1 and newform.dim == 1 %} + + {{ KNOWL('cmf.stark_unit', title='Stark unit')}}: + Root of ${{ newform.stark_minpoly }}$ + + {% endif %} {% if newform.weight > 1 %} {{ KNOWL('cmf.sato_tate', title='Sato-Tate group') }}: diff --git a/lmfdb/classical_modular_forms/web_newform.py b/lmfdb/classical_modular_forms/web_newform.py index 67c15fafd4..48b5ddde5e 100644 --- a/lmfdb/classical_modular_forms/web_newform.py +++ b/lmfdb/classical_modular_forms/web_newform.py @@ -615,6 +615,15 @@ def artin_image_display(self): def artin_image_knowl(self): return abstract_group_display_knowl(self.artin_image) + @property + def stark_minpoly(self): + # For now, the only data is for m = b = 1, so we just use lucky. + f = db.mf_stark.lucky({"mf_label": self.label}, "stark_minpoly") + if f is not None: + R = PolynomialRing(ZZ, 'x') + f = R(f) + return latex(f) + def rm_and_cm_field_knowl(self, sign=1): if self.self_twist_discs: disc = [ d for d in self.self_twist_discs if sign*d > 0 ]