Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
AndrewVSutherland
GitHub Repository: AndrewVSutherland/lmfdb
Path: blob/main/scripts/hmf/recompute_Galois_squarefull_forms.py
1457 views
1
# -*- coding: utf-8 -*-
2
3
import os.path
4
import sage.misc.preparser
5
from sage.interfaces.magma import magma
6
7
from lmfdb.base import getDBConnection
8
C = getDBConnection()
9
C['admin'].authenticate('lmfdb', 'lmfdb') # read-only
10
11
import yaml
12
pw_dict = yaml.load(open(os.path.join(os.getcwd(), os.extsep, os.extsep, os.extsep, "passwords.yaml")))
13
username = pw_dict['data']['username']
14
password = pw_dict['data']['password']
15
C['hmfs'].authenticate(username, password)
16
hmf_forms = C.hmfs.forms
17
hmf_fields = C.hmfs.fields
18
fields = C.numberfields.fields
19
20
P = sage.rings.polynomial.polynomial_ring_constructor.PolynomialRing(sage.rings.rational_field.RationalField(), 3, ['w', 'e', 'x'])
21
w, e, x = P.gens()
22
23
24
def find_Galois_squarefull_forms():
25
forms_labels = []
26
for F in hmf_fields.find():
27
Fcoeff = fields.find_one({'label' : F['label']})['coeffs']
28
magma.eval('F<w> := NumberField(Polynomial([' + str(Fcoeff) + ']));')
29
if magma('IsNormal(F) and Degree(F) mod 2 eq 1;'):
30
magma.eval('ZF := Integers(F);')
31
for f in hmf_forms.find({'field_label' : F['label']}):
32
magma.eval('NN := ideal<ZF | SequenceToSet(' + f['level_ideal'] + ')>;')
33
if magma('Min([2] cat [ff[2] : ff in Factorization(NN)]) ge 2;'):
34
forms_labels.append(f['label'])
35
print(f['label'])
36
return forms_labels
37
38