Path: blob/main/scripts/hmf/hmf-dump-fldpoly.sage
1457 views
'''1script written just for use at June 2017 LMFDB workshop at Warwick. Output is text files including:2label, AL eigenvalues, AL fixed, base change, CM, with a_PP for bad primes appended.3'''4from pymongo.mongo_client import MongoClient5import pymongo6C = MongoClient(port=int(37010))7C['admin'].authenticate('lmfdb','lmfdb') # for read access.8hmfs = C.hmfs9fields = hmfs.fields10#fieldlabels = fields.distinct('label')11fields = C.numberfields.fields1213def clean(A):14st = str(A)15return st.replace(' ','').replace('u\'','').replace('\'','')16fieldlabels = [17'4.4.1600.1',18'4.4.2304.1',19'4.4.4225.1',20'4.4.7056.1',21'4.4.7168.1',22'4.4.7225.1',23'4.4.9248.1',24'4.4.11025.1',25'4.4.12400.1',26'4.4.12544.1',27'4.4.13824.1',28'4.4.14336.1',29'4.4.17424.1',30'5.5.180769.1',31'6.6.1134389.1',32'4.4.19600.1',33'6.6.1528713.1',34'6.6.905177.1'35]36for Flabel in fieldlabels:37# sample Flabel 4.4.16448.238query = {'label':Flabel}39coeffs = '['+fields.find_one(query)['coeffs']+']'40#sage: fields.find_one()['coeffs']41#u'-2625040,6270,0,1'42K = NumberField(PolynomialRing(QQ,'x')(sage_eval(coeffs)),'w')43vars = {'w':K.0}44degree = Flabel.split('.')[0]45assert degree == str(K.degree())46with open('data/'+degree+'/'+Flabel+'-extra.txt','r') as infile:47with open('data/'+degree+'/'+Flabel+'-extra-plus.txt','w') as outfile:48for line in infile:49# sample 3.3.1016.1-2.1-a:[2,2,w]:no:no:[[[2,2,w],-1]]:done50Ndata = sage_eval(line.split(':')[1].replace('^','**'), locals = vars)51N = K.ideal(Ndata)52ALdata_list = sage_eval(line.split(':')[4].replace('^','**'), locals = vars)53change_ap = []54for ALdata in ALdata_list:55pp = K.ideal(ALdata[0])56if N.valuation(pp) == 1:57# Need to change a_pp !!!58# should be (-1)*AL_eval59change_ap.append([ALdata[0],-ALdata[1]])60alldata = [line.rstrip()] + [clean(a) for a in change_ap]61newdata = ':'.join(alldata)62outfile.write(newdata+'\n')636465