Path: blob/main/scripts/classical_modular_forms/populate_trace_hash_Lfunctions.py
1448 views
1import sys, os2sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)),"../.."))3from lmfdb.db_backend import db45678def upsert_trace_hash(id_number):9newform = db.mf_newforms.lucky({'id':id_number}, projection=['label','trace_hash','dim','weight'])10if newform is None or newform['dim'] > 81 or newform['weight'] == 1:11return12if 'trace_hash' not in newform:13assert newform['dim'] > 2014newform['trace_hash'] = None15base_url = "ModularForm/GL2/Q/holomorphic/" + newform['label'].replace(".","/")16trace_hash = newform['trace_hash']17Lhash = db.lfunc_instances.lucky({'url': base_url}, projection='Lhash')18assert Lhash is not None19db.lfunc_lfunctions.upsert({'Lhash': Lhash}, {'trace_hash' : trace_hash})2021import sys22if len(sys.argv) == 3:23bound = db.mf_newforms.max_id()24k = int(sys.argv[1])25start = int(sys.argv[2])26assert k > start27ids = list(range(start, bound + 1, k))28for i in ids:29upsert_trace_hash(i)30else:31print(r"""Usage:32You should run this on legendre as: (this will use 40 cores):33# parallel -u -j 40 --halt 2 --progress sage -python %s 40 ::: {0..39}""" % sys.argv[0])343536