Classical-mf-structure

From Kiran Kedlaya's Wiki
(Difference between revisions)
Jump to: navigation, search
(more structure)
 
(48 intermediate revisions by one user not shown)
Line 1: Line 1:
Structure of the elliptic modular forms folder:
+
Structure of the '''modular_forms''' folder:
  
 
* '''backend'''
 
* '''backend'''
** __init__.py
+
** __init__.py: imports the content of this directory.
** mf_classes.py
+
** mf_classes.py: defines two classes. ??? The 1st one should contain a (dimension?) table obtained from the DB, the 2nd one should contain a single modular form obtained from the DB. ???
** mf_utils.py
+
** mf_utils.py: utility functions. The 1st one returns the list of distinct values of a field with a given key among all documents in the database.
 
* '''elliptic_modular_forms'''
 
* '''elliptic_modular_forms'''
** __init__.py
+
** __init__.py: sets some global constants, imports the contents of this directory, initializes the Blueprint and logger.
** test_emf.py
+
** test_emf.py: defines a class implementing tests for the emf pages.
 
** '''backend'''
 
** '''backend'''
*** __init__.py
+
*** __init__.py: sets up connection to the database
*** emf_classes.py
+
*** emf_classes.py: Defines two classes: one reads a table of dimensions from the DB; the other displays table of holomorphic modular forms. CV adding detailed comments 10/14.
*** emf_core.py
+
*** emf_core.py: "core functions" for forms and spaces of forms: get dimensions, sturm bound, decompose into subspaces, get eigenvalues, compute Fourier coefficients, determine CM status, Satake parameters.
*** emf_download_utils.py
+
*** emf_download_utils.py: user download routines, mostly around Fourier coeffs.
*** emf_utils.py
+
*** emf_utils.py: parsing functions, e.g. for ranges, or from tuple level,weight,char to string "emf.level.weight.char" and vice-versa... , code to fetch a fund domain plot from the database or draw it on the fly, code to fetch dimension of form spaces, interface between Sage and Conrey characters, and conversion from Sage NumberFields to corresponding LMFDB label. Also defines ajax_ functions (???).
 
*** '''experimental''' !!!! (empty)
 
*** '''experimental''' !!!! (empty)
*** web_newforms.py
+
*** web_newforms.py: imports WebXXX basic types (int, string...) and defines the WebqExp and WebEigenvalues classes to display q-exps and Hecke eigenvals, which are themselves used to define a WebNewform class, which includes methods to get complex coefficient embebbings, Atkin-Lehner eigenvals, coefficient field LMFDB label.
*** web_object.py
+
*** web_object.py: defines a WebProperty class, and derives basis WebXXX classes such as WebInt, WebString, ...
*** plot_dom.py
+
*** plot_dom.py: code to plot fundamental domains, including code for coset representatives and hyperbolic geodesics.
*** web_character.py
+
*** web_character.py: defines the WebChar and the WebCharProperty classes, which are used by WebModFormSpace and WebNewform, among others. Comments that this class should be replaced with WebDirichletCharacter when something (Conrey maybe ???) is fixed.
*** web_modform_space.py
+
*** web_modform_space.py: imports WebXXX basic types (int, string...) and defines the WebHeckeOrbits class (decomposition of a form space into a collection of WebNewforms ??), as well as the WebModFormSpace (derived from WebObject) and WebModFormSpaceProperty (derived from WebProperty) classes.
 
** '''views'''
 
** '''views'''
    __init__.py
+
*** __init__.py: imports the content of this directory.
    emf_render_navigation.py
+
*** emf_render_navigation.py: Defines 2 functions. 1st one is experimental (ranges) and calls 2nd one immediately, the rest of its code is never executed. 2nd one reads the database, creates a table (levels x weights) of form spaces, and renders the navigation page. It can also fetch a fundamental domain plot if given appropriate argument.
    emf_render_web_modform_space.py
+
*** emf_render_web_modform_space.py: code to render a form space of given level, weight, and character.
    *experimental !!!! (vide)
+
*** '''experimental''' !!!! (empty)
    emf_render_web_newform.py
+
*** emf_render_web_newform.py: code to render a webpage with one newform
    emf_main.py
+
*** emf_main.py: imports all the emf_render_web stuff, and defines the main routing function, render_elliptic_modular_forms, which takes parameters for level, weight, char... and calls the appropriate emf_render_web code (e.g. modform_space_gamma1 is char==none, modform_space if char is defined, ...). Also defines functions to deal with download queries and q-expansion queries.
    emf_render_web_modform_space_gamma1.py
+
*** emf_render_web_modform_space_gamma1.py: code to render a form space of level Gamma1 as a collection of spaces indexed by characters.
    *static ???? Probably not used (deleting it does not seem to break anything)
+
*** '''static''' ???? Probably not used (deleting it does not seem to break anything)
      elliptic_modular_form_scripts.js ????
+
**** elliptic_modular_form_scripts.js ????
      elliptic_modular_form_util-functions.js ????
+
**** elliptic_modular_form_util-functions.js ????
    *templates
+
*** '''templates'''
      emf_browse_fixed_level.html
+
**** emf_browse_fixed_level.html: [rendered in emf_render_navigation.py] displays webpage with table of dimensions of forms for Gamma_0 or Gamma_1 of fixed level and table of Galois orbits of characters of fixed conductor (=level).
      emf_navigation.html
+
**** emf_navigation.html: [rendered in emf_render_navigation.py] script defining functions manipulating and producing strings, then code for main navigation page: display table of dimensions of forms by weight/level and search box.
      emf_table.html
+
**** emf_table.html: [never rendered] empty template
      emf_web_newform.html
+
**** emf_web_newform.html: [rendered in emf_render_newform.py] displays webpage of a single newform: q-expansion, complex embeddings of Fourier coefficients, Satake parameters, CM values, explicit formulas, A-L eigenvalues, coefficients downloads.
      geometric.html
+
**** geometric.html: [included in emf_browse_range.html, emf_browse_fixed_level.html, emf_render_web_modform_space_gamma1.html] piece of code that displays geometric information for a congruence group.
      select_ranges.html
+
**** select_ranges.html: [included in emf_browse_range.html, emf_browse_spaces.html, emf_navigation.html] piece of code with search boxes for weight and level.
      emf_browse_spaces.html
+
**** emf_browse_spaces.html: [rendered in emf_render_navigation.py] script defining functions manipulating and producing strings, then code to displays webpage with table of dimensions of forms of fixed level.
      emf_render_web_modform_space_gamma1.html
+
**** emf_render_web_modform_space_gamma1.html: [rendered in emf_render_web_modform_space_gamma1.py] displays webpage with table of dimensions of forms for Gamma_1 of fixed level, by weight/character, and table of Galois orbits of characters of fixed conductor (=level).
      emf_web_modform_space.html
+
**** emf_web_modform_space.html: [rendered in emf_render_web_modform_space.py] displays webpage with list of Galois orbits of Hecke newforms in a given space (fixed group and weight).
      not_available.html
+
**** not_available.html: [rendered in emf_render_navigation.py] Displays the message "We are sorry, this data is not available yet."
      *experimental !!!!
+
**** '''experimental''' !!!!
        data_table.html
+
***** data_table.html: [not rendered]
        emf2.html
+
***** emf2.html: [not rendered]
        emf_browse.html
+
***** emf_browse.html: [not rendered]
        emf_browse_graph.html
+
***** emf_browse_graph.html: [not rendered]
        emf_browse_range.html
+
***** emf_browse_range.html: [not rendered]
        emf_new.html
+
***** emf_new.html: [not rendered]
        emf_table2.html
+
***** emf_table2.html: [not rendered]
== maass_forms ==
+
* '''maass_forms'''
  ...
+
** ...
*views
+
* '''views'''
__init__.py
+
** __init__.py: imports the content of this directory.
  mf_main.py
+
** mf_main.py: defines the body_class to be "mf" and routes "/".
  *templates
+
** '''templates'''
    mf_navigation.html
+
*** mf_navigation.html: [rendered in mf_main.py] main navigation page of modular forms. List of links to pages of various types of modular forms.

Latest revision as of 19:29, 28 October 2015

Structure of the modular_forms folder:

  • backend
    • __init__.py: imports the content of this directory.
    • mf_classes.py: defines two classes. ??? The 1st one should contain a (dimension?) table obtained from the DB, the 2nd one should contain a single modular form obtained from the DB. ???
    • mf_utils.py: utility functions. The 1st one returns the list of distinct values of a field with a given key among all documents in the database.
  • elliptic_modular_forms
    • __init__.py: sets some global constants, imports the contents of this directory, initializes the Blueprint and logger.
    • test_emf.py: defines a class implementing tests for the emf pages.
    • backend
      • __init__.py: sets up connection to the database
      • emf_classes.py: Defines two classes: one reads a table of dimensions from the DB; the other displays table of holomorphic modular forms. CV adding detailed comments 10/14.
      • emf_core.py: "core functions" for forms and spaces of forms: get dimensions, sturm bound, decompose into subspaces, get eigenvalues, compute Fourier coefficients, determine CM status, Satake parameters.
      • emf_download_utils.py: user download routines, mostly around Fourier coeffs.
      • emf_utils.py: parsing functions, e.g. for ranges, or from tuple level,weight,char to string "emf.level.weight.char" and vice-versa... , code to fetch a fund domain plot from the database or draw it on the fly, code to fetch dimension of form spaces, interface between Sage and Conrey characters, and conversion from Sage NumberFields to corresponding LMFDB label. Also defines ajax_ functions (???).
      • experimental !!!! (empty)
      • web_newforms.py: imports WebXXX basic types (int, string...) and defines the WebqExp and WebEigenvalues classes to display q-exps and Hecke eigenvals, which are themselves used to define a WebNewform class, which includes methods to get complex coefficient embebbings, Atkin-Lehner eigenvals, coefficient field LMFDB label.
      • web_object.py: defines a WebProperty class, and derives basis WebXXX classes such as WebInt, WebString, ...
      • plot_dom.py: code to plot fundamental domains, including code for coset representatives and hyperbolic geodesics.
      • web_character.py: defines the WebChar and the WebCharProperty classes, which are used by WebModFormSpace and WebNewform, among others. Comments that this class should be replaced with WebDirichletCharacter when something (Conrey maybe ???) is fixed.
      • web_modform_space.py: imports WebXXX basic types (int, string...) and defines the WebHeckeOrbits class (decomposition of a form space into a collection of WebNewforms ??), as well as the WebModFormSpace (derived from WebObject) and WebModFormSpaceProperty (derived from WebProperty) classes.
    • views
      • __init__.py: imports the content of this directory.
      • emf_render_navigation.py: Defines 2 functions. 1st one is experimental (ranges) and calls 2nd one immediately, the rest of its code is never executed. 2nd one reads the database, creates a table (levels x weights) of form spaces, and renders the navigation page. It can also fetch a fundamental domain plot if given appropriate argument.
      • emf_render_web_modform_space.py: code to render a form space of given level, weight, and character.
      • experimental !!!! (empty)
      • emf_render_web_newform.py: code to render a webpage with one newform
      • emf_main.py: imports all the emf_render_web stuff, and defines the main routing function, render_elliptic_modular_forms, which takes parameters for level, weight, char... and calls the appropriate emf_render_web code (e.g. modform_space_gamma1 is char==none, modform_space if char is defined, ...). Also defines functions to deal with download queries and q-expansion queries.
      • emf_render_web_modform_space_gamma1.py: code to render a form space of level Gamma1 as a collection of spaces indexed by characters.
      • static ???? Probably not used (deleting it does not seem to break anything)
        • elliptic_modular_form_scripts.js ????
        • elliptic_modular_form_util-functions.js ????
      • templates
        • emf_browse_fixed_level.html: [rendered in emf_render_navigation.py] displays webpage with table of dimensions of forms for Gamma_0 or Gamma_1 of fixed level and table of Galois orbits of characters of fixed conductor (=level).
        • emf_navigation.html: [rendered in emf_render_navigation.py] script defining functions manipulating and producing strings, then code for main navigation page: display table of dimensions of forms by weight/level and search box.
        • emf_table.html: [never rendered] empty template
        • emf_web_newform.html: [rendered in emf_render_newform.py] displays webpage of a single newform: q-expansion, complex embeddings of Fourier coefficients, Satake parameters, CM values, explicit formulas, A-L eigenvalues, coefficients downloads.
        • geometric.html: [included in emf_browse_range.html, emf_browse_fixed_level.html, emf_render_web_modform_space_gamma1.html] piece of code that displays geometric information for a congruence group.
        • select_ranges.html: [included in emf_browse_range.html, emf_browse_spaces.html, emf_navigation.html] piece of code with search boxes for weight and level.
        • emf_browse_spaces.html: [rendered in emf_render_navigation.py] script defining functions manipulating and producing strings, then code to displays webpage with table of dimensions of forms of fixed level.
        • emf_render_web_modform_space_gamma1.html: [rendered in emf_render_web_modform_space_gamma1.py] displays webpage with table of dimensions of forms for Gamma_1 of fixed level, by weight/character, and table of Galois orbits of characters of fixed conductor (=level).
        • emf_web_modform_space.html: [rendered in emf_render_web_modform_space.py] displays webpage with list of Galois orbits of Hecke newforms in a given space (fixed group and weight).
        • not_available.html: [rendered in emf_render_navigation.py] Displays the message "We are sorry, this data is not available yet."
        • experimental !!!!
          • data_table.html: [not rendered]
          • emf2.html: [not rendered]
          • emf_browse.html: [not rendered]
          • emf_browse_graph.html: [not rendered]
          • emf_browse_range.html: [not rendered]
          • emf_new.html: [not rendered]
          • emf_table2.html: [not rendered]
  • maass_forms
    • ...
  • views
    • __init__.py: imports the content of this directory.
    • mf_main.py: defines the body_class to be "mf" and routes "/".
    • templates
      • mf_navigation.html: [rendered in mf_main.py] main navigation page of modular forms. List of links to pages of various types of modular forms.
Personal tools