Skip to content

Latest commit

 

History

History
146 lines (97 loc) · 7.23 KB

db-numberfields.md

File metadata and controls

146 lines (97 loc) · 7.23 KB

Database numberfields

Description Number fields
Status production
Contact John Jones
Code number_fields
Collections fields, fields.rand, stats

Todo:

  • Add more data on siblings
  • Possibly add narrow class groups
  • Possibly add more class group/unit information

Collection fields

  • _id: ObjectId generated by Mongo DB (includes creation timestamp)

    Example: ObjectId('4fac7fa90eb55b6ff200002f')

  • label (string): LMFDB label, formed by joining the degree, number of real places, absolute discriminant, and index with ".". The index is a counter to distinguish fields which would otherwise have the same label

    Example: '11.1.52713545163946191360000000000.1'

  • degree (int): degree of the field over Q

    Example: 11

  • coeffs (list of ints as string): coefficients of our defining polynomial starting with the constant term.

    Example: '-3,0,1'

  • coeffhash (string): output of hexdigest applied to coeffs -- it can be used as an index for coefficient lookup (coeffs can be too long)

    Example: 'c187070bd71b8ab0a64176f5bc999046'

  • disc_abs_key (string of digits): the absolute discriminant prepended by 3 digits which give the number of digits minus one, as a string. This is because discriminants get too big to store as ints, but we want to be able to sort on them

    Example: 02852713545163946191360000000000

  • disc_sign (int): 1 or -1 depending on the sign of the discriminant

    Example: 1

  • dischash (int): integer to be used for indexing discriminants when the disc_abs_key gets to be too long. Code to compute it is below

    Example: -285271354516394619

  • signature (list of ints as string): signature (r_1, r_2) of the field stored as r_1,r_2

    Example: '1,5'

  • ramps (list of ints as strings): the ramified primes in a list. Stored as strings because they may be too big

    Example: ['2', '3', '5', '11']

  • ramps_all (list of ints as string): the list of ramified primes, separated by commas, as a single string

    Example: '2,3,5,11'

  • galois (bson pair of integers): stores (n,t) where n is the degree and t is the t-number of the Galois group. bson structure is like a python dict. Works better for indexing than a list. Must be reencoded whenever a database entry is updated

    Example: {'n': 11, 't': 8}

  • zk (list of strings): an integral basis in terms of 'a', a root of the defining polynomial

    Example: ['1','a','1/3a^2','1/9a^3','1/27a^4','1/81a^5','1/81a^6','1/243a^7','1/729a^8','1/2187a^9','1/13122*a^10']

Optional fields

  • reduced (int 0 or 1): 1 if the polynomial is the output of polredabs, otherwise 0. If not present, assume 1

    Example: 1

  • class_number (int): class number

    Example: 8

  • class_group (list of integers as string): invariant factors for the class group, in descending order

    Example: '4,2'

  • units (list of latex strings): list of generators of the units modulo torsion, stored as latex ready strings. If there is no class number, assume units are too hard to compute. If there is a class number but no units, units can be computed on the fly

    Example: '\( \frac{31638929986556713906387419624924061291280938773945071}{3} a^{2} + 359196363271711287724533550734596540399636025857543545 a + \frac{8691254239667400643787765894631631739446478482481677573}{3} \)'

  • used_grh (boolean): True if class group/unit computation assumed GRH. If missing, assume false

    Example: True

  • reg (float): regulator, computed if we have fundamental units

    Example: 3.2345

  • subs (list): List of subfields, each represented as a pair [coefs, mult]. The coefficients are of a polredabs'ed polynomial for the subfield stored as a string, and mult is the multiplicity of the subfield (since representing a field by a polynomial only gives it up to isomorphism).

    Example: [['1,0,1', 2], ['6,-2,1,0,1', 1]]

  • unitsGmodule (list of pairs of integers): in some cases we have data on the units modulo torsion as an integral Galois module. In each pair, the first coordinate is an index to the database of integral representations of the finite group, and the second is the multiplicity with which this representation appears.

    Example: [[3, 1]]

  • res (dictionary): Resolvent information. Currently, only certain types of siblings are represented. Each key is a type and the value is a list of coefficients of polredabs'ed polynomials. The types are 'gal' for Galois closure, 'ae' for arithmetically equivalent field, 'sex' for twin sextic algebra (for degree 6 fields only), and 'sib' for other siblings.

    Example: {u'sib': ['-4,1,2,-7,6,-3,1', '1,0,-1,-1,-1,0,1', '183,-217,111,-28,35,-14,4,0,1']}

  • oldpolredabscoeffs (list of ints as string): polredabs changed its definition. We store the current one, but sage produces the old version. If they are different, we store the old coefficients here so we can search on them.

    Example: '-3,0,1'

  • oldpolredabscoeffhash (string): output of hexdigest applied to oldpolredabscoeffscoeffs -- it can be used as an index for coefficient lookup (coeffs can be too long)

    Example: 'c187070bd71b8ab0a64176f5bc999046'

The dischash is computed as follows, assuming the disc_abs_key is stored as d

  • if length of d is less than 19, set the hash equal to d, otherwise use the first 19 characters
  • multiply the result by the sign of the discriminant

Index information for collection fields

  • {'_id': 1}: created by mongodb
  • {'class_group':1}: class group
  • {'class_number': 1}: class number
  • {'coeffhash': 1}:
  • {'degree': 1, 'disc_abs_key':1, 'disc_sign':1}:
  • {'degree': 1, 'ramps': 1}:
  • {'degree': 1, 'ramps_all': 1}:
  • {'disc_abs_key': 1, 'disc_sign': 1, 'signature': -1}:
  • {'galois': 1}:
  • {'galois': 1, 'ramps': 1}:
  • {'galois': 1, 'ramps_all': 1}:
  • {'label': 1}:
  • {''oldpolredabscoeffhash': 1}:
  • {'ramps': 1}:
  • {'ramps_all: 1}:
  • {'signature': 1}:

Collection fields.rand

  • auxilliary collection used for random objection access

Collection stats

  • auxilliary collection used for number field statistics

degree list of the number of fields of each degree

nt list indexed by degree-1, each a list indexed by t-1 for Galois group t

nsig list indexed by degree-1, each a list indexed by r_2

h list for each class number from 1 to 50

h_range list of class number counts for ranges based on powers of 10

has_h the number of fields for which we have the class number

dn counts of dihedral fields by degree

hdeg list indexed by degree, each a list of counts based on log_10(h)

has_hdeg number of fields where we have class numbers

sigclass1 list indexed by degree, of lists of number of class number 1 fields based on r_2

sighasclass list indexed by degree, of lists of number of fields for which we have the class numbers based on r_2