From fe2e7cb55cac08898e98cb40fe6a9db7c77d44db Mon Sep 17 00:00:00 2001
From: Edgar Costa
Date: Mon, 11 Mar 2024 11:54:40 -0400
Subject: [PATCH 1/2] spacing
---
lmfdb/modular_curves/templates/modcurve.html | 32 ++++++++++----------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/lmfdb/modular_curves/templates/modcurve.html b/lmfdb/modular_curves/templates/modcurve.html
index d46381c1a2..6373aa02a6 100644
--- a/lmfdb/modular_curves/templates/modcurve.html
+++ b/lmfdb/modular_curves/templates/modcurve.html
@@ -268,31 +268,31 @@ Maps to other modular curves
{% for degree, domain_model_type, codomain_label, codomain_model_type, codomain_name, codomain_equation, coord_names, equations in modelmaps %}
{% if codomain_label == "1.1.0.a.1" and codomain_model_type == 4 %}
- where the projective coordinates $(E_4:E_6)$ of weights $4$ and $6$ are as follows
+ where the projective coordinates $(E_4:E_6)$ of weights $4$ and $6$ are as follows
{% else %}
- {% if codomain_label == "1.1.0.a.1" and codomain_model_type == 1 %}
- {{ KNOWL('modcurve.j_invariant_map', '$j$-invariant map') }}
- {% else %}
- Map
+ {% if codomain_label == "1.1.0.a.1" and codomain_model_type == 1 %}
+ {{ KNOWL('modcurve.j_invariant_map', '$j$-invariant map') }}
+ {% else %}
+ Map
{% endif %}
of degree {{degree}} {{ curve.model_type_domain(domain_model_type) }} to {{ curve.model_type_codomain(codomain_model_type) }} the modular curve
{% if codomain_name %}
- {{name_to_latex(codomain_name)}}
+ {{name_to_latex(codomain_name)}}
{% else %}
- {{codomain_label}}
- {% endif %}
- {% if codomain_model_type == 1 and codomain_label != "1.1.0.a.1" %}
- isomorphic to $P^1$
+ {{codomain_label}}
{% endif %}
+ {% if codomain_model_type == 1 and codomain_label != "1.1.0.a.1" %}
+ isomorphic to $P^1$
+ {% endif %}
{% endif %}
:
- {% for coord, eq in zip(coord_names,equations) %}
-
- $\displaystyle {{ coord }}$ |
- $=$ |
- $\displaystyle {{ eq }}$ |
-
+ {% for coord, eq in zip(coord_names, equations) %}
+
+ $\displaystyle {{ coord }}$ |
+ $=$ |
+ $\displaystyle {{ eq }}$ |
+
{% endfor %}
{% if codomain_model_type in [0,2] %}
From 3313a45aa2ca4290ef262a3d0a842acdb0e0c81f Mon Sep 17 00:00:00 2001
From: sachihashimoto
Date: Mon, 11 Mar 2024 13:16:59 -0400
Subject: [PATCH 2/2] Fix spacing in modcurve template
---
lmfdb/modular_curves/templates/modcurve.html | 929 +++++++++++--------
1 file changed, 522 insertions(+), 407 deletions(-)
diff --git a/lmfdb/modular_curves/templates/modcurve.html b/lmfdb/modular_curves/templates/modcurve.html
index 6373aa02a6..f447112e68 100644
--- a/lmfdb/modular_curves/templates/modcurve.html
+++ b/lmfdb/modular_curves/templates/modcurve.html
@@ -8,185 +8,260 @@
{{ KNOWL('modcurve.invariants', 'Invariants') }}
- {{ KNOWL("modcurve.level", "Level") }}: | ${{ curve.level }}$ | | {{ KNOWL("modcurve.sl2level", "$\SL_2$-level") }}: | ${{ curve.sl2level }}$ | | {% if curve.genus > 0 %}{{ KNOWL("modcurve.newform_level", "Newform level:") }} | ${{ curve.newform_level }}$ | {% endif %}
- {{ KNOWL("modcurve.index", "Index") }}: | ${{ curve.index }}$ | | {{ KNOWL("modcurve.psl2index", "$\PSL_2$-index") }}: | ${{ curve.psl2index }}$ |
- {{ KNOWL("modcurve.genus", "Genus") }}: | ${{ curve.genus }} = 1 + \frac{ {{curve.psl2index}} }{12} - \frac{ {{curve.nu2}} }{4} - \frac{ {{curve.nu3}} }{3} - \frac{ {{curve.cusps}} }{2}$ |
- {{ KNOWL("modcurve.cusps", "Cusps") }}: | {{ curve.cusps_display }} | | {{ KNOWL("modcurve.cusp_widths", "Cusp widths") }} | {{ curve.cusp_widths_display }} | | {{ KNOWL("modcurve.cusp_orbits", "Cusp orbits") }} | {{ curve.cusp_orbits_display }} |
- {{ KNOWL("modcurve.elliptic_points", "Elliptic points") }}: | ${{curve.nu2}}$ of order $2$ and ${{curve.nu3}}$ of order $3$ |
+
+ {{ KNOWL("modcurve.level", "Level") }}: |
+ ${{ curve.level }}$ | |
+ {{ KNOWL("modcurve.sl2level", "$\SL_2$-level") }}: |
+ ${{ curve.sl2level }}$ | |
+ {% if curve.genus > 0 %}
+ {{ KNOWL("modcurve.newform_level", "Newform level:") }} |
+ ${{ curve.newform_level }}$ |
+ {% endif %}
+
+ {{ KNOWL("modcurve.index", "Index") }}: | ${{ curve.index }}$ | |
+ {{ KNOWL("modcurve.psl2index", "$\PSL_2$-index") }}: | ${{ curve.psl2index }}$ |
+
+ {{ KNOWL("modcurve.genus", "Genus") }}: |
+ ${{ curve.genus }} = 1 + \frac{ {{curve.psl2index}} }{12} - \frac{ {{curve.nu2}} }{4} - \frac{ {{curve.nu3}} }{3} - \frac{ {{curve.cusps}} }{2}$ |
+
+
+ {{ KNOWL("modcurve.cusps", "Cusps") }}: |
+ {{ curve.cusps_display }} | |
+ {{ KNOWL("modcurve.cusp_widths", "Cusp widths") }} |
+ {{ curve.cusp_widths_display }} | |
+ {{ KNOWL("modcurve.cusp_orbits", "Cusp orbits") }} |
+ {{ curve.cusp_orbits_display }} |
+
+
+ {{ KNOWL("modcurve.elliptic_points", "Elliptic points") }}: |
+ ${{curve.nu2}}$ of order $2$ and ${{curve.nu3}}$ of order $3$ |
+
{% if curve.genus > 0 %}
- {{ KNOWL('modcurve.rank', 'Analytic rank') }}: | {% if curve.rank is not none %} ${{ curve.rank }}$ {% else %} not computed {% endif %} |
+
+ {{ KNOWL('modcurve.rank', 'Analytic rank') }}: |
+ {% if curve.rank is not none %} ${{ curve.rank }}$ {% else %} not computed {% endif %} |
+
{% endif %}
- {{ KNOWL("modcurve.gonality", "$\Q$-gonality")}}: | ${{ curve.q_gonality if curve.q_gonality else "%s \\le \\gamma \\le %s"%(curve.q_gonality_bounds[0],curve.q_gonality_bounds[1]) }}$ |
- {{ KNOWL("modcurve.gonality", "$\overline{\Q}$-gonality")}}: | ${{ curve.qbar_gonality if curve.qbar_gonality else "%s \\le \\gamma \\le %s"%(curve.qbar_gonality_bounds[0],curve.qbar_gonality_bounds[1]) }}$ |
- {{ KNOWL("modcurve.cusps", "Rational cusps") }}: | ${{ curve.rational_cusps }}$ |
- {{ KNOWL("modcurve.cm_discriminants", "Rational CM points") }}: | {{ "yes $\quad(D =$ $%s$)"%(curve.cm_discriminant_list) if curve.cm_discriminants else "none" }} |
+
+ {{ KNOWL("modcurve.gonality", "$\Q$-gonality")}}: |
+ ${{ curve.q_gonality if curve.q_gonality else "%s \\le \\gamma \\le %s"%(curve.q_gonality_bounds[0],curve.q_gonality_bounds[1]) }}$ |
+
+
+ {{ KNOWL("modcurve.gonality", "$\overline{\Q}$-gonality")}}: |
+ ${{ curve.qbar_gonality if curve.qbar_gonality else "%s \\le \\gamma \\le %s"%(curve.qbar_gonality_bounds[0],curve.qbar_gonality_bounds[1]) }}$ |
+
+
+ {{ KNOWL("modcurve.cusps", "Rational cusps") }}: |
+ ${{ curve.rational_cusps }}$ |
+
+
+ {{ KNOWL("modcurve.cm_discriminants", "Rational CM points") }}: |
+ {{ "yes $\quad(D =$ $%s$)"%(curve.cm_discriminant_list) if curve.cm_discriminants else "none" }} |
+
{% if curve.CPlabel or curve.SZlabel or curve.RZBlabel or curve.RSZBlabel or curve.Slabel %}
- {{ KNOWL('modcurve.other_labels', 'Other labels') }}
-
-
- {% if curve.CPlabel %}
- {{ KNOWL('modcurve.other_labels', 'Cummins and Pauli (CP) label') }}: | {{curve.CPlabel}} |
- {% endif %}
- {% if curve.SZlabel %}
- {{ KNOWL('modcurve.other_labels', 'Sutherland and Zywina (SZ) label') }}: | {{curve.SZlabel}} |
- {% endif %}
- {% if curve.RZBlabel %}
- {{ KNOWL('modcurve.other_labels', 'Rouse and Zureick-Brown (RZB) label') }}: | {{curve.RZBlabel}} |
- {% endif %}
- {% if curve.RSZBlabel %}
- {{ KNOWL('modcurve.other_labels', 'Rouse, Sutherland, and Zureick-Brown (RSZB) label') }}: | {{curve.RSZBlabel}} |
- {% endif %}
- {% if curve.Slabel %}
- {{ KNOWL('ec.galois_rep_modell_image', 'Sutherland (S) label') }}: | {{curve.Slabel}} |
- {% endif %}
-
+ {{ KNOWL('modcurve.other_labels', 'Other labels') }}
+
+ {% if curve.CPlabel %}
+
+ {{ KNOWL('modcurve.other_labels', 'Cummins and Pauli (CP) label') }}: |
+ {{curve.CPlabel}} |
+
+ {% endif %}
+ {% if curve.SZlabel %}
+
+ {{ KNOWL('modcurve.other_labels', 'Sutherland and Zywina (SZ) label') }}: |
+ {{curve.SZlabel}} |
+
+ {% endif %}
+ {% if curve.RZBlabel %}
+
+ {{ KNOWL('modcurve.other_labels', 'Rouse and Zureick-Brown (RZB) label') }}: |
+ {{curve.RZBlabel}} |
+
+ {% endif %}
+ {% if curve.RSZBlabel %}
+
+ {{ KNOWL('modcurve.other_labels', 'Rouse, Sutherland, and Zureick-Brown (RSZB) label') }}: |
+ {{curve.RSZBlabel}} |
+
+ {% endif %}
+ {% if curve.Slabel %}
+
+ {{ KNOWL('ec.galois_rep_modell_image', 'Sutherland (S) label') }}: |
+ {{curve.Slabel}} |
+
+ {% endif %}
+
{% endif %}
{% if curve.level != 1 %}
- {{ KNOWL('modcurve.level_structure', 'Level structure') }}
+ {{ KNOWL('modcurve.level_structure', 'Level structure') }}
-
- {{ KNOWL('modcurve.level_structure', '$\GL_2(\Z/%s\Z)$-generators'%(curve.level)) }}: | {{ curve.show_generators()}} |
- {% if curve.Glabel %}
- {{ KNOWL('modcurve.level_structure', '$\GL_2(\Z/%s\Z)$-subgroup'%(curve.level)) }}: | {{ curve.show_subgroup() | safe}} |
- {% endif %}
- {{ KNOWL('modcurve.contains_negative_one', 'Contains $-I$') }}: | {{ curve.coarse_description | safe }} |
- {% if curve.contains_negative_one %}
- {{ KNOWL('modcurve.quadratic_refinements', 'Quadratic refinements') }}: | {{ curve.quadratic_refinements | safe }} |
- {% endif %}
- {{ KNOWL('modcurve.level_structure', 'Cyclic '+(curve.level|string)+'-isogeny field degree') }}: | ${{ curve.cyclic_isogeny_field_degree() }}$ |
- {{ KNOWL('modcurve.level_structure', 'Cyclic '+(curve.level|string)+'-torsion field degree') }}: | ${{ curve.cyclic_torsion_field_degree() }}$ |
- {{ KNOWL('modcurve.level_structure', 'Full '+(curve.level|string)+'-torsion field degree') }}: | ${{ curve.full_torsion_field_degree() }}$ |
-
+
+
+ {{ KNOWL('modcurve.level_structure', '$\GL_2(\Z/%s\Z)$-generators'%(curve.level)) }}: |
+ {{ curve.show_generators()}} |
+
+ {% if curve.Glabel %}
+
+ {{ KNOWL('modcurve.level_structure', '$\GL_2(\Z/%s\Z)$-subgroup'%(curve.level)) }}: |
+ {{ curve.show_subgroup() | safe}} |
+
+ {% endif %}
+
+ {{ KNOWL('modcurve.contains_negative_one', 'Contains $-I$') }}: |
+ {{ curve.coarse_description | safe }} |
+
+ {% if curve.contains_negative_one %}
+
+ {{ KNOWL('modcurve.quadratic_refinements', 'Quadratic refinements') }}: |
+ {{ curve.quadratic_refinements | safe }} |
+
+ {% endif %}
+
+ {{ KNOWL('modcurve.level_structure', 'Cyclic '+(curve.level|string)+'-isogeny field degree') }}: |
+ ${{ curve.cyclic_isogeny_field_degree() }}$ |
+
+
+ {{ KNOWL('modcurve.level_structure', 'Cyclic '+(curve.level|string)+'-torsion field degree') }}: |
+ ${{ curve.cyclic_torsion_field_degree() }}$ |
+
+
+ {{ KNOWL('modcurve.level_structure', 'Full '+(curve.level|string)+'-torsion field degree') }}: |
+ ${{ curve.full_torsion_field_degree() }}$ |
+
+
{% endif %}
{% if curve.genus > 0 and curve.dims is not none %}
- {{ KNOWL('ag.jacobian', 'Jacobian') }}
+ {{ KNOWL('ag.jacobian', 'Jacobian') }}
-
- {{ KNOWL('ag.conductor', 'Conductor') }}: | ${{ curve.factored_conductor }}$ |
-
-
- {{ KNOWL('av.simple', 'Simple') }}:
- |
-
- {% if curve.simple %}
- yes
- {% elif curve.simple is not none %}
- no
- {% else %}
- not computed
- {% endif %}
- |
-
-
-
- {{ KNOWL('av.squarefree', 'Squarefree') }}:
- |
-
- {% if curve.squarefree %}
- yes
- {% elif curve.squarefree is not none %}
- no
- {% else %}
- not computed
- {% endif %}
- |
-
- {{ KNOWL('modcurve.decomposition', 'Decomposition') }}: | {{ curve.formatted_dims }} |
- {{ KNOWL('modcurve.decomposition', 'Newforms') }}: | {{ curve.formatted_newforms | safe }} |
-
+
+
+ {{ KNOWL('ag.conductor', 'Conductor') }}: | ${{ curve.factored_conductor }}$ |
+
+
+ {{ KNOWL('av.simple', 'Simple') }}: |
+
+ {% if curve.simple %}
+ yes
+ {% elif curve.simple is not none %}
+ no
+ {% else %}
+ not computed
+ {% endif %}
+ |
+
+
+ {{ KNOWL('av.squarefree', 'Squarefree') }}: |
+
+ {% if curve.squarefree %}
+ yes
+ {% elif curve.squarefree is not none %}
+ no
+ {% else %}
+ not computed
+ {% endif %}
+ |
+
+
+ {{ KNOWL('modcurve.decomposition', 'Decomposition') }}: | {{ curve.formatted_dims }} |
+
+
+ {{ KNOWL('modcurve.decomposition', 'Newforms') }}: | {{ curve.formatted_newforms | safe }} |
+
+
{% endif %}
{% set models = curve.formatted_models %}
{% if models or (curve.genus == 0 and not curve.pointless) or curve.has_more_models %}
- {{ KNOWL('modcurve.model', 'Models') }}
-{% if models %}
-
-{% for lines, nb_var, type, smooth in models %}
-{% if type == 0 %}
- {{ KNOWL('ag.canonical_model', 'Canonical model') }} in $\mathbb{P}^{ {{nb_var-1}} }$:
-{% elif type == 2 %}
- {% if smooth == True %}
- {{ KNOWL('modcurve.plane_model', 'Smooth plane model') }}:
- {% elif smooth == False %}
- {{ KNOWL('modcurve.plane_model', 'Singular plane model') }}:
- {% else %}
- {{ KNOWL('modcurve.plane_model', 'Plane model') }}:
+
{{ KNOWL('modcurve.model', 'Models') }}
+ {% if models %}
+
+ {% for lines, nb_var, type, smooth in models %}
+ {% if type == 0 %}
+ {{ KNOWL('ag.canonical_model', 'Canonical model') }} in $\mathbb{P}^{ {{nb_var-1}} }$:
+ {% elif type == 2 %}
+ {% if smooth == True %}
+ {{ KNOWL('modcurve.plane_model', 'Smooth plane model') }}:
+ {% elif smooth == False %}
+ {{ KNOWL('modcurve.plane_model', 'Singular plane model') }}:
+ {% else %}
+ {{ KNOWL('modcurve.plane_model', 'Plane model') }}:
+ {% endif %}
+
+ {% elif type == 5 %}
+ {% if curve.genus == 1 %}
+ {{ KNOWL('ec.weierstrass_coeffs', 'Weierstrass model') }}:
+ {% else %}
+ {{ KNOWL('ag.hyperelliptic_curve', 'Weierstrass model') }}:
+ {% endif %}
+
+ {% elif type == 7 %}
+ {{ KNOWL('ag.hyperelliptic_curve', 'Geometric Weierstrass model') }}:
+ {% elif type == 8 %}
+ {{ KNOWL('modcurve.embedded_model', 'Embedded model') }} in $\mathbb{P}^{ {{nb_var-1}} } $:
+ {% endif %}
+
+
+ $ {{ lines[0] }}$ |
+ $=$ |
+ $ {{ lines[1] }}$ |
+
+ {% if type == 7 %}
+
+ ${{ lines[2] }}$ |
+ $=$ |
+ ${{ lines[3] }}$ |
+
+ {% elif lines|length < 7 %}
+ {% for line in lines[2:] %}
+
+ |
+ $=$ |
+ ${{ line }}$ |
+
+ {% endfor %}
+ {% else %}
+
+ |
+ $=$ |
+ ${{ lines[2] }}$ |
+
+ {% for line in lines[3:] %}
+
+ |
+ $=$ |
+ ${{ line }}$ |
+
+ {% endfor %}
+
+ |
+ |
+ Show {{ (lines|length) - 3 }} more equations |
+
+
+ |
+ |
+ Hide {{ (lines|length) - 3 }} equations |
+
+ {% endif %}
+
+ {% endfor %}
+ {% elif curve.genus == 0 and not curve.pointless %}
+ This modular curve is isomorphic to $\mathbb{P}^1$.
{% endif %}
-
-{% elif type == 5 %}
- {% if curve.genus == 1 %}
- {{ KNOWL('ec.weierstrass_coeffs', 'Weierstrass model') }}:
- {% else %}
- {{ KNOWL('ag.hyperelliptic_curve', 'Weierstrass model') }}:
+ {% if curve.has_more_models %}
+
Some stored models are too large to be displayed and are available for download.
{% endif %}
-
-{% elif type == 7 %}
- {{ KNOWL('ag.hyperelliptic_curve', 'Geometric Weierstrass model') }}:
-{% elif type == 8 %}
- {{ KNOWL('modcurve.embedded_model', 'Embedded model') }} in $\mathbb{P}^{ {{nb_var-1}} } $:
-{% endif %}
-
-
- $ {{ lines[0] }}$ |
- $=$ |
- $ {{ lines[1] }}$ |
-
- {% if type == 7 %}
-
- ${{ lines[2] }}$ |
- $=$ |
- ${{ lines[3] }}$ |
-
- {% elif lines|length < 7 %}
- {% for line in lines[2:] %}
-
- |
- $=$ |
- ${{ line }}$ |
-
- {% endfor %}
- {% else %}
-
- |
- $=$ |
- ${{ lines[2] }}$ |
-
- {% for line in lines[3:] %}
-
- |
- $=$ |
- ${{ line }}$ |
-
- {% endfor %}
-
- |
- |
- Show {{ (lines|length) - 3 }} more equations |
-
-
- |
- |
- Hide {{ (lines|length) - 3 }} equations |
-
- {% endif %}
-
-{% endfor %}
-{% elif curve.genus == 0 and not curve.pointless %}
- This modular curve is isomorphic to $\mathbb{P}^1$.
-{% endif %}
-{% if curve.has_more_models %}
- Some stored models are too large to be displayed and are available for download.
-{% endif %}
{% endif %}
{{ KNOWL('modcurve.rational_points', 'Rational points') }}
@@ -194,25 +269,34 @@ {{ KNOWL('modcurve.rational_points', 'Rational points') }}
{{curve.rational_points_description | safe}}
{% if (curve.genus > 1 or curve.genus == 1 and curve.rank == 0) and curve.db_rational_points %}
-
-
- {% if curve.known_degree1_points > 0 %}
- {{ KNOWL('ec.q.lmfdb_label', 'Elliptic curve') }} | {{ KNOWL('ec.complex_multiplication', 'CM') }} | {{ KNOWL('ec.q.j_invariant', '$j$-invariant') }} | {{ KNOWL('nf.weil_height', '$j$-height') }} | {{ curve.rational_point_coord_headers |safe}}
-
-
- {% for label, url, cm, jinv, jfac, jheight, coords in curve.db_rational_points %}
- {% if url %}{{label}}{% endif %} | {{ cm | safe}} | {{jinv | safe}} | {{jfac | safe}} | ${{"%.3f"%jheight}}$ | {{coords | safe}}
- {% endfor %}
- {% else %}
- {{ curve.rational_point_coord_headers |safe}}
-
-
- {% for label, url, cm, jinv, jfac, jheight, coords in curve.db_rational_points %}
- {{coords | safe}}
- {% endfor %}
- {% endif %}
-
-
+
+
+ {% if curve.known_degree1_points > 0 %}
+
+ {{ KNOWL('ec.q.lmfdb_label', 'Elliptic curve') }} |
+ {{ KNOWL('ec.complex_multiplication', 'CM') }} |
+ {{ KNOWL('ec.q.j_invariant', '$j$-invariant') }} |
+ {{ KNOWL('nf.weil_height', '$j$-height') }} | {{ curve.rational_point_coord_headers |safe}}
+
+
+
+ {% for label, url, cm, jinv, jfac, jheight, coords in curve.db_rational_points %}
+
+ {% if url %}{{label}}{% endif %} |
+ {{ cm | safe}} | {{jinv | safe}} |
+ {{jfac | safe}} | ${{"%.3f"%jheight}}$ | {{coords | safe}}
+
+ {% endfor %}
+ {% else %}
+ {{ curve.rational_point_coord_headers |safe}}
+
+
+ {% for label, url, cm, jinv, jfac, jheight, coords in curve.db_rational_points %}
+ {{coords | safe}}
+ {% endfor %}
+ {% endif %}
+
+
{% endif %}
{#
@@ -222,263 +306,294 @@ {{ KNOWL('modcurve.nonrational_point', 'Non-rational points') }}
{{ curve.low_degree_points_description | safe }}
{% if (curve.genus > 1 or curve.genus == 1 and curve.rank == 0) and curve.db_nf_points %}
-
-
- {% if curve.known_low_degree_points %}
- {{ KNOWL('modcurve.point_degree', 'Degree') }} | {{ KNOWL('modcurve.point_residue_field', 'Residue field') }} | {{ KNOWL('ec.j_invariant', '$j$-invariant') }} | {{ KNOWL('ec.j_invariant', '$\\Q(j)$') }} | {{ KNOWL('nf.weil_height', '$j$-height') }} | {{ KNOWL('ec.complex_multiplication', 'CM') }} | {{ KNOWL('ag.isolated_point', 'Isolated') }} | {% if not curve.contains_negative_one %}{{ KNOWL('ec.curve_label', 'Elliptic Curve') }} | {% endif %}{{curve.nf_point_coord_headers|safe}}
-
-
- {% for ec_label, ec_url, cm, isolated, jinv, res_field, j_field, degree, j_height, coords in curve.db_nf_points %}
- ${{degree}}$ | {{res_field | safe}} | {{jinv | safe}} | {{j_field | safe}} | ${{"%.3f"%j_height}}$ | {{ cm | safe}} | {{isolated | safe}} | {% if not curve.contains_negative_one %}{{ec_label}} | {% endif %}{{coords | safe}}
- {% endfor %}
- {% else %}
- {{ KNOWL('modcurve.point_degree', 'Degree') }} | {{ KNOWL('modcurve.point_residue_field', 'Residue field') }} | {{curve.nf_point_coord_headers|safe}}
-
-
- {% for ec_label, ec_url, cm, isolated, jinv, res_field, j_field, degree, j_height, coords in curve.db_nf_points %}
- ${{degree}}$ | {{res_field | safe}} | {{coords | safe}}
- {% endfor %}
- {% endif %}
-
-
+
+
+ {% if curve.known_low_degree_points %}
+
+ {{ KNOWL('modcurve.point_degree', 'Degree') }} |
+ {{ KNOWL('modcurve.point_residue_field', 'Residue field') }} |
+ {{ KNOWL('ec.j_invariant', '$j$-invariant') }} |
+ {{ KNOWL('ec.j_invariant', '$\\Q(j)$') }} | {{ KNOWL('nf.weil_height', '$j$-height') }} | {{ KNOWL('ec.complex_multiplication', 'CM') }} |
+ {{ KNOWL('ag.isolated_point', 'Isolated') }} |
+ {% if not curve.contains_negative_one %}
+ {{ KNOWL('ec.curve_label', 'Elliptic Curve') }} |
+ {% endif %}
+ {{curve.nf_point_coord_headers|safe}}
+
+
+
+ {% for ec_label, ec_url, cm, isolated, jinv, res_field, j_field, degree, j_height, coords in curve.db_nf_points %}
+
+ ${{degree}}$ |
+ {{res_field | safe}} |
+ {{jinv | safe}} |
+ {{j_field | safe}} |
+ ${{"%.3f"%j_height}}$ |
+ {{ cm | safe}} |
+ {{isolated | safe}} |
+ {% if not curve.contains_negative_one %}
+ {{ec_label}} |
+ {% endif %}
+ {{coords | safe}}
+
+ {% endfor %}
+ {% else %}
+
+ {{ KNOWL('modcurve.point_degree', 'Degree') }} |
+ {{ KNOWL('modcurve.point_residue_field', 'Residue field') }} | {{curve.nf_point_coord_headers|safe}}
+
+
+
+ {% for ec_label, ec_url, cm, isolated, jinv, res_field, j_field, degree, j_height, coords in curve.db_nf_points %}
+
+ ${{degree}}$ |
+ {{res_field | safe}} |
+ {{coords | safe}}
+
+ {% endfor %}
+ {% endif %}
+
+
{% endif %}
#}
{% set modelisos = curve.formatted_modelisos %}
{% if modelisos %}
- Maps between models of this curve
-{% for degree, domain_model_type, codomain_label, codomain_model_type, codomain_name, codomain_equation, coord_names, equations in modelisos %}
-Birational map from {{ curve.model_type_str(domain_model_type) }} to {{ curve.model_type_str(codomain_model_type) }}:
-
- {% for coord, eq in zip(coord_names,equations) %}
-
- $\displaystyle {{ coord }}$ |
- $=$ |
- $\displaystyle {{ eq }}$ |
-
+ Maps between models of this curve
+ {% for degree, domain_model_type, codomain_label, codomain_model_type, codomain_name, codomain_equation, coord_names, equations in modelisos %}
+ Birational map from {{ curve.model_type_str(domain_model_type) }} to {{ curve.model_type_str(codomain_model_type) }}:
+
+ {% for coord, eq in zip(coord_names,equations) %}
+
+ $\displaystyle {{ coord }}$ |
+ $=$ |
+ $\displaystyle {{ eq }}$ |
+
+ {% endfor %}
+
{% endfor %}
-
-{% endfor %}
{% endif %}
{% set modelmaps = curve.all_formatted_maps %}
{% if modelmaps or curve.has_more_modelmaps %}
- Maps to other modular curves
-{% if modelmaps %}
-{% for degree, domain_model_type, codomain_label, codomain_model_type, codomain_name, codomain_equation, coord_names, equations in modelmaps %}
-
- {% if codomain_label == "1.1.0.a.1" and codomain_model_type == 4 %}
- where the projective coordinates $(E_4:E_6)$ of weights $4$ and $6$ are as follows
- {% else %}
- {% if codomain_label == "1.1.0.a.1" and codomain_model_type == 1 %}
- {{ KNOWL('modcurve.j_invariant_map', '$j$-invariant map') }}
- {% else %}
- Map
- {% endif %}
- of degree {{degree}} {{ curve.model_type_domain(domain_model_type) }} to {{ curve.model_type_codomain(codomain_model_type) }} the modular curve
- {% if codomain_name %}
- {{name_to_latex(codomain_name)}}
- {% else %}
- {{codomain_label}}
+
Maps to other modular curves
+ {% if modelmaps %}
+ {% for degree, domain_model_type, codomain_label, codomain_model_type, codomain_name, codomain_equation, coord_names, equations in modelmaps %}
+
+ {% if codomain_label == "1.1.0.a.1" and codomain_model_type == 4 %}
+ where the projective coordinates $(E_4:E_6)$ of weights $4$ and $6$ are as follows
+ {% else %}
+ {% if codomain_label == "1.1.0.a.1" and codomain_model_type == 1 %}
+ {{ KNOWL('modcurve.j_invariant_map', '$j$-invariant map') }}
+ {% else %}
+ Map
+ {% endif %}
+ of degree {{degree}} {{ curve.model_type_domain(domain_model_type) }} to {{ curve.model_type_codomain(codomain_model_type) }} the modular curve
+ {% if codomain_name %}
+ {{name_to_latex(codomain_name)}}
+ {% else %}
+ {{codomain_label}}
+ {% endif %}
+ {% if codomain_model_type == 1 and codomain_label != "1.1.0.a.1" %}
+ isomorphic to $P^1$
+ {% endif %}
+ {% endif %}
+ :
+
+ {% for coord, eq in zip(coord_names, equations) %}
+
+ $\displaystyle {{ coord }}$ |
+ $=$ |
+ $\displaystyle {{ eq }}$ |
+
+ {% endfor %}
+
+ {% if codomain_model_type in [0,2] %}
+ Equation of the image curve:
+
+
+ ${{codomain_equation[0]}}$ |
+ $=$ |
+ $ {{codomain_equation[1]}} $ |
+
+ {% for line in codomain_equation[2:] %}
+
+ |
+ $=$ |
+ $ {{line}} $ |
+
+ {% endfor %}
+
+ {% endif %}
+ {% endfor %}
{% endif %}
- {% if codomain_model_type == 1 and codomain_label != "1.1.0.a.1" %}
- isomorphic to $P^1$
- {% endif %}
+ {% if curve.has_more_modelmaps %}
+ Some stored maps are too large to be displayed and are available for download.
{% endif %}
- :
-
- {% for coord, eq in zip(coord_names, equations) %}
-
- $\displaystyle {{ coord }}$ |
- $=$ |
- $\displaystyle {{ eq }}$ |
-
- {% endfor %}
-
-{% if codomain_model_type in [0,2] %}
- Equation of the image curve:
-
-
- ${{codomain_equation[0]}}$ |
- $=$ |
- $ {{codomain_equation[1]}} $ |
-
- {% for line in codomain_equation[2:] %}
-
- |
- $=$ |
- $ {{line}} $ |
-
- {% endfor %}
-
-{% endif %}
-{% endfor %}
-{% endif %}
-{% if curve.has_more_modelmaps %}
- Some stored maps are too large to be displayed and are available for download.
-{% endif %}
{% endif %}
{% if curve.fiber_product_of or curve.modular_covers or curve.modular_covered_by %}
- {{ KNOWL('modcurve.modular_cover', 'Modular covers') }}
+ {{ KNOWL('modcurve.modular_cover', 'Modular covers') }}
-{% if curve.lattice_labels %}
+ {% if curve.lattice_labels %}
-{# An invisible span to get the select color in the diagram into the DOM #}
-
-Hi
-
+ {# An invisible span to get the select color in the diagram into the DOM #}
+
+ Hi
+
-{% if wide %}
-
+ {% if wide %}
+
-
+
-Cover information
-
- Click on a modular curve in the diagram to see information about it.
-
-{% else %} {# not wide #}
-
-
-
-
- |
Cover information
Click on a modular curve in the diagram to see information about it.
- |
-
-
-
-{% endif %} {# wide #}
+ {% else %} {# not wide #}
+
+
+
+
+ |
+ Cover information
+
+ Click on a modular curve in the diagram to see information about it.
+
+ |
+
+
+
+ {% endif %}
+ {# wide #}
-
+
-{% endif %} {# curve.lattice_labels #}
+ {% endif %}
+ {# curve.lattice_labels #}
-{% if curve.fiber_product_of %}
- The following {{ KNOWL('modcurve.modular_cover','modular covers') }} realize this modular curve as a {{ KNOWL('modcurve.fiber_product','fiber product') }} over $X(1)$.
-
-
-
- {{ KNOWL('modcurve.modular_cover','Factor curve') }} |
- {{ KNOWL('modcurve.level','Level') }} |
- {{ KNOWL('modcurve.relative_index', 'Index') }} |
- {{ KNOWL('modcurve.modular_cover','Degree') }} |
- {{ KNOWL('modcurve.genus','Genus') }} |
- {{ KNOWL('modcurve.rank','Rank') }} |
- {% if curve.dims %}
- {{ KNOWL('modcurve.modular_cover','Kernel decomposition') }} |
- {% endif %}
-
-
-
- {% for label, disp, level, index, degree, genus, rank, kernel in curve.fiber_product_of %}
-
- {{disp}} |
- ${{ level }}$ |
- ${{ index }}$ |
- ${{ degree }}$ |
- ${{ genus }}$ |
- ${{ rank }}$ |
- {% if curve.dims %}
- {% if genus > 0 %}
- {{ kernel if kernel else "dimension zero" | safe }} |
- {% elif curve.genus > 0 %}
- full Jacobian |
- {% endif %}
- {% endif %}
-
- {% endfor %}
-
-
-{% endif %}
+ {% if curve.fiber_product_of %}
+ The following {{ KNOWL('modcurve.modular_cover','modular covers') }} realize this modular curve as a {{ KNOWL('modcurve.fiber_product','fiber product') }} over $X(1)$.
+
+
+
+ {{ KNOWL('modcurve.modular_cover','Factor curve') }} |
+ {{ KNOWL('modcurve.level','Level') }} |
+ {{ KNOWL('modcurve.relative_index', 'Index') }} |
+ {{ KNOWL('modcurve.modular_cover','Degree') }} |
+ {{ KNOWL('modcurve.genus','Genus') }} |
+ {{ KNOWL('modcurve.rank','Rank') }} |
+ {% if curve.dims %}
+ {{ KNOWL('modcurve.modular_cover','Kernel decomposition') }} |
+ {% endif %}
+
+
+
+ {% for label, disp, level, index, degree, genus, rank, kernel in curve.fiber_product_of %}
+
+ {{disp}} |
+ ${{ level }}$ |
+ ${{ index }}$ |
+ ${{ degree }}$ |
+ ${{ genus }}$ |
+ ${{ rank }}$ |
+ {% if curve.dims %}
+ {% if genus > 0 %}
+ {{ kernel if kernel else "dimension zero" | safe }} |
+ {% elif curve.genus > 0 %}
+ full Jacobian |
+ {% endif %}
+ {% endif %}
+
+ {% endfor %}
+
+
+ {% endif %}
-{% if curve.modular_covers %}
- This modular curve {{ KNOWL('modcurve.modular_cover','minimally covers') }} the modular curves listed below.
-
-
-
- {{ KNOWL('modcurve.modular_cover','Covered curve') }} |
- {{ KNOWL('modcurve.level','Level') }} |
- {{ KNOWL('modcurve.relative_index', 'Index') }} |
- {{ KNOWL('modcurve.modular_cover','Degree') }} |
- {{ KNOWL('modcurve.genus','Genus') }} |
- {{ KNOWL('modcurve.rank','Rank') }} |
- {% if curve.dims %}
- {{ KNOWL('modcurve.modular_cover','Kernel decomposition') }} |
- {% endif %}
-
-
-
- {% for label, disp, level, index, degree, genus, rank, kernel in curve.modular_covers %}
-
- {{disp}} |
- ${{ level }}$ |
- ${{ index }}$ |
- ${{ degree }}$ |
- ${{ genus }}$ |
- ${{ rank }}$ |
- {% if curve.dims %}
- {% if genus > 0 %}
- {{ kernel if kernel else "dimension zero" | safe }} |
- {% elif curve.genus > 0 %}
- full Jacobian |
- {% endif %}
- {% endif %}
-
- {% endfor %}
-
-
-{% endif %}
+ {% if curve.modular_covers %}
+ This modular curve {{ KNOWL('modcurve.modular_cover','minimally covers') }} the modular curves listed below.
+
+
+
+ {{ KNOWL('modcurve.modular_cover','Covered curve') }} |
+ {{ KNOWL('modcurve.level','Level') }} |
+ {{ KNOWL('modcurve.relative_index', 'Index') }} |
+ {{ KNOWL('modcurve.modular_cover','Degree') }} |
+ {{ KNOWL('modcurve.genus','Genus') }} |
+ {{ KNOWL('modcurve.rank','Rank') }} |
+ {% if curve.dims %}
+ {{ KNOWL('modcurve.modular_cover','Kernel decomposition') }} |
+ {% endif %}
+
+
+
+ {% for label, disp, level, index, degree, genus, rank, kernel in curve.modular_covers %}
+
+ {{disp}} |
+ ${{ level }}$ |
+ ${{ index }}$ |
+ ${{ degree }}$ |
+ ${{ genus }}$ |
+ ${{ rank }}$ |
+ {% if curve.dims %}
+ {% if genus > 0 %}
+ {{ kernel if kernel else "dimension zero" | safe }} |
+ {% elif curve.genus > 0 %}
+ full Jacobian |
+ {% endif %}
+ {% endif %}
+
+ {% endfor %}
+
+
+ {% endif %}
-{% if curve.modular_covered_by %}
- This modular curve is {{ KNOWL('modcurve.modular_cover','minimally covered by') }} the modular curves in the database listed below.
-
-
-
- {{ KNOWL('modcurve.modular_cover','Covering curve') }} |
- {{ KNOWL('modcurve.level','Level') }} |
- {{ KNOWL('modcurve.relative_index', 'Index') }} |
- {{ KNOWL('modcurve.modular_cover','Degree') }} |
- {{ KNOWL('modcurve.genus','Genus') }} |
- {% if curve.dims %}
- {{ KNOWL('modcurve.rank','Rank') }} |
- {{ KNOWL('modcurve.modular_cover','Kernel decomposition') }} |
- {% endif %}
-
-
-
- {% for label, disp, level, index, degree, genus, rank, kernel in curve.modular_covered_by %}
-
- {{disp}} |
- ${{ level }}$ |
- ${{ index }}$ |
- ${{ degree }}$ |
- ${{ genus }}$ |
- {% if curve.dims %}
- ${{ rank }}$ |
- {{ kernel if kernel else "dimension zero" | safe }} |
- {% endif %}
-
- {% endfor %}
-
-
-{% endif %}
+ {% if curve.modular_covered_by %}
+ This modular curve is {{ KNOWL('modcurve.modular_cover','minimally covered by') }} the modular curves in the database listed below.
+
+
+
+ {{ KNOWL('modcurve.modular_cover','Covering curve') }} |
+ {{ KNOWL('modcurve.level','Level') }} |
+ {{ KNOWL('modcurve.relative_index', 'Index') }} |
+ {{ KNOWL('modcurve.modular_cover','Degree') }} |
+ {{ KNOWL('modcurve.genus','Genus') }} |
+ {% if curve.dims %}
+ {{ KNOWL('modcurve.rank','Rank') }} |
+ {{ KNOWL('modcurve.modular_cover','Kernel decomposition') }} |
+ {% endif %}
+
+
+
+ {% for label, disp, level, index, degree, genus, rank, kernel in curve.modular_covered_by %}
+
+ {{disp}} |
+ ${{ level }}$ |
+ ${{ index }}$ |
+ ${{ degree }}$ |
+ ${{ genus }}$ |
+ {% if curve.dims %}
+ ${{ rank }}$ |
+ {{ kernel if kernel else "dimension zero" | safe }} |
+ {% endif %}
+
+ {% endfor %}
+
+
+ {% endif %}
{% endif %}