roed314 / lmfdb-lite

dictionary-based python interface to the L-functions and modular forms database (lmdfb.org)
GNU General Public License v3.0
1 stars 2 forks source link

Question on usage for Maass forms #3

Closed seewoo5 closed 6 days ago

seewoo5 commented 6 days ago

I want to know how to get coefficients of Maass forms using this library. Especially, the following code

from lmf import db

maass_db = db.maass_newforms
print(maass_db.search_cols)
l4_list = list(maass_db.search({"level": 4}))
print(l4_list[0])

gives

['conrey_index', 'contributor', 'error', 'fricke_eigenvalue', 'level', 'maass_id', 'spectral_parameter', 'symmetry', 'weight']
{'conrey_index': 1, 'contributor': 'Fredrik Stroemberg', 'error': 4.648955559303172e-13, 'fricke_eigenvalue': -1, 'level': 4, 'maass_id': '4f5558aa88aece2646000008', 'spectral_parameter': 3.70330780122, 'symmetry': -1, 'weight': 0}

but I don't know how to get coefficients from these data, possible with maass_id. On this page, there's also a key coefficients which does not appear here. Thanks in advance.

roed314 commented 6 days ago

Two things you need to change:

  1. The table you want is maass_rigor rather than maass_newforms, which is a new dataset computed by @davidlowryduda and added to the LMFDB this summer. The maass_newforms table is older data that we haven't deleted yet but you should avoid using.
  2. maass_rigor is one of only two tables in the LMFDB that uses an extra table (the other being nf_fields). This is a feature intended to reduce the size of search tables (which can speed up queries that use sequential scans), but I've come to believe that it's not worth the cost in complexity. I hope to remove it (and move the extra tables to their own dedicated search table) soon....

In the meantime, here's how you can access Maass form coefficients (I'll use 1.0.1.14.1 as an example).

from lmf import db
print(db.maass_rigor.extra_cols)
print(db.maass_rigor.lookup("1.0.1.14.1", "coefficients")[:3])
print(db.maass_rigor.lookup("1.0.1.14.1", "coefficient_errors")[:3])

This gives

['coefficient_errors', 'coefficients']
[1.00000000000000000000000000000000000000000000000000000000000000000000000000, 1.59684569216413905493823515100933321054550647394232933185649329699690343030, -1.11648046378440495439084809420597557108471766013843131839031509177133318621]
[0.00000000, 0.000000000000000000000000000000000000000000000000000000000000000000074184123, 0.000000000000000000000000000000000000000000000000000000000000000000074184123]