Path: blob/main/scripts/hmf/recompute_Galois_squarefull_forms.py
1457 views
# -*- coding: utf-8 -*-12import os.path3import sage.misc.preparser4from sage.interfaces.magma import magma56from lmfdb.base import getDBConnection7C = getDBConnection()8C['admin'].authenticate('lmfdb', 'lmfdb') # read-only910import yaml11pw_dict = yaml.load(open(os.path.join(os.getcwd(), os.extsep, os.extsep, os.extsep, "passwords.yaml")))12username = pw_dict['data']['username']13password = pw_dict['data']['password']14C['hmfs'].authenticate(username, password)15hmf_forms = C.hmfs.forms16hmf_fields = C.hmfs.fields17fields = C.numberfields.fields1819P = sage.rings.polynomial.polynomial_ring_constructor.PolynomialRing(sage.rings.rational_field.RationalField(), 3, ['w', 'e', 'x'])20w, e, x = P.gens()212223def find_Galois_squarefull_forms():24forms_labels = []25for F in hmf_fields.find():26Fcoeff = fields.find_one({'label' : F['label']})['coeffs']27magma.eval('F<w> := NumberField(Polynomial([' + str(Fcoeff) + ']));')28if magma('IsNormal(F) and Degree(F) mod 2 eq 1;'):29magma.eval('ZF := Integers(F);')30for f in hmf_forms.find({'field_label' : F['label']}):31magma.eval('NN := ideal<ZF | SequenceToSet(' + f['level_ideal'] + ')>;')32if magma('Min([2] cat [ff[2] : ff in Factorization(NN)]) ge 2;'):33forms_labels.append(f['label'])34print(f['label'])35return forms_labels363738