E = EllipticCurve('681b'); E
E.analytic_rank()
E.sha_an()
E.non_surjective()
E.heegner_discriminants_list(10)
n = E.heegner_index(-20); n
parent(n)
n^2 + 10

E = EllipticCurve('681b')
L = E.Lseries_dokchitser()  # T. Dokchitser
L(1)  
L(2)
L(1+I)
E.Lseries_zeros(5)       # M. Rubinstein
E.Lseries_sympow(2,16)   # M. Watkins

E = EllipticCurve('37a')
v = E.Lseries_values_along_line(1, 1+10*I, 300)
w = [(z[1].real(), z[1].imag()) for z in v]
L = line(w, rgbcolor=(0.5,0,0))
L.save('line.png')

E = EllipticCurve('389a')
L = E.Lseries_dokchitser()
L(1+I)
L(1+0.2*I,  50)

E = EllipticCurve('37a')
E.sha_an()           
E.non_surjective()   
E.sha_an()           
E.regulator()        
E.gens()             
E.heegner_discriminants(50) 
E.heegner_index(-7)  # Kolyvagin ==> Sha trivial
E.q_expansion(5)     
E.simon_two_descent ()
E.sea(next_prime(10^50))

M = ModularSymbols(Gamma1(13),2); M
D = M.decomposition(3)
[A.dimension() for A in D]
save(M, 'modsym13')
M = load('modsym13')
D = M.decomposition(3)    # instant!
D[-1].hecke_operator(2).charpoly().factor()

P.<x,y,z,w> = ProjectiveSpace(3,QQ)
C = P.subscheme([y^2-x*z, z^2-y*w, x*w-y*z])  
len(C.irreducible_components())   # twisted cubic
J = C.defining_ideal()
G = J.groebner_fan()
len(G.reduced_groebner_bases())
G.fvector()
f = prod(J.gens())     # \/-- newton polytope 
NP = polymake.convex_hull(f.exponents())  
NP.facets()
G.interactive()
