{{{id=3| x = var('x') K.=NumberField(x^2-x-1) import psage.modform.hilbert.sqrt5.tables as sqrt5 import nosqlite db=nosqlite.Client(DATA+'localdb2').db f=open('/home/psharaba/table/QTFCurves.txt') /// }}} {{{id=28| f.readline().split() /// ['895', '2*a+29', '[0,-1,a,-108*a-67,684*a+423]', 'TF'] }}} {{{id=29| db.curves.delete() /// }}} {{{id=6| for s in f.readlines(): A=s.split() db.curves.insert({'N':int(A[0]),'cond': A[1], 'weq':A[2],'found': A[3]}) /// }}} {{{id=30| db.curves.find_one() /// {u'found': u'TF', u'weq': u'[0,-1,a,-108*a-67,684*a+423]', u'cond': u'2*a+29', u'N': 895} }}} {{{id=2| ######################################################### ############# isogeny classes ############### ######################################################### def ap(E,p): return E.change_ring(p.residue_field()).trace_of_frobenius() R. = GF(2)[] def frob(E,p): t = ap(E,p) return ch^2 - ap(E, p)*ch + int(p.norm()) def disc(E, p): t = ap(E, p) return t^2 - 4*p.norm() def isogeny_primes(E, norm_bound, isog_degree_bound): #Returns prime for which E has an isogeny P = [p for p in sqrt5.ideals_of_bounded_norm(norm_bound) if p.is_prime() and E.has_good_reduction(p)] w = set(primes(isog_degree_bound+1)) i = 0 w.remove(2) while len(w) > 0 and i < len(P): d = disc(E, P[i]) w = [ell for ell in w if not (legendre_symbol(d,ell) == -1)] i = i +1 i = 0 while i < len(P): if frob(E,P[i]).is_irreducible(): break i = i+1 if i == len(P): w.insert(0,2) return w def closed_under_multiplication_by_m(E, f, m): """ INPUT: - E -- elliptic curve in *short* Weierstrass form - f -- a polynomial that defines a finite subset S of E[p] that is closed under [-1] - m -- integer m >= 2 coprime to p. We assume that p is odd. OUTPUT: - True if [m]*S = S, and False otherwise. """ K = E.base_field() h = E.multiplication_by_m(m, x_only=True) n = h.numerator(); d = h.denominator() S. = K[] psi = n.parent().hom([x,0]) tau = f.parent().hom([x]) r = tau(f).resultant(psi(n)-Z*psi(d), x) r0 = S.hom([0,f.parent().gen()])(r) return r0.monic() == f.monic() def is_subgroup(E, f, p): """ INPUT: - E -- elliptic curve in *short* Weierstrass form - f -- a polynomial that defines a finite subset S of E[p] that is closed under [-1] - p -- an odd prime OUTPUT: - True exactly if S union {0} is a group. """ m = primitive_root(p) return closed_under_multiplication_by_m(E, f, m) def isogeny_class_computation(E, p): if p != 2: E = E.short_weierstrass_model() F = E.division_polynomial(p).change_ring(K) candidates = [f for f in divisors(F) if f.degree() == (p-1)/2 and is_subgroup(E,f,p)] v = [] w = [] for f in candidates: try: v.append(E.change_ring(K).isogeny(f).codomain()) w.append(f) except ValueError: pass v = [F.change_ring(K).global_minimal_model() for F in v] return v else: w = [Q for Q in E.torsion_subgroup() if order(Q)==2] v = [E.isogeny(E(Q)).codomain() for Q in w] return v def curve_isogeny_vector(E): #Returns isogeny class and adjacency matrix curve_list = [E] i = 0 Adj = matrix(50) ins = 1 norm_bound, isog_degree_bound = 500,500 while i < len(curve_list): isolist = isogeny_primes(curve_list[i],norm_bound, isog_degree_bound) for p in isolist: for F in isogeny_class_computation(curve_list[i],p): bool = True for G in curve_list: if F.is_isomorphic(G): bool = False Adj[i,curve_list.index(G)]=p #if a curve in the isogeny class computation is isom Adj[curve_list.index(G),i]=p #to a curve already in the list, we want a line if bool: curve_list.append(F.global_minimal_model()) Adj[i,ins]=p Adj[ins,i]=p ins += 1 i+=1 Adj = Adj.submatrix(nrows=len(curve_list),ncols=len(curve_list)) return {'curve_list':curve_list, 'adjacency_matrix':Adj, 'norm_bound':norm_bound, 'isog_degree_bound':isog_degree_bound, 'subgroup_checked':True} def compute_isogeny_classes(): if 'isoclass' in db.curves.columns(): #X = db('select weq from curves where isoclass is NULL order by N') # since the isoclasses are all wrong anyways... X = db('select weq from curves order by N') else: X = db('select weq from curves order by N') print "%s left to do"%len(X) def comp(weq): ainvs = weq E = EllipticCurve(K, ainvs) iso = curve_isogeny_vector(E) d = {'isoclass':iso} db.curves.update(d, weq=weq) print d for A in range(len(X)): B=X[A][0] comp(B) print A def isogeny_table(file): X = db.curves.find('N>=1', fields=['N','cond','weq','isoclass'], order_by='N') if isinstance(file, str): file = open(file, 'w') file.write('N cond weq iso_class iso_matrix\n') i = 0 for v in X: if not v.has_key('isoclass'): continue if not v['isoclass'].has_key('subgroup_checked'): print "crap: ", v continue i += 1 iso = v['isoclass'] M = iso['adjacency_matrix'] mat = "matrix(%s,%s)"%(M.nrows(),str(M.list()).replace(' ','')) ainvs=str([list(E.ainvs()) for E in iso['curve_list']]).replace(' ','') s = '%s %s %s %s %s'%(v['N'],v['cond'],v['weq'],ainvs,mat) print i, s file.write(s+'\n') file.flush() /// }}} {{{id=11| X = db('select weq from curves order by N') /// }}} {{{id=43| len(X) /// 33 }}} {{{id=31| print X[0] /// (u'[18*a-28,-105*a+170,-105*a+170,0,0]',) }}} {{{id=27| for s1 in range(len(X)): X[s1] /// }}} {{{id=75| eval(X[0][0]) /// [18*a - 28, -105*a + 170, -105*a + 170, 0, 0] }}} {{{id=76| db.curves.find_one(weq=str(X[0][0])) /// {u'weq': u'[18*a-28,-105*a+170,-105*a+170,0,0]', u'cond': u'11*a-8', u'N': 145} }}} {{{id=14| %time for r1 in range(len(X)): weq1=X[r1][0] weq2=eval(X[r1][0]) E = EllipticCurve(K, weq2) iso = curve_isogeny_vector(E) Tot=iso['curve_list'] India=iso['adjacency_matrix'] hotel=[] for g1 in range(len(Tot)): A=list(Tot[g1].a_invariants()) hotel.append(str(A).replace(' ','')) db.curves.update({'isoclass':str(hotel), 'mtrx': str(India)}, weq=str(weq1)) print hotel print India print weq1 /// WARNING: Output truncated! full_output.txt ['[18*a-28,-105*a+170,-105*a+170,0,0]', '[0,0,a,-316749*a+512510,375402061*a-607413295]'] [0 7] [7 0] [18*a-28,-105*a+170,-105*a+170,0,0] ['[0,0,1,1652*a-2673,-38652*a+62540]', '[0,0,1,-9788*a+15837,18636*a-30154]'] [0 5] [5 0] [0,0,1,1652*a-2673,-38652*a+62540] ['[1,-1,a,-44*a-27,-215*a-133]', '[1,-1,a,-764*a-477,-12005*a-7423]', '[1,-1,a,-404*a-252,22618*a+13988]', '[1,-1,a,-11924*a-7452,753274*a+465860]'] [0 2 5 0] [2 0 0 5] [5 0 0 2] [0 5 2 0] [1,-1,a,-44*a-27,-215*a-133] ['[a+1,0,1,-1103*a-682,20454*a+12641]', '[a+1,0,1,-578*a-367,40656*a+25115]'] [0 3] [3 0] [a+1,0,1,-1103*a-682,20454*a+12641] ['[1,0,1,21*a-40,-66*a+101]', '[1,0,1,-189*a-145,-1788*a-823]'] [0 3] [3 0] [1,0,1,21*a-40,-66*a+101] ['[0,-a,0,-53*a-33,-126*a-78]', '[0,-a,0,-778*a-483,-12101*a-7478]', '[0,-a,0,147*a+92,-1121*a-693]', '[0,-a,0,-328*a-208,3524*a+2172]', '[0,-a,0,-1653*a-1033,39754*a+24582]', '[0,-a,0,-1778*a-1283,29379*a+19082]', '[0,-a,0,-1453*a-908,49399*a+30547]', '[0,-a,0,-26528*a-16408,2502004*a+1546332]'] [0 2 2 2 3 0 0 0] [2 0 0 0 0 3 0 0] [2 0 0 0 0 0 3 0] [2 0 0 0 0 0 0 3] [3 0 0 0 0 2 2 2] [0 3 0 0 2 0 0 0] [0 0 3 0 2 0 0 0] [0 0 0 3 2 0 0 0] [0,-a,0,-53*a-33,-126*a-78] ['[1,-1,1,a,-20*a-12]', '[1,-1,1,-3019*a-1900,-95396*a-59044]'] [0 5] [5 0] [1,-1,1,a,-20*a-12] ['[a,-a-1,0,0,-40*a-25]', '[a,-a-1,0,-135*a-90,-832*a-520]', '[a,-a-1,0,-2160*a-1440,-58072*a-36295]', '[a,-a-1,0,-270*a-180,1400*a+875]', '[a,-a-1,0,945*a+630,8528*a+5330]', '[a,-a-1,0,-3645*a-2430,132800*a+83000]', '[a,-a-1,0,-2970*a-1980,182120*a+113825]', '[a,-a-1,0,-58320*a-38880,8385080*a+5240675]', '[a,-a-1,0,-39285*a-69660,6747746*a+7895612]', '[a,-a-1,0,-952155*a-591300,536418734*a+331583438]'] [0 2 0 0 0 0 0 0 0 0] [2 0 2 2 0 0 0 0 0 0] [0 2 0 0 0 0 0 0 0 0] [0 2 0 0 2 2 0 0 0 0] [0 0 0 2 0 0 0 0 0 0] [0 0 0 2 0 0 2 2 0 0] [0 0 0 0 0 2 0 0 0 0] [0 0 0 0 0 2 0 0 2 2] [0 0 0 0 0 0 0 2 0 0] [0 0 0 0 0 0 0 2 0 0] [a,-a-1,0,0,-40*a-25] ['[0,a+1,a+1,-226*a-140,1772*a+1095]', '[0,a+1,a+1,-196*a-150,2127*a+1251]'] [0 3] [3 0] [0,a+1,a+1,-226*a-140,1772*a+1095] ['[0,1,a,32*a-54,-100*a+159]', '[0,1,a,-58*a-104,-627*a-126]'] [0 3] [3 0] [0,1,a,32*a-54,-100*a+159] ['[0,0,0,-17*a-12,-43*a-26]', '[0,0,0,-7*a-27,-64*a+2]'] [0 2] [2 0] ... [2 0 0 0] [2 0 0 0] [2 0 0 0] [0,0,0,-16*a-16,44*a+33] ['[a,0,a+1,-3*a-5,5*a-3]', '[a,0,a+1,162*a-270,1236*a-1990]'] [0 3] [3 0] [a,0,a+1,-3*a-5,5*a-3] ['[1,0,0,121*a-211,619*a-1006]', '[1,0,0,761*a-1171,-10901*a+17618]', '[1,0,0,41*a-76,-167*a+281]', '[1,0,0,9161*a-15731,534651*a-875694]', '[1,0,0,721*a-1176,-11175*a+18093]', '[1,0,0,9181*a-15751,532807*a-873010]'] [0 2 3 3 0 0] [2 0 0 0 3 3] [3 0 0 0 2 0] [3 0 0 0 0 2] [0 3 2 0 0 0] [0 3 0 2 0 0] [1,0,0,121*a-211,619*a-1006] ['[a,-a+1,0,202*a-329,-1553*a+2514]', '[a,-a+1,0,182*a-329,-1617*a+2694]', '[a,-a+1,0,317*a-519,637*a-1035]', '[a,-a+1,0,-1283*a+2041,2941*a-4683]', '[a,-a+1,0,18877*a-30999,1526253*a-2473275]', '[a,-a+1,0,18617*a-30579,1569409*a-2543091]'] [0 2 3 0 0 0] [2 0 0 3 0 0] [3 0 0 2 3 0] [0 3 2 0 0 3] [0 0 3 0 0 2] [0 0 0 3 2 0] [a,-a+1,0,202*a-329,-1553*a+2514] ['[a,a-1,a+1,9*a+3,-17*a-6]', '[a,a-1,a+1,-2016*a-1257,-53012*a-33006]'] [0 5] [5 0] [a,a-1,a+1,9*a+3,-17*a-6] ['[a+1,1,a+1,27*a+17,27*a+17]', '[a+1,1,a+1,-108*a-73,-81*a-46]', '[a+1,1,a+1,-1188*a-748,-24732*a-15301]', '[a+1,1,a+1,-1188*a-838,23598*a+14957]', '[a+1,1,a+1,27*a-1648,33804*a+46466]', '[a+1,1,a+1,-19683*a-12268,1576908*a+974960]'] [0 2 0 0 0 0] [2 0 2 2 0 0] [0 2 0 0 0 0] [0 2 0 0 2 2] [0 0 0 2 0 0] [0 0 0 2 0 0] [a+1,1,a+1,27*a+17,27*a+17] ['[1,-1,1,1,43*a+26]', '[1,-1,1,-135*a-89,943*a+584]', '[1,-1,1,-270*a-224,-1433*a-1036]', '[1,-1,1,-2160*a-1394,59299*a+36836]', '[1,-1,1,-1755*a-2024,54961*a+45278]', '[1,-1,1,-34965*a-21644,3774121*a+2332862]'] [0 2 0 0 0 0] [2 0 2 2 0 0] [0 2 0 0 0 0] [0 2 0 0 2 2] [0 0 0 2 0 0] [0 0 0 2 0 0] [1,-1,1,1,43*a+26] ['[0,-1,a,-108*a-67,684*a+423]', '[0,-1,a,-148*a-87,205*a+124]'] [0 3] [3 0] [0,-1,a,-108*a-67,684*a+423] ['[a+1,-a,0,7*a-23,-24*a+20]', '[a+1,-a,0,-18*a-168,-140*a-845]', '[a+1,-a,0,-1453*a-803,-29280*a-20902]', '[a+1,-a,0,1017*a-1853,21096*a-35088]', '[a+1,-a,0,652*a-2048,27054*a-32629]', '[a+1,-a,0,17942*a-28618,1363362*a-2211479]'] [0 2 0 0 0 0] [2 0 2 2 0 0] [0 2 0 0 0 0] [0 2 0 0 2 2] [0 0 0 2 0 0] [0 0 0 2 0 0] [a+1,-a,0,7*a-23,-24*a+20] ['[0,-a,1,-42*a-53,-192*a-140]'] [0] [0,-a,1,-42*a-53,-192*a-140] CPU time: 580.92 s, Wall time: 581.75 s }}} {{{id=40| db.curves.find_one() /// {u'isoclass': u"['[0,-1,a,-108*a-67,684*a+423]', '[0,-1,a,-148*a-87,205*a+124]']", u'weq': u'[0,-1,a,-108*a-67,684*a+423]', u'cond': u'2*a+29', u'found': u'TF', u'N': 895, u'mtrx': u'[0 3]\n[3 0]'} }}} {{{id=54| India /// [0 2 2 2 3 0 0 0] [2 0 0 0 0 3 0 0] [2 0 0 0 0 0 3 0] [2 0 0 0 0 0 0 3] [3 0 0 0 0 2 2 2] [0 3 0 0 2 0 0 0] [0 0 3 0 2 0 0 0] [0 0 0 3 2 0 0 0] }}} {{{id=53| len(iso['curve_list']) /// 8 }}} {{{id=37| r1=0 weq1=X[r1][0] weq2=eval(X[r1][0]) E = EllipticCurve(K, weq2) print E iso = curve_isogeny_vector(E) Tot=iso['curve_list'] India=iso['adjacency_matrix'] hotel=[] for g1 in range(len(Tot)): A=list(Tot[g1].a_invariants()) hotel.append(str(A).replace(' ','')) for g1 in range(len(iso['curve_list'])): A=list(iso['curve_list'][g1]).a_invariants() hotel.append(str(A).replace(' ','')) print India /// Elliptic Curve defined by y^2 + (18*a-28)*x*y + (-105*a+170)*y = x^3 + (-105*a+170)*x^2 over Number Field in a with defining polynomial x^2 - x - 1 Traceback (most recent call last): Tot=iso['curve_list'] File "", line 1, in File "/tmp/tmpD68fJx/___code___.py", line 16, in A=list(iso['curve_list'][g1]).a_invariants() File "/usr/local/sage/local/lib/python2.6/site-packages/sage/schemes/elliptic_curves/ell_generic.py", line 889, in __getitem__ raise NotImplementedError, "not implemented." NotImplementedError: not implemented. }}} {{{id=41| E=EllipticCurve(Z1,[a+1,a,a+1,-25/16*a-25/16,-1927/8*a -11537/64]) /// }}} {{{id=42| ap(E.integral_model(),Z1.ideal(2)) /// }}} {{{id=39| hotel=[] for g2 in range(len(Tot)): A=list(Tot[g2].a_invariants()) hotel.append(str(A).replace(' ','')) /// }}} {{{id=38| for g2 in range(len(iso['curve_list'])): iso['curve_list'][g2] /// }}} {{{id=33| @parallel(8) def func(r1): weq1=X[r1][0] weq2=eval(X[r1][0]) E = EllipticCurve(K, weq2) try: iso = curve_isogeny_vector(E) Tot=iso['curve_list'] India=iso['adjacency_matrix'] hotel=[] for g1 in range(len(Tot)): A=list(Tot[g1].a_invariants()) hotel.append(str(A).replace(' ','')) db.curves.update({'isoclass':str(hotel), 'mtrx': str(India)}, weq=str(weq1)) except: print 'error occured' print r1 /// }}} {{{id=50| print India /// Traceback (most recent call last): File "", line 1, in File "_sage_input_40.py", line 10, in exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("cHJpbnQgSW5kaWE="),globals())+"\\n"); execfile(os.path.abspath("___code___.py"))' + '\n', '', 'single') File "", line 1, in File "/tmp/tmpSMg5Sr/___code___.py", line 2, in exec compile(u'print India' + '\n', '', 'single') File "", line 1, in NameError: name 'India' is not defined }}} {{{id=35| test=[] for r2 in range(len(X)): test.append(r2) list(func(test)) /// error occured 3 error occured 6 error occured 4 error occured 5 error occured 0 error occured 2 error occured 7 error occured 9 error occured 12 error occured 8 error occured 10 error occured 15 error occured 16 error occured 11 error occured 13 error occured 14 [(((1,), {}), None), (((3,), {}), None), (((6,), {}), None), (((4,), {}), None), (((5,), {}), None), (((0,), {}), None), (((2,), {}), None), (((7,), {}), None), (((9,), {}), None), (((12,), {}), None), (((8,), {}), None), (((10,), {}), None), (((15,), {}), None), (((16,), {}), None), (((11,), {}), None), (((13,), {}), None), (((14,), {}), None)] }}} {{{id=17| test=db('select isoclass from curves') /// }}} {{{id=32| db.curves.columns() /// [u'weq', u'cond', u'N', u'isoclass', u'mtrx'] }}} {{{id=26| for r2 in range(len(test)): print test[r2] /// (u"['[a+1,a-1,a+1,5*a-16,4*a-21]', '[a+1,a-1,a+1,-35*a-56,-260*a-117]', '[a+1,a-1,a+1,-1,-a+1]', '[a+1,a-1,a+1,465*a-1316,8192*a-18821]', '[a+1,a-1,a+1,-3305*a-3646,-139218*a-109925]', '[a+1,a-1,a+1,10*a-21,-33*a+51]']",) (u"['[0,-a+1,0,2*a+3,-13*a-9]', '[0,-a+1,0,-3*a-2,-2*a-2]', '[0,-a+1,0,-48*a-32,-188*a-116]', '[0,-a+1,0,-3*a-17,31*a-14]']",) (u"['[0,a+1,a,-9*a-9,-31*a-23]', '[0,a+1,a,a+1,0]']",) (u"['[a+1,a-1,0,20*a-33,42*a-71]', '[a+1,a-1,0,2,a-1]']",) (u"['[1,0,1,-19,26]', '[1,0,1,-69,-194]', '[1,0,1,1,2]', '[1,0,1,-289,1862]', '[1,0,1,-334,-2368]', '[1,0,1,-5334,-150368]', '[1,0,1,-14,-64]', '[1,0,1,-454,-544]']",) (u"['[1,0,1,4,-6]', '[1,0,1,-36,-70]', '[1,0,1,-171,-874]', '[1,0,1,-1,0]', '[1,0,1,-2731,-55146]', '[1,0,1,-11,12]']",) (u"['[0,a+1,1,-9*a,-16*a-15]', '[0,a+1,1,-539*a-490,-8858*a-6256]', '[0,a+1,1,a,0]']",) (u"['[a+1,0,a,8*a+4,6*a+1]', '[a+1,0,a,-17*a-46,21*a-69]', '[a+1,0,a,-2*a-1,0]', '[a+1,0,a,-22*a-16,48*a+31]']",) (u"['[a+1,-a+1,a+1,-2*a-5,1]', '[a+1,-a+1,a+1,3*a-15,14*a-26]', '[a+1,-a+1,a+1,-7*a-75,30*a+212]', '[a+1,-a+1,a+1,-2*a,-a]', '[a+1,-a+1,a+1,-47*a,-67*a-159]', '[a+1,-a+1,a+1,133*a-190,851*a-1361]']",) (u"['[a+1,a,a+1,-25*a-25,-119*a-83]', '[a+1,a,a+1,-400*a-400,-6044*a-4433]', '[a+1,a,a+1,0,-4*a-3]', '[a+1,a,a+1,-50*a-50,46*a+47]', '[a+1,a,a+1,175*a+175,1081*a+767]', '[a+1,a,a+1,-675*a-675,11171*a+8547]', '[a+1,a,a+1,-550*a-550,15946*a+12097]', '[a+1,a,a+1,-10800*a-10800,758396*a+571497]', '[a+1,a,a+1,16875*a-55575,-2120029*a+5229447]', '[a+1,a,a+1,-200475*a-128025,52107221*a+32306847]']",) (u"['[1,-a,a,-6*a-5,-7*a-4]', '[1,-a,a,-91*a-85,-585*a-309]', '[1,-a,a,-a-5,-17*a-15]', '[1,-a,a,-a,0]']",) (u"['[a,-a+1,1,4*a-9,8*a-20]', '[a,-a+1,1,-a+1,0]', '[a,-a+1,1,314*a-839,4956*a-10332]']",) (u"['[a,a,a,332*a-536,-3529*a+5713]', '[a,a,a,332*a-561,-3274*a+5323]', '[a,a,a,7*a-11,a-2]', '[a,a,a,-543*a+814,-16774*a+26948]', '[a,a,a,1207*a-2336,27046*a-41162]', '[a,a,a,82*a-136,421*a-687]', '[a,a,a,32*a-111,596*a-1187]', '[a,a,a,1332*a-2161,27826*a-45027]']",) (u"['[a+1,-a+1,a+1,-a-27,4*a-67]', '[a+1,-a+1,a+1,-176*a-127,-1446*a-992]', '[a+1,-a+1,a+1,-a-2,-a-2]', '[a+1,-a+1,a+1,174*a-327,1674*a-2702]', '[a+1,-a+1,a+1,-26*a-127,174*a+448]', '[a+1,-a+1,a+1,-276*a-2,-2201*a+823]', '[a+1,-a+1,a+1,49*a-77,-146*a+283]', '[a+1,-a+1,a+1,-976*a-1052,24329*a+11533]']",) (u"['[0,-1,0,9*a-16,13*a-24]', '[0,-1,0,-a-1,-1]']",) (u"['[0,a-1,0,-4,-4*a+4]', '[0,a-1,0,-20*a-24,-76*a-52]', '[0,a-1,0,20*a-64,-108*a+236]', '[0,a-1,0,1,0]', '[0,a-1,0,-420*a-224,-4716*a-3012]', '[0,a-1,0,60*a-144,276*a-676]']",) (u"['[a,-1,0,4*a-4,-3*a+4]', '[a,-1,0,-a+1,0]']",) (u"['[0,1,a+1,-18*a-23,-67*a-57]', '[0,1,a+1,2*a-3,-2*a+1]']",) (u"['[0,a+1,a+1,6*a-30,42*a-49]', '[0,a+1,a+1,1076*a-2020,23185*a-39565]']",) (u"['[1,-a-1,a,4*a-20,27*a-12]', '[1,-a-1,a,59*a-100,-245*a+447]', '[1,-a-1,a,9*a-15,16*a-26]', '[1,-a-1,a,-131*a-20,783*a+285]']",) (u"['[a,-a,a+1,14*a-13,21*a-31]', '[a,-a,a+1,-26*a-13,93*a-63]', '[a,-a,a+1,-a-3,1]', '[a,-a,a+1,734*a-1313,12693*a-21163]', '[a,-a,a+1,-156*a-1863,-3449*a-31141]', '[a,-a,a+1,-21*a-13,56*a+39]']",) (u"['[a,-a+1,a+1,8*a-14,19*a-35]', '[a,-a+1,a+1,-2*a+1,-a]']",) (u"['[a+1,a,a,2*a+2,-14*a-11]', '[a+1,a,a,-3*a-3,-9*a-6]']",) (u"['[a,a+1,1,134*a-214,902*a-1462]', '[a,a+1,1,9*a-14,12*a-22]', '[a,a+1,1,-36*a+26,18*a-146]', '[a,a+1,1,4*a-4,-2*a+4]']",) (u"['[a+1,-1,a+1,-7*a-7,-12*a-8]', '[a+1,-1,a+1,-112*a-62,-661*a-420]', '[a+1,-1,a+1,-2*a-2,-a]', '[a+1,-1,a+1,18*a-32,13*a-88]']",) (u"['[a+1,-1,0,-24*a-11,-68*a-38]', '[a+1,-1,0,a-1,-a+1]']",) (u"['[0,-1,0,3*a-7,-a+13]', '[0,-1,0,-2*a-2,3*a+2]', '[0,-1,0,43*a-47,-33*a-235]', '[0,-1,0,18*a-62,71*a-174]']",) (u"['[a+1,-1,a+1,4*a-17,-16*a+30]', '[a+1,-1,a+1,-a-2,-a]']",) (u"['[a,a,0,-25*a-53,-155*a-178]', '[a,a,0,-3,-5*a-3]']",) (u"['[a+1,a,a+1,-21*a-21,-95*a-66]', '[a+1,a,a+1,-391*a-251,-4961*a-3070]', '[a+1,a,a+1,-a-1,-3*a-2]', '[a+1,a,a+1,29*a-111,163*a-438]']",) (u"['[1,-a+1,a+1,-5*a-5,23*a+9]', '[1,-a+1,a+1,175*a-180,416*a-1815]']",) (u"['[1,-a+1,a,-15*a-13,40*a+24]', '[1,-a+1,a,-38,91*a-62]', '[1,-a+1,a,-3,1]', '[1,-a+1,a,-270*a-148,2449*a+1542]', '[1,-a+1,a,225*a-488,2701*a-4787]', '[1,-a+1,a,15*a+12,285*a-101]', '[1,-a+1,a,390*a-383,1768*a-5423]', '[1,-a+1,a,3660*a-7793,162574*a-293951]']",) (u"['[a,a,a,6*a-11,-11*a+17]', '[a,a,a,101*a-171,-638*a+1018]', '[a,a,a,a-1,0]', '[a,a,a,-9*a-11,-8*a+44]']",) (u"['[1,-a+1,0,-4,4*a-5]', '[1,-a+1,0,20*a-69,116*a-268]', '[1,-a+1,0,-20*a-19,68*a+38]', '[1,-a+1,0,1,0]']",) (u"['[1,-a+1,0,-17*a-10,-36*a-25]', '[1,-a+1,0,-2*a,a+1]']",) (u"['[1,-a+1,0,4*a+4,-3*a+1]', '[1,-a+1,0,-a-1,0]', '[1,-a+1,0,-71*a-46,-328*a-269]', '[1,-a+1,0,-66*a-56,-333*a-241]']",) (u"['[a+1,-a+1,1,3*a+3,8*a+3]', '[a+1,-a+1,1,-17*a-32,72*a-7]']",) (u"['[0,-a+1,0,-34*a-33,95*a+63]', '[0,-a+1,0,6*a+7,7*a+7]']",) (u"['[a+1,0,0,-7*a+5,8*a-9]', '[a+1,0,0,148*a-200,880*a-1384]']",) (u"['[a+1,a,0,-4,-7*a-2]', '[a+1,a,0,-35*a-54,-238*a-211]', '[a+1,a,0,35*a-34,-84*a+119]', '[a+1,a,0,1,0]', '[a+1,a,0,-585*a-879,-12393*a-12091]', '[a+1,a,0,-45*a-29,-207*a-327]']",) (u"['[a,a,0,8*a-15,11*a+17]', '[a,a,0,3*a-195,847*a-500]']",) (u"['[a+1,-a,1,4*a-5,2*a-10]', '[a+1,-a,1,-a,0]', '[a+1,-a,1,194*a-515,2326*a-4858]']",) (u"['[a,-a+1,1,-6,-3*a]', '[a,-a+1,1,-45*a-11,-151*a-48]', '[a,-a+1,1,45*a-81,-171*a+276]', '[a,-a+1,1,-1,a-2]']",) (u"['[a+1,-a,a+1,3*a-10,9*a-19]', '[a+1,-a,a+1,-2*a,-a]']",) (u"['[1,a+1,0,-4*a-4,-13*a-9]', '[1,a+1,0,-89*a-64,-620*a-375]', '[1,a+1,0,a+1,0]', '[1,a+1,0,a-24,22*a-39]']",) (u"['[0,-a+1,0,-7*a-5,-9*a-6]', '[0,-a+1,0,-107*a-85,-701*a-410]', '[0,-a+1,0,13*a-5,-37*a-50]', '[0,-a+1,0,-2*a,a+1]']",) (u"['[0,-a-1,a,2*a-10,-13]', '[0,-a-1,a,2*a,-a]']",) (u"['[0,a-1,a+1,148*a-246,-1151*a+1868]', '[0,a-1,a+1,-2*a+4,-6*a+8]']",) (u"['[1,0,a+1,4*a-5,7*a-15]', '[1,0,a+1,-a,-a]']",) (u"['[a+1,a-1,1,-26*a-27,-133*a-62]', '[a+1,a-1,1,-501*a-302,-6803*a-4152]', '[a+1,a-1,1,49*a-152,-583*a+688]', '[a+1,a-1,1,-a-2,-3*a-2]', '[a+1,a-1,1,1374*a-2077,-28413*a+44928]', '[a+1,a-1,1,-76*a-227,447*a+1348]']",) (u"['[0,a+1,a,6*a-7,10*a-15]', '[0,a+1,a,436*a-707,5297*a-8596]']",) (u"['[a,-1,a,3*a-10,4*a-8]', '[a,-1,a,-2*a-50,-121*a+57]', '[a,-1,a,-2*a,a-1]', '[a,-1,a,88*a-130,401*a-661]']",) (u"['[1,a-1,0,-4*a+8,7*a-10]', '[1,a-1,0,a-2,0]']",) (u"['[a+1,-1,0,3*a-20,4*a-31]', '[a+1,-1,0,-2*a,a]']",) (u"['[a,0,1,4*a,2*a-6]', '[a,0,1,-a,0]', '[a,0,1,104*a-310,946*a-2218]']",) (u"['[a,a-1,a+1,-7*a-5,6*a+4]', '[a,a-1,a+1,3*a-10,12*a+31]', '[a,a-1,a+1,-2*a,-a-1]', '[a,a-1,a+1,-97*a-80,588*a+337]']",) (u"['[a+1,-a+1,1,-9*a-8,12*a+11]', '[a+1,-a+1,1,a-3,1]']",) (u"['[0,1,0,27*a-47,-79*a+127]', '[0,1,0,2*a-2,-a+2]', '[0,1,0,-13*a-167,-223*a-697]', '[0,1,0,-18*a+18,11*a-38]']",) (u"['[1,1,a,7*a-15,15*a-32]', '[1,1,a,-3*a,-2*a-3]']",) (u"['[a+1,a+1,1,-5*a-4,-8*a-3]', '[a+1,a+1,1,5*a+1,4*a+3]']",) (u"['[a+1,-a-1,1,-93*a-93,-525*a-394]', '[a+1,-a-1,1,-1443*a-1443,-37245*a-27934]', '[a+1,-a-1,1,7*a+7,-45*a-34]', '[a+1,-a-1,1,-343*a-343,3875*a+2906]', '[a+1,-a-1,1,-1668*a-1668,47355*a+35516]', '[a+1,-a-1,1,-2268*a-2268,10875*a+8156]', '[a+1,-a-1,1,-68*a-68,1275*a+956]', '[a+1,-a-1,1,-26668*a-26668,3007355*a+2255516]']",) (u"['[a+1,-a+1,0,-4,a-6]', '[a+1,-a+1,0,5*a-74,34*a-287]', '[a+1,-a+1,0,-5*a-14,12*a+11]', '[a+1,-a+1,0,1,0]']",) (u"['[a+1,-a+1,a,3*a-7,6]', '[a+1,-a+1,a,-2*a-2,a-1]']",) }}} {{{id=48| test=db('select N,cond,weq,isoclass,mtrx from curves ORDER BY N') /// }}} {{{id=49| A=str(test[0][4]).replace('\n','') /// }}} {{{id=51| A=A.replace('][',',') /// }}} {{{id=52| A='('+A.replace(' ',',')+')' /// }}} {{{id=57| len(eval(test[0][3])) /// 6 }}} {{{id=56| B=len(eval(test[0][3]));B /// 6 }}} {{{id=55| matrix(B,eval(A)) /// [0 2 3 3 0 0] [2 0 0 0 3 3] [3 0 0 0 0 2] [3 0 0 0 2 0] [0 3 0 2 0 0] [0 3 2 0 0 0] }}} {{{id=58| M=matrix(B,eval(A)) mat = "matrix(%s,%s)"%(M.nrows(),str(M.list()).replace(' ','')) /// }}} {{{id=62| db.curves.find_one(weq=test[0][2]) /// {u'mtrx': u'matrix(6,[0,2,3,3,0,0,2,0,0,0,3,3,3,0,0,0,0,2,3,0,0,0,2,0,0,3,0,2,0,0,0,3,2,0,0,0])', u'weq': u'[a+1,a-1,a+1,5*a-16,4*a-21]', u'cond': u'10*a-4', u'isoclass': u"['[a+1,a-1,a+1,5*a-16,4*a-21]', '[a+1,a-1,a+1,-35*a-56,-260*a-117]', '[a+1,a-1,a+1,-1,-a+1]', '[a+1,a-1,a+1,465*a-1316,8192*a-18821]', '[a+1,a-1,a+1,-3305*a-3646,-139218*a-109925]', '[a+1,a-1,a+1,10*a-21,-33*a+51]']", u'N': 124} }}} {{{id=60| mat /// 'matrix(6,[0,2,3,3,0,0,2,0,0,0,3,3,3,0,0,0,0,2,3,0,0,0,2,0,0,3,0,2,0,0,0,3,2,0,0,0])' }}} {{{id=61| for s in range(len(test)): A=str(test[s][4]).replace('\n','') A=A.replace('][',',') A='('+A.replace(' ',',')+')' B=len(eval(test[s][3])) M=matrix(B,eval(A)) mat = "matrix(%s,%s)"%(M.nrows(),str(M.list()).replace(' ','')) db.curves.update({'mtrx':mat},weq=test[s][2]) /// }}} {{{id=63| test=db('select N,cond,weq from curves ORDER BY N') /// }}} {{{id=46| J1=open('/home/psharaba/CLlistU.txt','w') for y in test: S=[] for entry in y: s=str(entry) s.replace(' ','') S.append(s) J1.write(' '.join(S)+'\n') /// WARNING: Output truncated! full_output.txt '124' '10*a-4' '[a+1,a-1,a+1,5*a-16,4*a-21]' '144' '12' '[0,-a+1,0,2*a+3,-13*a-9]' '145' '-11*a+8' '[0,a+1,a,-9*a-9,-31*a-23]' '179' '12*a-7' '[a+1,a-1,0,20*a-33,42*a-71]' '180' '12*a-6' '[1,0,1,-19,26]' '196' '14' '[1,0,1,4,-6]' '199' '-3*a+16' '[0,a+1,1,-9*a,-16*a-15]' '205' '-13*a+4' '[a+1,0,a,8*a+4,6*a+1]' '209' '-a-14' '[a+1,-a+1,a+1,-2*a-5,1]' '225' '15' '[a+1,a,a+1,-25*a-25,-119*a-83]' '239' 'a+15' '[1,-a,a,-6*a-5,-7*a-4]' '244' '14*a-6' '[a,-a+1,1,4*a-9,8*a-20]' '275' '15*a-10' '[a,a,a,332*a-536,-3529*a+5713]' '275' '-15*a+10' '[a+1,-a+1,a+1,-a-27,4*a-67]' '304' '-16*a+12' '[0,-1,0,9*a-16,13*a-24]' '320' '16*a-8' '[0,a-1,0,-4,-4*a+4]' '341' '-4*a+21' '[a,-1,0,4*a-4,-3*a+4]' '359' '17*a-10' '[0,1,a+1,-18*a-23,-67*a-57]' '361' '17*a-8' '[0,a+1,a+1,6*a-30,42*a-49]' '369' '3*a+18' ... '649' 'a+25' '[a+1,-a,a+1,3*a-10,9*a-19]' '649' '-23*a+15' '[1,a+1,0,-4*a-4,-13*a-9]' '704' '24*a-16' '[0,-a+1,0,-7*a-5,-9*a-6]' '719' '24*a-13' '[0,-a-1,a,2*a-10,-13]' '725' '5*a+25' '[0,a-1,a+1,148*a-246,-1151*a+1868]' '755' 'a+27' '[1,0,a+1,4*a-5,7*a-15]' '775' '25*a-10' '[a+1,a-1,1,-26*a-27,-133*a-62]' '779' '-2*a+29' '[0,a+1,a,6*a-7,10*a-15]' '781' '-5*a+31' '[a,-1,a,3*a-10,4*a-8]' '801' '3*a+27' '[1,a-1,0,-4*a+8,7*a-10]' '829' '-26*a+17' '[a+1,-1,0,3*a-20,4*a-31]' '836' '-2*a-28' '[a,0,1,4*a,2*a-6]' '855' '6*a-33' '[a,a-1,a+1,-7*a-5,6*a+4]' '869' 'a+29' '[a+1,-a+1,1,-9*a-8,12*a+11]' '880' '4*a+28' '[0,1,0,27*a-47,-79*a+127]' '899' '-27*a+10' '[1,1,a,7*a-15,15*a-32]' '899' '-5*a+33' '[a+1,a+1,1,-5*a-4,-8*a-3]' '900' '30' '[a+1,-a-1,1,-93*a-93,-525*a-394]' '905' '27*a-16' '[a+1,-a+1,0,-4,a-6]' '979' '-6*a-29' '[a+1,-a+1,a,3*a-7,6]' }}} {{{id=47| db.curves.columns() /// [u'found', u'weq', u'cond', u'N', u'isoclass', u'mtrx'] }}} {{{id=64| test=db('select N,cond,mtrx from curves ORDER BY N') /// }}} {{{id=65| eval(test[0][2]) /// '[a+1,a-1,a+1,5*a-16,4*a-21]' }}} {{{id=78| test=db('select N,cond,isoclass,mtrx,found from curves ORDER BY N') /// }}} {{{id=81| if test[ /// }}} {{{id=79| test[0][4]=='TF' /// True }}} {{{id=66| test2=[] for s in range(len(test)): A=eval(test[s][2]) for t in range(len(A)): if t==0: test2.append((test[s][0],test[s][1],A[t],test[s][3],test[s][4])) else: if test[s][4]=='TF': test2.append((test[s][0],test[s][1],A[t],test[s][3],'TFI')) else: test2.append((test[s][0],test[s][1],A[t],test[s][3],'QTI')) /// }}} {{{id=68| test2 /// [(145, u'11*a-8', '[18*a-28,-105*a+170,-105*a+170,0,0]', u'matrix(2,[0,7,7,0])', u'TF'), (145, u'11*a-8', '[0,0,a,-316749*a+512510,375402061*a-607413295]', u'matrix(2,[0,7,7,0])', 'TFI'), (199, u'-3*a+16', '[0,0,1,1652*a-2673,-38652*a+62540]', u'matrix(2,[0,5,5,0])', u'TF'), (199, u'-3*a+16', '[0,0,1,-9788*a+15837,18636*a-30154]', u'matrix(2,[0,5,5,0])', 'TFI'), (324, u'18', '[1,-1,a,-44*a-27,-215*a-133]', u'matrix(4,[0,2,5,0,2,0,0,5,5,0,0,2,0,5,2,0])', u'QT'), (324, u'18', '[1,-1,a,-764*a-477,-12005*a-7423]', u'matrix(4,[0,2,5,0,2,0,0,5,5,0,0,2,0,5,2,0])', 'QTI'), (324, u'18', '[1,-1,a,-404*a-252,22618*a+13988]', u'matrix(4,[0,2,5,0,2,0,0,5,5,0,0,2,0,5,2,0])', 'QTI'), (324, u'18', '[1,-1,a,-11924*a-7452,753274*a+465860]', u'matrix(4,[0,2,5,0,2,0,0,5,5,0,0,2,0,5,2,0])', 'QTI'), (396, u'18*a-6', '[a+1,0,1,-1103*a-682,20454*a+12641]', u'matrix(2,[0,3,3,0])', u'TF'), (396, u'18*a-6', '[a+1,0,1,-578*a-367,40656*a+25115]', u'matrix(2,[0,3,3,0])', 'TFI'), (396, u'18*a-12', '[1,0,1,21*a-40,-66*a+101]', u'matrix(2,[0,3,3,0])', u'TF'), (396, u'18*a-12', '[1,0,1,-189*a-145,-1788*a-823]', u'matrix(2,[0,3,3,0])', 'TFI'), (400, u'20', '[0,-a,0,-53*a-33,-126*a-78]', u'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])', u'QT'), (400, u'20', '[0,-a,0,-778*a-483,-12101*a-7478]', u'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])', 'QTI'), (400, u'20', '[0,-a,0,147*a+92,-1121*a-693]', u'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])', 'QTI'), (400, u'20', '[0,-a,0,-328*a-208,3524*a+2172]', u'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])', 'QTI'), (400, u'20', '[0,-a,0,-1653*a-1033,39754*a+24582]', u'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])', 'QTI'), (400, u'20', '[0,-a,0,-1778*a-1283,29379*a+19082]', u'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])', 'QTI'), (400, u'20', '[0,-a,0,-1453*a-908,49399*a+30547]', u'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])', 'QTI'), (400, u'20', '[0,-a,0,-26528*a-16408,2502004*a+1546332]', u'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])', 'QTI'), (404, u'18*a-8', '[1,-1,1,a,-20*a-12]', u'matrix(2,[0,5,5,0])', u'TF'), (404, u'18*a-8', '[1,-1,1,-3019*a-1900,-95396*a-59044]', u'matrix(2,[0,5,5,0])', 'TFI'), (405, u'18*a-9', '[a,-a-1,0,0,-40*a-25]', u'matrix(10,[0,2,0,0,0,0,0,0,0,0,2,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0])', u'QT'), (405, u'18*a-9', '[a,-a-1,0,-135*a-90,-832*a-520]', u'matrix(10,[0,2,0,0,0,0,0,0,0,0,2,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0])', 'QTI'), (405, u'18*a-9', '[a,-a-1,0,-2160*a-1440,-58072*a-36295]', u'matrix(10,[0,2,0,0,0,0,0,0,0,0,2,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0])', 'QTI'), (405, u'18*a-9', '[a,-a-1,0,-270*a-180,1400*a+875]', u'matrix(10,[0,2,0,0,0,0,0,0,0,0,2,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0])', 'QTI'), (405, u'18*a-9', '[a,-a-1,0,945*a+630,8528*a+5330]', u'matrix(10,[0,2,0,0,0,0,0,0,0,0,2,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0])', 'QTI'), (405, u'18*a-9', '[a,-a-1,0,-3645*a-2430,132800*a+83000]', u'matrix(10,[0,2,0,0,0,0,0,0,0,0,2,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0])', 'QTI'), (405, u'18*a-9', '[a,-a-1,0,-2970*a-1980,182120*a+113825]', u'matrix(10,[0,2,0,0,0,0,0,0,0,0,2,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0])', 'QTI'), (405, u'18*a-9', '[a,-a-1,0,-58320*a-38880,8385080*a+5240675]', u'matrix(10,[0,2,0,0,0,0,0,0,0,0,2,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0])', 'QTI'), (405, u'18*a-9', '[a,-a-1,0,-39285*a-69660,6747746*a+7895612]', u'matrix(10,[0,2,0,0,0,0,0,0,0,0,2,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0])', 'QTI'), (405, u'18*a-9', '[a,-a-1,0,-952155*a-591300,536418734*a+331583438]', u'matrix(10,[0,2,0,0,0,0,0,0,0,0,2,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0])', 'QTI'), (431, u'-19*a+5', '[0,a+1,a+1,-226*a-140,1772*a+1095]', u'matrix(2,[0,3,3,0])', u'TF'), (431, u'-19*a+5', '[0,a+1,a+1,-196*a-150,2127*a+1251]', u'matrix(2,[0,3,3,0])', 'TFI'), (431, u'-19*a+14', '[0,1,a,32*a-54,-100*a+159]', u'matrix(2,[0,3,3,0])', u'TF'), (431, u'-19*a+14', '[0,1,a,-58*a-104,-627*a-126]', u'matrix(2,[0,3,3,0])', 'TFI'), (464, u'4*a+20', '[0,0,0,-17*a-12,-43*a-26]', u'matrix(2,[0,2,2,0])', u'TF'), (464, u'4*a+20', '[0,0,0,-7*a-27,-64*a+2]', u'matrix(2,[0,2,2,0])', 'TFI'), (484, u'22', '[a+1,-a+1,0,308*a-498,-2948*a+4770]', u'matrix(3,[0,5,0,5,0,5,0,5,0])', u'TF'), (484, u'22', '[a+1,-a+1,0,-2167*a+3507,31492*a-50955]', u'matrix(3,[0,5,0,5,0,5,0,5,0])', 'TFI'), (484, u'22', '[a+1,-a+1,0,333608*a-539838,111099988*a-179763708]', u'matrix(3,[0,5,0,5,0,5,0,5,0])', 'TFI'), (605, u'-4*a+27', '[a+1,-1,a,-54*a-33,-63*a-39]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', u'QT'), (605, u'-4*a+27', '[a+1,-1,a,-649*a-403,-9658*a-5967]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', 'QTI'), (605, u'-4*a+27', '[a+1,-1,a,-2579*a-1593,74712*a+46173]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', 'QTI'), (605, u'-4*a+27', '[a+1,-1,a,-10379*a-6418,-611116*a-377690]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', 'QTI'), (605, u'-4*a+27', '[a+1,-1,a,-439*a-308,-15460*a-9456]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', 'QTI'), (605, u'-4*a+27', '[a+1,-1,a,-2659*a-1658,69344*a+42840]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', 'QTI'), (605, u'-4*a+27', '[a+1,-1,a,-10614*a-6798,-568593*a-352752]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', 'QTI'), (605, u'-4*a+27', '[a+1,-1,a,4016*a+2442,364829*a+225560]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', 'QTI'), (605, u'4*a+23', '[a+1,a-1,a,7*a-12,-a+2]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', u'QT'), (605, u'4*a+23', '[a+1,a-1,a,87*a-157,485*a-773]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', 'QTI'), (605, u'4*a+23', '[a+1,a-1,a,377*a-607,-4405*a+7107]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', 'QTI'), (605, u'4*a+23', '[a+1,a-1,a,-48*a-177,1428*a-947]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', 'QTI'), (605, u'4*a+23', '[a+1,a-1,a,1502*a-2457,33106*a-53599]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', 'QTI'), (605, u'4*a+23', '[a+1,a-1,a,342*a-657,-4314*a+6511]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', 'QTI'), (605, u'4*a+23', '[a+1,a-1,a,-708*a+868,-19504*a+32606]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', 'QTI'), (605, u'4*a+23', '[a+1,a-1,a,832*a-2982,18800*a-57148]', u'matrix(8,[0,2,3,0,0,0,0,0,2,0,0,2,2,3,0,0,3,0,0,0,0,2,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,3,2,0,0,0,2,2,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0])', 'QTI'), (639, u'3*a-27', '[24*a-38,-165*a+267,-165*a+267,0,0]', u'matrix(2,[0,7,7,0])', u'TF'), (639, u'3*a-27', '[0,1,a+1,-1098348*a+1777163,1530470361*a-2476353066]', u'matrix(2,[0,7,7,0])', 'TFI'), (704, u'24*a-8', '[0,-a-1,0,8*a-12,11*a-18]', u'matrix(2,[0,2,2,0])', u'TF'), (704, u'24*a-8', '[0,-a-1,0,-2*a-17,3*a-27]', u'matrix(2,[0,2,2,0])', 'TFI'), (725, u'5*a+25', '[0,a,a+1,-223*a-138,-2071*a-1280]', u'matrix(1,[0])', u'QT'), (725, u'-5*a+30', '[0,a,a,-43*a-28,-203*a-126]', u'matrix(1,[0])', u'QT'), (725, u'-5*a+30', '[0,0,a,112510*a-182045,21727126*a-35155229]', u'matrix(2,[0,7,7,0])', u'QT'), (725, u'-5*a+30', '[0,0,a,-604940*a+978805,-990806249*a+1603158196]', u'matrix(2,[0,7,7,0])', 'QTI'), (775, u'25*a-10', '[1,a+1,0,-13*a-13,216*a+128]', u'matrix(4,[0,2,0,0,2,0,2,2,0,2,0,0,0,2,0,0])', u'QT'), (775, u'25*a-10', '[1,a+1,0,-538*a-338,6711*a+4143]', u'matrix(4,[0,2,0,0,2,0,2,2,0,2,0,0,0,2,0,0])', 'QTI'), (775, u'25*a-10', '[1,a+1,0,-813*a-538,-2134*a-1247]', u'matrix(4,[0,2,0,0,2,0,2,2,0,2,0,0,0,2,0,0])', 'QTI'), (775, u'25*a-10', '[1,a+1,0,-8663*a-5338,455336*a+281393]', u'matrix(4,[0,2,0,0,2,0,2,2,0,2,0,0,0,2,0,0])', 'QTI'), (775, u'25*a-15', '[1,-a,1,-734*a-454,-11114*a-6869]', u'matrix(4,[0,2,0,0,2,0,2,2,0,2,0,0,0,2,0,0])', u'QT'), (775, u'25*a-15', '[1,-a,1,-809*a-504,-8544*a-5279]', u'matrix(4,[0,2,0,0,2,0,2,2,0,2,0,0,0,2,0,0])', 'QTI'), (775, u'25*a-15', '[1,-a,1,2316*a+1371,-61794*a-38029]', u'matrix(4,[0,2,0,0,2,0,2,2,0,2,0,0,0,2,0,0])', 'QTI'), (775, u'25*a-15', '[1,-a,1,-5134*a-3179,207486*a+128231]', u'matrix(4,[0,2,0,0,2,0,2,2,0,2,0,0,0,2,0,0])', 'QTI'), (775, u'25*a-10', '[0,-a,a,-133*a-83,-820*a-507]', u'matrix(1,[0])', u'QT'), (775, u'25*a-15', '[0,-a,a+1,-133*a-83,242*a+149]', u'matrix(1,[0])', u'QT'), (784, u'28', '[0,0,0,-16*a-16,44*a+33]', u'matrix(4,[0,2,2,2,2,0,0,0,2,0,0,0,2,0,0,0])', u'TF'), (784, u'28', '[0,0,0,19*a-86,-152*a+278]', u'matrix(4,[0,2,2,2,2,0,0,0,2,0,0,0,2,0,0,0])', 'TFI'), (784, u'28', '[0,0,0,-11*a-11,72*a+54]', u'matrix(4,[0,2,2,2,2,0,0,0,2,0,0,0,2,0,0,0])', 'TFI'), (784, u'28', '[0,0,0,-296*a-191,2984*a+1846]', u'matrix(4,[0,2,2,2,2,0,0,0,2,0,0,0,2,0,0,0])', 'TFI'), (829, u'-26*a+9', '[a,0,a+1,-3*a-5,5*a-3]', u'matrix(2,[0,3,3,0])', u'TF'), (829, u'-26*a+9', '[a,0,a+1,162*a-270,1236*a-1990]', u'matrix(2,[0,3,3,0])', 'TFI'), (836, u'-26*a+10', '[1,0,0,121*a-211,619*a-1006]', u'matrix(6,[0,2,3,3,0,0,2,0,0,0,3,3,3,0,0,0,2,0,3,0,0,0,0,2,0,3,2,0,0,0,0,3,0,2,0,0])', u'TF'), (836, u'-26*a+10', '[1,0,0,761*a-1171,-10901*a+17618]', u'matrix(6,[0,2,3,3,0,0,2,0,0,0,3,3,3,0,0,0,2,0,3,0,0,0,0,2,0,3,2,0,0,0,0,3,0,2,0,0])', 'TFI'), (836, u'-26*a+10', '[1,0,0,41*a-76,-167*a+281]', u'matrix(6,[0,2,3,3,0,0,2,0,0,0,3,3,3,0,0,0,2,0,3,0,0,0,0,2,0,3,2,0,0,0,0,3,0,2,0,0])', 'TFI'), (836, u'-26*a+10', '[1,0,0,9161*a-15731,534651*a-875694]', u'matrix(6,[0,2,3,3,0,0,2,0,0,0,3,3,3,0,0,0,2,0,3,0,0,0,0,2,0,3,2,0,0,0,0,3,0,2,0,0])', 'TFI'), (836, u'-26*a+10', '[1,0,0,721*a-1176,-11175*a+18093]', u'matrix(6,[0,2,3,3,0,0,2,0,0,0,3,3,3,0,0,0,2,0,3,0,0,0,0,2,0,3,2,0,0,0,0,3,0,2,0,0])', 'TFI'), (836, u'-26*a+10', '[1,0,0,9181*a-15751,532807*a-873010]', u'matrix(6,[0,2,3,3,0,0,2,0,0,0,3,3,3,0,0,0,2,0,3,0,0,0,0,2,0,3,2,0,0,0,0,3,0,2,0,0])', 'TFI'), (836, u'-26*a+16', '[a,-a+1,0,202*a-329,-1553*a+2514]', u'matrix(6,[0,2,3,0,0,0,2,0,0,3,0,0,3,0,0,2,3,0,0,3,2,0,0,3,0,0,3,0,0,2,0,0,0,3,2,0])', u'TF'), (836, u'-26*a+16', '[a,-a+1,0,182*a-329,-1617*a+2694]', u'matrix(6,[0,2,3,0,0,0,2,0,0,3,0,0,3,0,0,2,3,0,0,3,2,0,0,3,0,0,3,0,0,2,0,0,0,3,2,0])', 'TFI'), (836, u'-26*a+16', '[a,-a+1,0,317*a-519,637*a-1035]', u'matrix(6,[0,2,3,0,0,0,2,0,0,3,0,0,3,0,0,2,3,0,0,3,2,0,0,3,0,0,3,0,0,2,0,0,0,3,2,0])', 'TFI'), (836, u'-26*a+16', '[a,-a+1,0,-1283*a+2041,2941*a-4683]', u'matrix(6,[0,2,3,0,0,0,2,0,0,3,0,0,3,0,0,2,3,0,0,3,2,0,0,3,0,0,3,0,0,2,0,0,0,3,2,0])', 'TFI'), (836, u'-26*a+16', '[a,-a+1,0,18877*a-30999,1526253*a-2473275]', u'matrix(6,[0,2,3,0,0,0,2,0,0,3,0,0,3,0,0,2,3,0,0,3,2,0,0,3,0,0,3,0,0,2,0,0,0,3,2,0])', 'TFI'), (836, u'-26*a+16', '[a,-a+1,0,18617*a-30579,1569409*a-2543091]', u'matrix(6,[0,2,3,0,0,0,2,0,0,3,0,0,3,0,0,2,3,0,0,3,2,0,0,3,0,0,3,0,0,2,0,0,0,3,2,0])', 'TFI'), (836, u'2*a-30', '[a,a-1,a+1,9*a+3,-17*a-6]', u'matrix(2,[0,5,5,0])', u'TF'), (836, u'2*a-30', '[a,a-1,a+1,-2016*a-1257,-53012*a-33006]', u'matrix(2,[0,5,5,0])', 'TFI'), (891, u'27*a-18', '[a+1,1,a+1,27*a+17,27*a+17]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', u'QT'), (891, u'27*a-18', '[a+1,1,a+1,-108*a-73,-81*a-46]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', 'QTI'), (891, u'27*a-18', '[a+1,1,a+1,-1188*a-748,-24732*a-15301]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', 'QTI'), (891, u'27*a-18', '[a+1,1,a+1,-1188*a-838,23598*a+14957]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', 'QTI'), (891, u'27*a-18', '[a+1,1,a+1,27*a-1648,33804*a+46466]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', 'QTI'), (891, u'27*a-18', '[a+1,1,a+1,-19683*a-12268,1576908*a+974960]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', 'QTI'), (891, u'27*a-9', '[1,-1,1,1,43*a+26]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', u'QT'), (891, u'27*a-9', '[1,-1,1,-135*a-89,943*a+584]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', 'QTI'), (891, u'27*a-9', '[1,-1,1,-270*a-224,-1433*a-1036]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', 'QTI'), (891, u'27*a-9', '[1,-1,1,-2160*a-1394,59299*a+36836]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', 'QTI'), (891, u'27*a-9', '[1,-1,1,-1755*a-2024,54961*a+45278]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', 'QTI'), (891, u'27*a-9', '[1,-1,1,-34965*a-21644,3774121*a+2332862]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', 'QTI'), (895, u'2*a+29', '[0,-1,a,-108*a-67,684*a+423]', u'matrix(2,[0,3,3,0])', u'TF'), (895, u'2*a+29', '[0,-1,a,-148*a-87,205*a+124]', u'matrix(2,[0,3,3,0])', 'TFI'), (961, u'-5*a-29', '[a+1,-a,0,7*a-23,-24*a+20]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', u'QT'), (961, u'-5*a-29', '[a+1,-a,0,-18*a-168,-140*a-845]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', 'QTI'), (961, u'-5*a-29', '[a+1,-a,0,-1453*a-803,-29280*a-20902]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', 'QTI'), (961, u'-5*a-29', '[a+1,-a,0,1017*a-1853,21096*a-35088]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', 'QTI'), (961, u'-5*a-29', '[a+1,-a,0,652*a-2048,27054*a-32629]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', 'QTI'), (961, u'-5*a-29', '[a+1,-a,0,17942*a-28618,1363362*a-2211479]', u'matrix(6,[0,2,0,0,0,0,2,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0])', 'QTI'), (961, u'-5*a-29', '[0,-a,1,-42*a-53,-192*a-140]', u'matrix(1,[0])', u'QT')] }}} {{{id=44| J=open('/home/psharaba/CLIsogenies.txt','w') for y in test2: S=[] for entry in y: s=str(entry) s.replace(' ','') S.append(s) J.write(' '.join(S)+'\n') /// WARNING: Output truncated! full_output.txt '124' '10*a-4' '[a+1,a-1,a+1,5*a-16,4*a-21]' 'matrix(6,[0,2,3,3,0,0,2,0,0,0,3,3,3,0,0,0,0,2,3,0,0,0,2,0,0,3,0,2,0,0,0,3,2,0,0,0])' '124' '10*a-4' '[a+1,a-1,a+1,-35*a-56,-260*a-117]' 'matrix(6,[0,2,3,3,0,0,2,0,0,0,3,3,3,0,0,0,0,2,3,0,0,0,2,0,0,3,0,2,0,0,0,3,2,0,0,0])' '124' '10*a-4' '[a+1,a-1,a+1,-1,-a+1]' 'matrix(6,[0,2,3,3,0,0,2,0,0,0,3,3,3,0,0,0,0,2,3,0,0,0,2,0,0,3,0,2,0,0,0,3,2,0,0,0])' '124' '10*a-4' '[a+1,a-1,a+1,465*a-1316,8192*a-18821]' 'matrix(6,[0,2,3,3,0,0,2,0,0,0,3,3,3,0,0,0,0,2,3,0,0,0,2,0,0,3,0,2,0,0,0,3,2,0,0,0])' '124' '10*a-4' '[a+1,a-1,a+1,-3305*a-3646,-139218*a-109925]' 'matrix(6,[0,2,3,3,0,0,2,0,0,0,3,3,3,0,0,0,0,2,3,0,0,0,2,0,0,3,0,2,0,0,0,3,2,0,0,0])' '124' '10*a-4' '[a+1,a-1,a+1,10*a-21,-33*a+51]' 'matrix(6,[0,2,3,3,0,0,2,0,0,0,3,3,3,0,0,0,0,2,3,0,0,0,2,0,0,3,0,2,0,0,0,3,2,0,0,0])' '144' '12' '[0,-a+1,0,2*a+3,-13*a-9]' 'matrix(4,[0,2,0,0,2,0,2,2,0,2,0,0,0,2,0,0])' '144' '12' '[0,-a+1,0,-3*a-2,-2*a-2]' 'matrix(4,[0,2,0,0,2,0,2,2,0,2,0,0,0,2,0,0])' '144' '12' '[0,-a+1,0,-48*a-32,-188*a-116]' 'matrix(4,[0,2,0,0,2,0,2,2,0,2,0,0,0,2,0,0])' '144' '12' '[0,-a+1,0,-3*a-17,31*a-14]' 'matrix(4,[0,2,0,0,2,0,2,2,0,2,0,0,0,2,0,0])' '145' '-11*a+8' '[0,a+1,a,-9*a-9,-31*a-23]' 'matrix(2,[0,3,3,0])' '145' '-11*a+8' '[0,a+1,a,a+1,0]' 'matrix(2,[0,3,3,0])' '179' '12*a-7' '[a+1,a-1,0,20*a-33,42*a-71]' 'matrix(2,[0,3,3,0])' '179' '12*a-7' '[a+1,a-1,0,2,a-1]' 'matrix(2,[0,3,3,0])' '180' '12*a-6' '[1,0,1,-19,26]' ... '899' '-5*a+33' '[a+1,a+1,1,5*a+1,4*a+3]' 'matrix(2,[0,2,2,0])' '900' '30' '[a+1,-a-1,1,-93*a-93,-525*a-394]' 'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])' '900' '30' '[a+1,-a-1,1,-1443*a-1443,-37245*a-27934]' 'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])' '900' '30' '[a+1,-a-1,1,7*a+7,-45*a-34]' 'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])' '900' '30' '[a+1,-a-1,1,-343*a-343,3875*a+2906]' 'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])' '900' '30' '[a+1,-a-1,1,-1668*a-1668,47355*a+35516]' 'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])' '900' '30' '[a+1,-a-1,1,-2268*a-2268,10875*a+8156]' 'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])' '900' '30' '[a+1,-a-1,1,-68*a-68,1275*a+956]' 'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])' '900' '30' '[a+1,-a-1,1,-26668*a-26668,3007355*a+2255516]' 'matrix(8,[0,2,2,2,3,0,0,0,2,0,0,0,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,3,0,0,0,0,2,2,2,0,3,0,0,2,0,0,0,0,0,3,0,2,0,0,0,0,0,0,3,2,0,0,0])' '905' '27*a-16' '[a+1,-a+1,0,-4,a-6]' 'matrix(4,[0,2,2,2,2,0,0,0,2,0,0,0,2,0,0,0])' '905' '27*a-16' '[a+1,-a+1,0,5*a-74,34*a-287]' 'matrix(4,[0,2,2,2,2,0,0,0,2,0,0,0,2,0,0,0])' '905' '27*a-16' '[a+1,-a+1,0,-5*a-14,12*a+11]' 'matrix(4,[0,2,2,2,2,0,0,0,2,0,0,0,2,0,0,0])' '905' '27*a-16' '[a+1,-a+1,0,1,0]' 'matrix(4,[0,2,2,2,2,0,0,0,2,0,0,0,2,0,0,0])' '979' '-6*a-29' '[a+1,-a+1,a,3*a-7,6]' 'matrix(2,[0,2,2,0])' '979' '-6*a-29' '[a+1,-a+1,a,-2*a-2,a-1]' 'matrix(2,[0,2,2,0])' }}} {{{id=70| def f_height(ainv): E=EllipticCurve(K,ainv) phi1=K.embeddings(RR)[0] A1=E.period_lattice(phi1).basis() B1=sqrt(matrix(2,2,(A1[0].real(),A1[0].imag(),A1[1].real(),A1[1].imag())).determinant()) phi2=K.embeddings(RR)[1] A2=E.period_lattice(phi2).basis() B2=sqrt(matrix(2,2,(A2[0].real(),A2[0].imag(),A2[1].real(),A2[1].imag())).determinant()) C=(-1/2)*log(B1*B2) return C def n_height(E): A=EllipticCurve(K,E).short_weierstrass_model().a_invariants() B=log(max(4*(abs(A[3].norm())^3),27*((A[4].norm())^2))) return B /// }}} {{{id=74| c = db.N1k X=db('select ainv1 from N1k WHERE Lstar=100 ORDER BY N,eta') @parallel(8) def comp(ainv): E=EllipticCurve(K,eval(ainv)) E=canonical_model(E.global_minimal_model()) F=EllipticCurve(K,list(E.short_weierstrass_model().a_invariants())) v=F.lseries().dokchitser() f=v.taylor_series(1,6) r_an=0 while abs(f[r_an])<1e-10: r_an += 1 if r_an == 6: raise RuntimeError Lstar=float(f[r_an]) d = {'Lstar':Lstar} c.update(d, ainv1=ainv) print d for s in range(len(X)): A=X[s][0] comp(A) print A /// }}} {{{id=73| /// }}} {{{id=72| /// }}} {{{id=71| /// }}} {{{id=45| def printer(): J=open('/home/psharaba/QTFList.txt','w') for y in test2: S=[] for entry in y: s=str(entry) #s.replace(' ','') S.append(s) J.write(' '.join(S)+'\n') /// }}} {{{id=67| printer() /// }}} {{{id=69| f=open('/home/psharaba/QTFList.txt') /// }}} {{{id=82| f.readline().split() /// ['145', '11*a-8', '[18*a-28,-105*a+170,-105*a+170,0,0]', 'matrix(2,[0,7,7,0])', 'TF'] }}} {{{id=83| /// }}}