This worksheet requires:

  1. This worksheet uses the patch from trac 9402 for $L$-series.
  2. It also uses Purple Sage.
{{{id=11| import psage.modform.hilbert.sqrt5 as H F = H.tables.F a = F.gen() /// }}} {{{id=13| time S = H.HilbertModularForms(5*a-2); S /// Time: CPU 0.04 s, Wall: 0.04 s Hilbert modular forms of dimension 2, level 5*a-2 (of norm 31=31) over QQ(sqrt(5)) }}} {{{id=15| T2 = S.hecke_matrix(F.factor(2)[0][0]); T2 /// [0 5] [3 2] }}} {{{id=12| T2.charpoly().factor() /// (x - 5) * (x + 3) }}}

Finding elliptic curves of norm conductor 199...

{{{id=75| time S = H.HilbertModularForms(3*a+13); S /// Time: CPU 0.04 s, Wall: 0.04 s Hilbert modular forms of dimension 4, level 3*a+13 (of norm 199=199) over QQ(sqrt(5)) }}} {{{id=74| T2 = S.hecke_matrix(F.factor(2)[0][0]); T2 /// [0 4 1 0] [4 0 1 0] [1 1 2 1] [0 0 3 2] }}} {{{id=73| T2.charpoly().factor() /// (x - 5) * (x - 3) * x * (x + 4) }}} {{{id=80| E = EllipticCurve([0,-a-1,1,a,0]); k = F.factor(2)[0][0].residue_field() k.cardinality() + 1 - E.change_ring(k).cardinality() /// -4 }}} {{{id=78| Z = S.elliptic_curve_factors(); Z /// [ Isogeny class of elliptic curves over QQ(sqrt(5)) attached to form number 0 in Hilbert modular forms of dimension 4, level 3*a+13 (of norm 199=199) over QQ(sqrt(5)), Isogeny class of elliptic curves over QQ(sqrt(5)) attached to form number 1 in Hilbert modular forms of dimension 4, level 3*a+13 (of norm 199=199) over QQ(sqrt(5)), Isogeny class of elliptic curves over QQ(sqrt(5)) attached to form number 2 in Hilbert modular forms of dimension 4, level 3*a+13 (of norm 199=199) over QQ(sqrt(5)) ] }}} {{{id=79| A = Z[0]; A.aplist(100) /// [-4, -2, -3, 5, -3, 0, 2, -7, 6, -6, -4, -4, -3, 12, 0, 3, -1, -10, -12, -3, -10, -10, 0, 12] }}} {{{id=81| k = F.factor(3)[0][0].residue_field() k.cardinality() + 1 - E.change_ring(k).cardinality() /// -2 }}} {{{id=77| /// }}} {{{id=17| /// }}}

A Bigger Example

{{{id=1| N = F.factor(100019)[0][0]; N /// Fractional ideal (65*a + 292) }}} {{{id=2| time S = H.HilbertModularForms(N); S /// Time: CPU 0.27 s, Wall: 0.27 s Hilbert modular forms of dimension 1667, level 65*a+292 (of norm 100019=100019) over QQ(sqrt(5)) }}} {{{id=3| time T5 = S.hecke_matrix(F.factor(5)[0][0]) /// Time: CPU 0.13 s, Wall: 0.13 s }}} {{{id=18| len(T5.nonzero_positions())/1667.0^2 /// 0.00359460201540976 }}} {{{id=9| T5.visualize_structure(maxsize=4096) /// }}} {{{id=4| # 7 is an inert prime -- norm 49 time T7 = S.hecke_matrix(F.factor(7)[0][0]) /// Time: CPU 0.00 s, Wall: 0.00 s }}} {{{id=5| # 11 is split time T11 = S.hecke_matrix(F.factor(11)[0][0]) /// Time: CPU 0.22 s, Wall: 0.22 s }}} {{{id=6| # 13 is inert -- norm 169 time T13 = S.hecke_matrix(F.factor(13)[0][0]) /// Time: CPU 13.25 s, Wall: 13.51 s }}} {{{id=19| /// }}}

Example Curve: Norm Conductor 31

{{{id=22| a = F.0 /// }}} {{{id=8| E = EllipticCurve([1,a+1,a,a,0]); show(E) ///
\newcommand{\Bold}[1]{\mathbf{#1}}y^2 + xy + ay = x^3 + \left(a + 1\right)x^2 + ax
}}} {{{id=45| E.j_invariant() /// -106208/31*a + 51455/31 }}} {{{id=23| E.torsion_subgroup() /// Torsion Subgroup isomorphic to Z/8 associated to the Elliptic Curve defined by y^2 + x*y + a*y = x^3 + (a+1)*x^2 + a*x over Number Field in a with defining polynomial x^2 - x - 1 }}} {{{id=26| E.conductor() /// Fractional ideal (5*a - 2) }}} {{{id=24| E.local_data(E.conductor()) /// Local data at Fractional ideal (5*a - 2): Reduction type: bad non-split multiplicative Local minimal model: Elliptic Curve defined by y^2 + x*y + a*y = x^3 + (a+1)*x^2 + a*x over Number Field in a with defining polynomial x^2 - x - 1 Minimal discriminant valuation: 1 Conductor exponent: 1 Kodaira Symbol: I1 Tamagawa Number: 1 }}} {{{id=25| time L = E.lseries().dokchitser(53) /// Time: CPU 43.54 s, Wall: 46.52 s }}} {{{id=27| L(1) /// 0.359928959498039 }}} {{{id=28| phi = F.embeddings(RR) Omega0 = E.period_lattice(phi[0]); Omega0 /// Period lattice associated to Elliptic Curve defined by y^2 + x*y + a*y = x^3 + (a+1)*x^2 + a*x over Number Field in a with defining polynomial x^2 - x - 1 with respect to the embedding Ring morphism: From: Number Field in a with defining polynomial x^2 - x - 1 To: Algebraic Real Field Defn: a |--> -0.618033988749895? }}} {{{id=29| Omega0.real_period() /// 3.05217315335726 }}} {{{id=33| Omega1 = E.period_lattice(phi[1]); Omega1.real_period() /// 8.43805988789973 }}} {{{id=30| ( (math.sqrt(F.disc()) * L(1) * E.torsion_order()^2 ) / (Omega0.real_period()*Omega1.real_period() * E.tamagawa_product_bsd()) ) /// }}} {{{id=34| Lplot = line([(s, L(s)) for s in [.1,.15, .., 2]]); Lplot /// }}} {{{id=35| set_verbose(-2) c = (line([(s, L(1+I*s).real()) for s in [0,0.05,..,5]]) + line([(s, L(1+I*s).imag()) for s in [0,0.05,..,5]], color='red')) c.show() c.save('critical_zero-31.pdf') /// }}} {{{id=37| find_root(lambda s:L(1+I*s).real(), 3.5,4) /// 3.678991475792357 }}} {{{id=38| L(1 + 3.67899147*I) /// -1.39082483086184e-8 - 1.11224155167065e-8*I }}} {{{id=40| /// }}}

Example Curve: Norm Conductor 199  (rank 1)

{{{id=39| E = EllipticCurve([0,-a-1,1,a,0]); show(E) ///
\newcommand{\Bold}[1]{\mathbf{#1}}y^2 + y = x^3 + \left(-a - 1\right)x^2 + ax
}}} {{{id=42| E.j_invariant() /// -524288/199*a + 622592/199 }}} {{{id=44| E.torsion_subgroup() /// Torsion Subgroup isomorphic to Z/3 associated to the Elliptic Curve defined by y^2 + y = x^3 + (-a-1)*x^2 + a*x over Number Field in a with defining polynomial x^2 - x - 1 }}} {{{id=43| E.conductor() /// Fractional ideal (3*a + 13) }}} {{{id=46| E.tamagawa_numbers() /// [1] }}} {{{id=47| E.local_data() /// [Local data at Fractional ideal (3*a + 13): Reduction type: bad split multiplicative Local minimal model: Elliptic Curve defined by y^2 + y = x^3 + (-a-1)*x^2 + a*x over Number Field in a with defining polynomial x^2 - x - 1 Minimal discriminant valuation: 1 Conductor exponent: 1 Kodaira Symbol: I1 Tamagawa Number: 1] }}} {{{id=48| E.gens() /// [(0 : 0 : 1)] }}} {{{id=49| E.regulator_of_points(E.gens()) /// 0.154308568543030 }}} {{{id=50| time L = E.lseries().dokchitser() /// Time: CPU 55.21 s, Wall: 55.56 s }}} {{{id=51| L(1) /// 0 }}} {{{id=53| L.derivative(1,1) /// 0.657814883009960 }}} {{{id=52| phi = F.embeddings(RR) Omega0 = E.period_lattice(phi[0]); O0 = Omega0.real_period() Omega1 = E.period_lattice(phi[1]); O1 = Omega1.real_period() O0, O1 /// (3.53489274657737, 6.06743219455559) }}} {{{id=54| print ( math.sqrt(F.disc()) * L.derivative(1,1) * E.torsion_order()^2 / (Omega0.real_period()*Omega1.real_period()* E.tamagawa_product_bsd() *E.regulator_of_points(E.gens())) ) /// 4.00000000000002 }}} {{{id=56| /// }}}

Example Curve: Norm Conductor 1831

 

{{{id=55| E = EllipticCurve([0,-a,1,-a-1,2*a+1]); show(E) ///
\newcommand{\Bold}[1]{\mathbf{#1}}y^2 + y = x^3 + \left(-a\right)x^2 + \left(-a - 1\right)x + \left(2 a + 1\right)
}}} {{{id=58| E.conductor() /// Fractional ideal (7*a + 40) }}} {{{id=59| E.torsion_subgroup() /// Torsion Subgroup isomorphic to Trivial group associated to the Elliptic Curve defined by y^2 + y = x^3 + (-a)*x^2 + (-a-1)*x + (2*a+1) over Number Field in a with defining polynomial x^2 - x - 1 }}} {{{id=60| E.tamagawa_numbers() /// [1] }}} {{{id=61| E.local_data() /// [Local data at Fractional ideal (7*a + 40): Reduction type: bad non-split multiplicative Local minimal model: Elliptic Curve defined by y^2 + y = x^3 + (-a)*x^2 + (-a-1)*x + (2*a+1) over Number Field in a with defining polynomial x^2 - x - 1 Minimal discriminant valuation: 1 Conductor exponent: 1 Kodaira Symbol: I1 Tamagawa Number: 1] }}} {{{id=62| show(E.gens()) ///
\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(0 : -a - 1 : 1\right), \left(-\frac{3}{4} a + \frac{1}{4} : -\frac{5}{4} a - \frac{5}{8} : 1\right)\right]
}}} {{{id=63| reg = E.regulator_of_points(E.gens()); reg /// 0.191946627694056 }}} {{{id=64| time L = E.lseries().dokchitser() /// Time: CPU 205.79 s, Wall: 207.57 s }}} {{{id=65| L(1) /// -2.31497738102376e-20 }}} {{{id=66| L.derivative(1,1) /// 7.76867974285369e-22 }}} {{{id=67| L.derivative(1,2) /// 2.88288222151816 }}} {{{id=68| phi = F.embeddings(RR) Omega0 = E.period_lattice(phi[0]); O0 = Omega0.real_period() Omega1 = E.period_lattice(phi[1]); O1 = Omega1.real_period() O0, O1 /// (3.75830925418163, 5.02645072067941) }}} {{{id=69| print ( math.sqrt(F.disc()) * (L.derivative(1,2)/2) * E.torsion_order()^2 / (Omega0.real_period()*Omega1.real_period()* E.tamagawa_product_bsd() *E.regulator_of_points(E.gens())) ) /// 0.888888888888870 }}} {{{id=70| 8/9.0 /// 0.888888888888889 }}} {{{id=71| /// }}}