This worksheet requires:
- This worksheet uses the patch from trac 9402 for $L$-series.
- 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|
///
}}}