{{{id=46| K. = NumberField(x^2-x-1) from psage.ellcurve.minmodel.sqrt5 import canonical_model /// }}} {{{id=115| def rc_permutations(L_old,L_new): P_list=[] L=[] for i in range(len(L_old)): if L_new[i] != L_old[i]: L.append((L_new[i],L_old[i])) H = [] done = [] #done is a list of indices that have been used already j=0 while j }}} {{{id=127| import nosqlite db=nosqlite.Client('/home/psharaba/table/ECdb').db /// }}} {{{id=142| temp=db('select a_lbl,b_lbl,weq1,weq2 from N1k') /// }}} {{{id=145| def galois_conjugate(alpha): if isinstance(alpha, Integer): return alpha return alpha[0]+alpha[1]*(1-a) /// }}} {{{id=144| k=0 for r in range(len(temp)): c=temp[r] E = EllipticCurve(K,eval(c[2])) F = E.global_minimal_model() F = canonical_model(F).a_invariants() G1 = str([F[0],F[1],F[2],F[3],F[4]]).replace(' ','') E = EllipticCurve(K, [galois_conjugate(K(alpha)) for alpha in F]) F = E.global_minimal_model() F = canonical_model(F).a_invariants() G2 = str([F[0],F[1],F[2],F[3],F[4]]).replace(' ','') db.N1k.update({'weq1':G1, 'weq2':G2}, weq1=temp[r][2]) if G1==G2: k+=1 print temp[r][0], temp[r][1],r, k else: print temp[r][0], temp[r][1],r /// WARNING: Output truncated! full_output.txt 31a a1 0 31a a2 1 31a a3 2 31a a4 3 31a a5 4 31a a6 5 36a a1 6 1 36a a2 7 2 36a a3 8 3 36a a4 9 4 41a a1 10 41a a2 11 45a a1 12 5 45a a2 13 6 45a a3 14 7 45a a4 15 8 45a a5 16 9 45a a6 17 10 45a a7 18 11 45a a8 19 12 45a a9 20 45a a10 21 49a a1 22 13 49a a2 23 14 55a a1 24 55a a2 25 55a a3 26 55a a4 27 55a a5 28 55a a6 29 55a a7 30 55a a8 31 64a a1 32 15 64a a2 33 64a a3 34 64a a4 35 16 64a a5 36 64a a6 37 71a a1 38 71a a2 39 71a a3 40 71a a4 41 76a a1 42 76a a2 43 76a a3 44 76a a4 45 76a b1 46 76a b2 47 79a a1 48 79a a2 49 79a a3 50 79a a4 51 80a a1 52 17 80a a2 53 80a a3 54 80a a4 55 18 80a a5 56 19 80a a6 57 80a a7 58 ... 900a a5 872 139 900a a6 873 140 900a a7 874 141 900a a8 875 142 900a b1 876 143 900a b2 877 144 900a b3 878 145 900a b4 879 146 905a a1 880 905a a2 881 905a b1 882 905a c1 883 905a c2 884 905a c3 885 905a c4 886 909a a1 887 909a b1 888 916a a1 889 919a a1 890 919a a2 891 919a b1 892 919a b2 893 931a a1 894 944a a1 895 944a a2 896 956a a1 897 956a b1 898 956a c1 899 956a c2 900 961a a1 901 961a b1 902 961b a1 903 961b a2 904 961b a3 905 961b a4 906 961b a5 907 961b a6 908 961b b1 909 961b c1 910 964a a1 911 964a b1 912 964a b2 913 964a b3 914 964a c1 915 971a a1 916 971a a2 917 979a a1 918 979a a2 919 979b a1 920 979b a2 921 979b b1 922 980a a1 923 147 980a a2 924 148 980a a3 925 149 980a a4 926 150 991a a1 927 991a b1 928 991a b2 929 995a a1 930 995a a2 931 }}} {{{id=143| for r in range(len(temp)): if temp[r][2]==temp[r][3]: print temp[r] /// WARNING: Output truncated! full_output.txt (u'36a', u'a1', u'[a+1,a,a,0,0]', u'[a+1,a,a,0,0]') (u'36a', u'a2', u'[a+1,a,a,-10*a-10,10*a+10]', u'[a+1,a,a,-10*a-10,10*a+10]') (u'36a', u'a3', u'[a+1,a,a,-165*a-165,-1683*a-1221]', u'[a+1,a,a,-165*a-165,-1683*a-1221]') (u'36a', u'a4', u'[a+1,a,a,-5*a-5,-51*a-37]', u'[a+1,a,a,-5*a-5,-51*a-37]') (u'45a', u'a1', u'[1,1,1,-80,242]', u'[1,1,1,-80,242]') (u'45a', u'a2', u'[1,1,1,-5,2]', u'[1,1,1,-5,2]') (u'45a', u'a3', u'[1,1,1,0,0]', u'[1,1,1,0,0]') (u'45a', u'a4', u'[1,1,1,-10,-10]', u'[1,1,1,-10,-10]') (u'45a', u'a5', u'[1,1,1,-135,-660]', u'[1,1,1,-135,-660]') (u'45a', u'a6', u'[1,1,1,35,-28]', u'[1,1,1,35,-28]') (u'45a', u'a7', u'[1,1,1,-2160,-39540]', u'[1,1,1,-2160,-39540]') (u'45a', u'a8', u'[1,1,1,-110,-880]', u'[1,1,1,-110,-880]') (u'45a', u'a10', u'[1,-a+1,a,4976732*a-8052529,6393196917*a-10344409915]', u'[1,-a+1,a,4976732*a-8052529,6393196917*a-10344409915]') (u'49a', u'a1', u'[0,-a+1,1,1,0]', u'[0,-a+1,1,1,0]') (u'49a', u'a2', u'[0,-a+1,1,-30*a-29,-102*a-84]', u'[0,-a+1,1,-30*a-29,-102*a-84]') (u'64a', u'a1', u'[0,a-1,0,-a,0]', u'[0,a-1,0,-a,0]') (u'64a', u'a3', u'[0,a-1,0,-11*a-5,17*a+10]', u'[0,a-1,0,-11*a-5,17*a+10]') (u'64a', u'a4', u'[0,a-1,0,-6*a-5,-11*a-7]', u'[0,a-1,0,-6*a-5,-11*a-7]') (u'64a', u'a5', u'[0,-a,0,106*a-171,647*a-1050]', u'[0,-a,0,106*a-171,647*a-1050]') (u'80a', u'a1', u'[0,1,0,-1,0]', u'[0,1,0,-1,0]') (u'80a', u'a2', u'[0,1,0,-5*a-11,17*a-1]', u'[0,1,0,-5*a-11,17*a-1]') (u'80a', u'a4', u'[0,1,0,4,4]', u'[0,1,0,4,4]') (u'80a', u'a5', u'[0,1,0,-41,-116]', u'[0,1,0,-41,-116]') (u'80a', u'a6', u'[0,-a-1,0,2025*a-3281,52269*a-84572]', u'[0,-a-1,0,2025*a-3281,52269*a-84572]') (u'80a', u'a8', u'[0,1,0,-36,-140]', u'[0,1,0,-36,-140]') (u'81a', u'a5', u'[a,-a-1,a+1,-1153*a-719,-21854*a-13501]', u'[a,-a-1,a+1,-1153*a-719,-21854*a-13501]') (u'100a', u'a1', u'[1,1,1,-3,1]', u'[1,1,1,-3,1]') (u'100a', u'a2', u'[1,0,1,-1,-2]', u'[1,0,1,-1,-2]') (u'100a', u'a3', u'[1,1,1,22,-9]', u'[1,1,1,22,-9]') (u'100a', u'a4', u'[1,0,1,-126,-552]', u'[1,0,1,-126,-552]') (u'100a', u'b1', u'[a+1,a,a+1,-25*a-25,53*a+46]', u'[a+1,a,a+1,-25*a-25,53*a+46]') (u'100a', u'b2', u'[a+1,a,a+1,0,0]', u'[a+1,a,a+1,0,0]') (u'100a', u'b3', u'[a+1,a,a+1,-15*a-15,-69*a-48]', u'[a+1,a,a+1,-15*a-15,-69*a-48]') (u'100a', u'b4', u'[a+1,a,a+1,110*a+110,506*a+352]', u'[a+1,a,a+1,110*a+110,506*a+352]') (u'121a', u'a1', u'[0,-1,1,0,0]', u'[0,-1,1,0,0]') (u'121a', u'a2', u'[0,-1,1,-10,-20]', u'[0,-1,1,-10,-20]') (u'121a', u'a3', u'[0,-1,1,-7820,-263580]', u'[0,-1,1,-7820,-263580]') (u'144a', u'a1', u'[0,-a+1,0,-3*a-2,-2*a-2]', u'[0,-a+1,0,-3*a-2,-2*a-2]') (u'144a', u'a3', u'[0,a,0,48*a-80,188*a-304]', u'[0,a,0,48*a-80,188*a-304]') (u'144a', u'a4', u'[0,-a+1,0,2*a+3,-13*a-9]', u'[0,-a+1,0,2*a+3,-13*a-9]') (u'180a', u'a1', u'[1,0,1,-289,1862]', u'[1,0,1,-289,1862]') (u'180a', u'a2', u'[1,0,1,-19,26]', u'[1,0,1,-19,26]') (u'180a', u'a3', u'[1,0,1,1,2]', u'[1,0,1,1,2]') (u'180a', u'a4', u'[1,0,1,-69,-194]', u'[1,0,1,-69,-194]') (u'180a', u'a5', u'[1,0,1,-454,-544]', u'[1,0,1,-454,-544]') (u'180a', u'a6', u'[1,0,1,-334,-2368]', u'[1,0,1,-334,-2368]') (u'180a', u'a7', u'[1,0,1,-14,-64]', u'[1,0,1,-14,-64]') (u'180a', u'a8', u'[1,0,1,-5334,-150368]', u'[1,0,1,-5334,-150368]') (u'196a', u'a1', u'[1,0,1,-11,12]', u'[1,0,1,-11,12]') (u'196a', u'a2', u'[1,0,1,-1,0]', u'[1,0,1,-1,0]') (u'196a', u'a3', u'[1,0,1,-36,-70]', u'[1,0,1,-36,-70]') (u'196a', u'a4', u'[1,0,1,4,-6]', u'[1,0,1,4,-6]') (u'196a', u'a5', u'[1,0,1,-2731,-55146]', u'[1,0,1,-2731,-55146]') (u'196a', u'a6', u'[1,0,1,-171,-874]', u'[1,0,1,-171,-874]') (u'225a', u'a1', u'[0,1,1,2,4]', u'[0,1,1,2,4]') (u'225a', u'a2', u'[0,-1,1,-8,-7]', u'[0,-1,1,-8,-7]') (u'225a', u'b1', u'[0,-a+1,1,-2*a-1,2*a+1]', u'[0,-a+1,1,-2*a-1,2*a+1]') (u'225a', u'b2', u'[0,-a+1,1,8*a+9,-76*a-55]', u'[0,-a+1,1,8*a+9,-76*a-55]') (u'225a', u'c1', u'[a+1,a,a+1,-25*a-25,-119*a-83]', u'[a+1,a,a+1,-25*a-25,-119*a-83]') ... (u'405a', u'a10', u'[1,-1,0,315,1066]', u'[1,-1,0,315,1066]') (u'441a', u'a1', u'[1,0,0,-39,90]', u'[1,0,0,-39,90]') (u'441a', u'a2', u'[1,0,0,-4,-1]', u'[1,0,0,-4,-1]') (u'441a', u'a3', u'[1,0,0,1,0]', u'[1,0,0,1,0]') (u'441a', u'a4', u'[1,0,0,-49,-136]', u'[1,0,0,-49,-136]') (u'441a', u'a5', u'[1,0,0,-34,-217]', u'[1,0,0,-34,-217]') (u'441a', u'a6', u'[1,0,0,-784,-8515]', u'[1,0,0,-784,-8515]') (u'441a', u'c1', u'[a+1,a,a,-3*a-3,-9*a-6]', u'[a+1,a,a,-3*a-3,-9*a-6]') (u'441a', u'c2', u'[a+1,a,a,2*a+2,-14*a-11]', u'[a+1,a,a,2*a+2,-14*a-11]') (u'484a', u'a1', u'[a+1,-a-1,1,-6*a-6,11*a+8]', u'[a+1,-a-1,1,-6*a-6,11*a+8]') (u'484a', u'a2', u'[a+1,-a-1,1,39*a+39,-109*a-82]', u'[a+1,-a-1,1,39*a+39,-109*a-82]') (u'484a', u'a3', u'[a+1,-a-1,1,-6066*a-6066,-323245*a-242434]', u'[a+1,-a-1,1,-6066*a-6066,-323245*a-242434]') (u'484a', u'c1', u'[a+1,a,a+1,-a-1,-3*a-2]', u'[a+1,a,a+1,-a-1,-3*a-2]') (u'484a', u'c2', u'[a+1,a,a+1,-21*a-21,-95*a-66]', u'[a+1,a,a+1,-21*a-21,-95*a-66]') (u'484a', u'c3', u'[1,-a,0,2709*a-4384,81957*a-132609]', u'[1,-a,0,2709*a-4384,81957*a-132609]') (u'484a', u'd1', u'[a+1,1,0,-2*a-2,-16*a-12]', u'[a+1,1,0,-2*a-2,-16*a-12]') (u'529a', u'a1', u'[0,a-1,1,-4*a-3,-6*a-4]', u'[0,a-1,1,-4*a-3,-6*a-4]') (u'576a', u'a1', u'[0,-1,0,-4,4]', u'[0,-1,0,-4,4]') (u'576a', u'a2', u'[0,-1,0,1,0]', u'[0,-1,0,1,0]') (u'576a', u'a3', u'[0,-1,0,-64,220]', u'[0,-1,0,-64,220]') (u'576a', u'a4', u'[0,-1,0,-24,-36]', u'[0,-1,0,-24,-36]') (u'576a', u'a5', u'[0,-1,0,-384,-2772]', u'[0,-1,0,-384,-2772]') (u'576a', u'a6', u'[0,-1,0,16,-180]', u'[0,-1,0,16,-180]') (u'576a', u'd1', u'[0,-a+1,0,-34*a-33,95*a+63]', u'[0,-a+1,0,-34*a-33,95*a+63]') (u'576a', u'd2', u'[0,-a+1,0,6*a+7,7*a+7]', u'[0,-a+1,0,6*a+7,7*a+7]') (u'605a', u'a1', u'[1,-1,0,-59,190]', u'[1,-1,0,-59,190]') (u'605a', u'a2', u'[1,-1,0,-4,3]', u'[1,-1,0,-4,3]') (u'605a', u'a3', u'[1,-1,0,1,0]', u'[1,-1,0,1,0]') (u'605a', u'a4', u'[1,-1,0,-29,-52]', u'[1,-1,0,-29,-52]') (u'605a', u'a6', u'[a+1,1,a+1,1422*a-2301,31356*a-50746]', u'[a+1,1,a+1,1422*a-2301,31356*a-50746]') (u'676a', u'a1', u'[1,0,1,0,0]', u'[1,0,1,0,0]') (u'676a', u'a2', u'[1,0,1,-5,-8]', u'[1,0,1,-5,-8]') (u'676a', u'a3', u'[1,0,1,-460,-3830]', u'[1,0,1,-460,-3830]') (u'676a', u'c1', u'[1,-1,1,-3,3]', u'[1,-1,1,-3,3]') (u'676a', u'c2', u'[1,-1,1,-213,-1257]', u'[1,-1,1,-213,-1257]') (u'729a', u'a1', u'[0,0,1,-30,63]', u'[0,0,1,-30,63]') (u'729a', u'a2', u'[0,0,1,0,0]', u'[0,0,1,0,0]') (u'729a', u'a3', u'[0,0,1,0,-7]', u'[0,0,1,0,-7]') (u'729a', u'a4', u'[0,0,1,-270,-1708]', u'[0,0,1,-270,-1708]') (u'784a', u'a1', u'[0,0,0,-8*a-8,-16*a-12]', u'[0,0,0,-8*a-8,-16*a-12]') (u'784a', u'b1', u'[0,0,0,-16*a-16,44*a+33]', u'[0,0,0,-16*a-16,44*a+33]') (u'784a', u'b4', u'[0,0,0,-11*a-11,72*a+54]', u'[0,0,0,-11*a-11,72*a+54]') (u'845a', u'a1', u'[1,0,0,-1,0]', u'[1,0,0,-1,0]') (u'845a', u'a2', u'[1,0,0,4,1]', u'[1,0,0,4,1]') (u'900a', u'a1', u'[a+1,-a-1,1,-93*a-93,-525*a-394]', u'[a+1,-a-1,1,-93*a-93,-525*a-394]') (u'900a', u'a2', u'[a+1,-a-1,1,7*a+7,-45*a-34]', u'[a+1,-a-1,1,7*a+7,-45*a-34]') (u'900a', u'a3', u'[a+1,-a-1,1,-1668*a-1668,47355*a+35516]', u'[a+1,-a-1,1,-1668*a-1668,47355*a+35516]') (u'900a', u'a4', u'[a+1,-a-1,1,-68*a-68,1275*a+956]', u'[a+1,-a-1,1,-68*a-68,1275*a+956]') (u'900a', u'a5', u'[a+1,-a-1,1,-26668*a-26668,3007355*a+2255516]', u'[a+1,-a-1,1,-26668*a-26668,3007355*a+2255516]') (u'900a', u'a6', u'[a+1,-a-1,1,-343*a-343,3875*a+2906]', u'[a+1,-a-1,1,-343*a-343,3875*a+2906]') (u'900a', u'a7', u'[a+1,-a-1,1,-2268*a-2268,10875*a+8156]', u'[a+1,-a-1,1,-2268*a-2268,10875*a+8156]') (u'900a', u'a8', u'[a+1,-a-1,1,-1443*a-1443,-37245*a-27934]', u'[a+1,-a-1,1,-1443*a-1443,-37245*a-27934]') (u'900a', u'b1', u'[1,0,0,-28,272]', u'[1,0,0,-28,272]') (u'900a', u'b2', u'[1,0,0,-828,9072]', u'[1,0,0,-828,9072]') (u'900a', u'b3', u'[1,0,0,-53,-153]', u'[1,0,0,-53,-153]') (u'900a', u'b4', u'[1,0,0,-3,-3]', u'[1,0,0,-3,-3]') (u'980a', u'a1', u'[1,-1,1,-88,317]', u'[1,-1,1,-88,317]') (u'980a', u'a2', u'[1,-1,1,-18,-19]', u'[1,-1,1,-18,-19]') (u'980a', u'a3', u'[1,-1,1,2,-3]', u'[1,-1,1,2,-3]') (u'980a', u'a4', u'[1,-1,1,-268,-1619]', u'[1,-1,1,-268,-1619]') }}} {{{id=129| db.N1k.columns() /// [u'V', u'cond1', u'cond2', u'K', u'ordD', u'b_lbl', u'L', u'rank', u'N', u'c_p', u'R', u'U', u'T', u'a_lbl', u'omega', u'Reg', u'weq2', u'ordj', u'weq1', u'Sha', u's', u'eta', u'real1', u'found', u'real2', u'adj', u'l_lbl', u'i_lbl', u'adj_order'] }}} {{{id=124| temp=db('select b_lbl, weq,R,adj,adj_order from N2k ORDER BY N,c_lbl,R,V,U') L_old=[] L_new=[] mtrx=0 isog_class=0 label=0 for r in range(len(temp)): v=sage.databases.cremona.parse_cremona_label('1'+temp[r][0])[1]#this is the letter v1=sage.databases.cremona.parse_cremona_label('1'+temp[r][0])[2]#this is the number if r==0: mtrx=eval(temp[r][3]) isog_class=int(temp[r][2]) L_old.append(int(v1)-1) L_new.append(int(temp[r][4])) label=v1 else: if v1>label: L_old.append(int(v1)-1) L_new.append(temp[r][4]) else: adj_updated=exec_rcp(L_old,L_new,mtrx) A=str(adj_updated).replace('\n','') A=A.replace('][',',') A='('+A.replace(' ',',')+')' B=len(L_new) M=matrix(B,eval(A)) mat = "matrix(%s,%s)"%(M.nrows(),str(M.list()).replace(' ','')) db.N1k.update({'adj': mat}, R=isog_class) L_old=[] L_new=[] mtrx=eval(temp[r][3]) isog_class=int(temp[r][2]) L_old.append(int(v1)-1) L_new.append(int(temp[r][4])) label=v /// Traceback (most recent call last): File "", line 1, in File "/tmp/tmpIrQEKn/___code___.py", line 10, in exec compile(u'for r in range(len(temp)):\n v=sage.databases.cremona.parse_cremona_label(\'1\'+temp[r][_sage_const_0 ])[_sage_const_1 ]#this is the letter\n v1=sage.databases.cremona.parse_cremona_label(\'1\'+temp[r][_sage_const_0 ])[_sage_const_2 ]#this is the number\n if r==_sage_const_0 :\n mtrx=eval(temp[r][_sage_const_3 ])\n isog_class=int(temp[r][_sage_const_2 ])\n L_old.append(int(v1)-_sage_const_1 )\n L_new.append(int(temp[r][_sage_const_4 ]))\n label=v1\n else:\n if v1>label:\n L_old.append(int(v1)-_sage_const_1 )\n L_new.append(temp[r][_sage_const_4 ])\n else:\n adj_updated=exec_rcp(L_old,L_new,mtrx)\n A=str(adj_updated).replace(\'\\n\',\'\')\n A=A.replace(\'][\',\',\')\n A=\'(\'+A.replace(\' \',\',\')+\')\'\n B=len(L_new)\n M=matrix(B,eval(A))\n mat = "matrix(%s,%s)"%(M.nrows(),str(M.list()).replace(\' \',\'\'))\n db.N1k.update({\'adj\': mat}, R=isog_class)\n L_old=[]\n L_new=[]\n mtrx=eval(temp[r][_sage_const_3 ])\n isog_class=int(temp[r][_sage_const_2 ])\n L_old.append(int(v1)-_sage_const_1 )\n L_new.append(int(temp[r][_sage_const_4 ]))\n label=v' + '\n', '', 'single') File "", line 22, in File "/home/wstein/nosqlite/nosqlite.py", line 940, in update self.database(cmd, t) File "/home/wstein/nosqlite/nosqlite.py", line 592, in __call__ return self.client(cmds, t, file=self.name, many=many, coerce=coerce) File "/home/wstein/nosqlite/nosqlite.py", line 467, in __call__ return self.server.execute(cmd, t, file, many) File "/home/wstein/nosqlite/nosqlite.py", line 352, in execute db.commit() KeyboardInterrupt __SAGE__ }}} {{{id=140| temp=db('select weq1,weq2 from N1k') for r in range(len(temp)): A=temp[r][0] B=temp[r][1] E=canonical_model(EllipticCurve(K,eval(A)).global_minimal_model()).a_invariants() E1=str([E[0], E[1], E[2], E[3], E[4]]).replace(' ','') F=canonical_model(EllipticCurve(K,eval(B)).global_minimal_model()).a_invariants() F1=str([F[0],F[1],F[2],F[3],F[4]]).replace(' ','') db.N1k.update({'weq1': E1, 'weq2': F1}, weq1=A) print r /// WARNING: Output truncated! full_output.txt 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 ... 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 }}} {{{id=141| /// }}}