reu-2011-06-20-my_curves

339 days ago by WilliamStein


%auto x = var('x') K.<a> = NumberField(x^2 - x -1) 
       
def data(ainvs): E = EllipticCurve(K, ainvs) T = E.torsion_subgroup() TI = T.invariants() t2 = len([a for a in TI if a%2==0]) sel2 = E.simon_two_descent()[1] rank_bound = sel2 - t2 if rank_bound == 0: r = 0 else: r = "<=%s"%rank_bound ans = {'conductor':E.conductor().gens_reduced()[0], 'a1':ainvs[0], 'a2':ainvs[1], 'a3':ainvs[2], 'a4':ainvs[3], 'a6':ainvs[4], 'r':r, 'T':T.order()} # signs embeddings = K.embeddings(RR) disc = E.discriminant() disc_signs = [e(disc).sign() for e in embeddings] ans['disc_signs'] = disc_signs # bad primes bad_primes = [P for P,_ in E.conductor().factor()] ans['bad_primes'] = bad_primes ord_delta = [disc.valuation(P) for P in bad_primes] ans['ord_delta'] = ord_delta # j-invariant denominator j_ = E.j_invariant().denominator_ideal().gens_reduced()[0] ans['ord_j'] = [j_.valuation(P) for P in bad_primes] ans['c_p'] = [E.tamagawa_number(P) for P in bad_primes] ans['kodaira'] = [E.kodaira_symbol(P) for P in bad_primes] return ans 
       
data([1,-a,a,a+2,-a]) 
       
{'conductor': -2*a + 12, 'a1': 1, 'c_p': [7, 1], 'a3': a, 'a2': -a,
'a4': a + 2, 'a6': -a, 'bad_primes': [Fractional ideal (2), Fractional
ideal (-a + 6)], 'disc_signs': [-1, -1], 'r': 0, 'ord_j': [7, 1],
'ord_delta': [7, 1], 'kodaira': [I7, I1], 'T': 7}
{'conductor': -2*a + 12, 'a1': 1, 'c_p': [7, 1], 'a3': a, 'a2': -a, 'a4': a + 2, 'a6': -a, 'bad_primes': [Fractional ideal (2), Fractional ideal (-a + 6)], 'disc_signs': [-1, -1], 'r': 0, 'ord_j': [7, 1], 'ord_delta': [7, 1], 'kodaira': [I7, I1], 'T': 7}
curves = [[1,a+1,a,a,0], [1,-a-1,a,0,0], [a,a-1,a,-1,-a+1],[0,-a,a,0,0],[0,a-1,a+1,0,-a], [1,1,1,0,0],[0,a,1,1,0],[1,-a+1,1,-a,0],[1,a,1,a-1,0], [0,a-1,0,-a,0],[a,a+1,a,a,0], [a+1,a-1,1,0,0] , [a,-a+1,1,-1,0], [a+1,0,1,-a-1,0],[1,0,a+1,-2*a-1,0] , [1,0,a,a-2,-a+1], [a,a+1,0,a+1,0], [a+1,a-1,a,0,0] ,[0,1,0,-1,0],[1,-1,a,-2*a,a] , [a+1,-1,1,-a-1,0],[a,-a,1,-1,0] ,[a,a+1,a,2*a,a], [a+1,a-1,1,-a+1,-1],[a+1,0,0,1,0],[a,-a+1,0,1,0], [1,0,1,-1,-2], [a,a-1,a+1,-a,-a], [1,-1,a,-a,0], [1,-a,a,a+2,-a] , [1,a-1,a+1,-2*a+3,-1], [a+1,a-1,a+1,-1,-a+1], [a,a+1,1,1,0]] 
       
time d = [data(c) for c in curves] 
       
Time: CPU 21.56 s, Wall: 33.63 s
Time: CPU 21.56 s, Wall: 33.63 s
def row(d): def l(z): return '$%s$'%(latex(z).replace(' ','')) s = '{\\bf %s} & %s & %s & [%s, %s, %s, %s, %s] & %s & %s & %s & %s & %s & %s & %s \\\\ \\hline'%( abs(d['conductor'].norm()), l(d['conductor']), l(factor(d['conductor'])), l(d['a1']), l(d['a2']), l(d['a3']), l(d['a4']), l(d['a6']), d['r'], d['T'], '$%s$'%(''.join('+' if z>0 else '-' for z in d['disc_signs'])), str(d['ord_delta'])[1:-1], str(d['ord_j'])[1:-1], str(d['c_p'])[1:-1], ','.join([latex(z).replace('I','{\\rm I}') for z in d['kodaira']])) return s 
       
file = open('stein.tex','w') file.write(r""" \documentclass{article} \newcommand{\ord}{{\rm ord}} \usepackage{fullpage} \begin{document} \hspace{-8em} \begin{tabular}{|l|l|l|l|c|c|lc|c|c|c|c|}\hline Norm & Cond & Cond & $[a_1, a_2, a_3, a_4, a_6]$ & $r$ & $|T|$ & \,\,$s$ & $\ord(\Delta)$ & $\ord_{-}(j)$ & $c_p$& Kodaira \\\hline """) for z in d: file.write(row(z) + '\n') file.write(r'\end{tabular}\end{document}') file.close() os.system('pdflatex stein.tex < /dev/null 1>/dev/null') 
       
0
0