sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.45k stars 481 forks source link

implement scalar-valued Siegel modular forms on Sp(4,Z) #8701

Open aghitza opened 14 years ago

aghitza commented 14 years ago

At Sage Days 20.25 in Montreal, we have decided to submit an initial version of the Siegel modular forms code by Friday 16 April 2010.

It's now a few minutes before midnight, and lest I turn into a pumpkin, I am uploading a patch with what we have so far.

I'm marking it as "needs work" since there are still a number of issues to be resolved. I'll list these in the comments soon.

To clarify: I submitted this just before midnight Seattle time, so one could argue that it was before the deadline :)

The patch applies cleanly to sage-4.4.3 and sage-4.4.4.alpha0, and passes all tests. The doctest coverage is 98.8% (81 out of 82 functions). The patch will not work with earlier versions of Sage since it depends on patches at #8602 and #8681 which have now been merged.

I believe that the objective of this first submission is to have something that works perfectly in the case of scalar-valued forms on Sp(4,Z). Here are the issues that I am aware of and are still blocking this:

  1. We need top-level documentation in siegel_modular_form.py that explains in detail how the code is meant to be used, what the interesting features are, etc. We also need to explain how precisions work (either in the main file or in siegel_modular_form_prec.py
  2. The computation of the generators for weights='all' breaks at the fifth generator
  3. The argument degree in _siegel_modular_forms_generators should be properly documented, and there should be a doctest for it (I don't like the name "degree" BTW, because it already has a meaning for Siegel modular forms)
  4. The argument default_prec in SiegelModularFormsAlgebra should be documented
  5. We should put copyright headers in all the source files in the directory.

If you want to add to or modify these, please feel free to do this by editing the description on this ticket.

CC: @sagetrac-NilsSkoruppa @sagetrac-mraum @tornaria @williamstein @novoselt @ncalexan @mstreng

Component: modular forms

Keywords: siegel modular forms

Author: Nils-Peter Skoruppa, Nathan Ryan, Martin Raum, Gonzalo Tornaría, Craig Citro, Alex Ghitza

Branch/Commit: u/chapoton/8701 @ 4e4f04d

Issue created by migration from https://trac.sagemath.org/ticket/8701

williamstein commented 14 years ago
comment:2

:-)

aghitza commented 14 years ago

Description changed:

--- 
+++ 
@@ -4,3 +4,20 @@

 I'm marking it as "needs work" since there are still a number of issues to be resolved.  I'll list these in the comments soon.

+To clarify: I submitted this just before midnight Seattle time, so one could argue that it was before the deadline :)
+
+The patch applies cleanly to sage-4.3.5, and passes all but one test.  The doctest coverage is 99%.  The patch should also apply cleanly to earlier versions of Sage, but depending of how far back you go the tests might not pass any more.  I checked with sage-4.3.3 and it was fine.
+
+Since this patch includes the patches at trac #8602 and #8681, it will fail to apply when those tickets get reviewed positively and merged.  In fact, #8602 just got merged into sage-4.4.alpha0, so I will eventually rebase the Siegel patch on top of that.
+
+I believe that the objective of this first submission is to have something that works perfectly in the case of scalar-valued forms on `Sp(4,Z)`.  Here are the issues that I am aware of and are still blocking this:
+
+1. `SiegelModularFormsFunctor` does not completely fit in with the other similar functors in Sage.  For one thing, it seems that the right place to put it is in sage.categories.pushout.  We should have a careful look at this class.
+2. We need top-level documentation in `siegel_modular_form.py` that explains in detail how the code is meant to be used, what the interesting features are, etc.  We also need to explain how precisions work (either in the main file or in `siegel_modular_form_prec.py`
+3. The computation of the generators for `weights='all'` breaks at the fifth generator
+4. The argument `degree` in `_siegel_modular_forms_generators` should be properly documented, and there should be a doctest for it (I don't like the name "degree" BTW, because it already has a meaning for Siegel modular forms)
+5. The argument `default_prec` in `SiegelModularFormsAlgebra` should be documented
+6. There are a few docstrings left that are not valid ReST, and there is one error while building the documentation 
+7. We should have some tests of the form `TestSuite(s).run()`
+
+If you want to add to or modify these, please feel free to do this by editing the description on this ticket.
aghitza commented 14 years ago
comment:3

To clarify: I submitted this just before midnight Seattle time, so one could argue that it was before the deadline :)

The patch applies cleanly to sage-4.3.5, and passes all but one test. The doctest coverage is 99%. The patch should also apply cleanly to earlier versions of Sage, but depending of how far back you go the tests might not pass any more. I checked with sage-4.3.3 and it was fine.

Since this patch includes the patches at trac #8602 and #8681, it will fail to apply when those tickets get reviewed positively and merged. In fact, #8602 just got merged into sage-4.4.alpha0, so I will eventually rebase the Siegel patch on top of that.

I believe that the objective of this first submission is to have something that works perfectly in the case of scalar-valued forms on Sp(4,Z). Here are the issues that I am aware of and are still blocking this:

  1. SiegelModularFormsFunctor does not completely fit in with the other similar functors in Sage. For one thing, it seems that the right place to put it is in sage.categories.pushout. We should have a careful look at this class.
  2. We need top-level documentation in siegel_modular_form.py that explains in detail how the code is meant to be used, what the interesting features are, etc. We also need to explain how precisions work (either in the main file or in siegel_modular_form_prec.py
  3. The computation of the generators for weights='all' breaks at the fifth generator
  4. The argument degree in _siegel_modular_forms_generators should be properly documented, and there should be a doctest for it (I don't like the name "degree" BTW, because it already has a meaning for Siegel modular forms)
  5. The argument default_prec in SiegelModularFormsAlgebra should be documented
  6. There are a few docstrings left that are not valid ReST, and there is one error while building the documentation
  7. We should have some tests of the form TestSuite(s).run()
aghitza commented 14 years ago

Description changed:

--- 
+++ 
@@ -19,5 +19,6 @@
 5. The argument `default_prec` in `SiegelModularFormsAlgebra` should be documented
 6. There are a few docstrings left that are not valid ReST, and there is one error while building the documentation 
 7. We should have some tests of the form `TestSuite(s).run()`
+8. We should put copyright headers in all the source files in the directory.

 If you want to add to or modify these, please feel free to do this by editing the description on this ticket.
aghitza commented 14 years ago

Description changed:

--- 
+++ 
@@ -12,13 +12,13 @@

 I believe that the objective of this first submission is to have something that works perfectly in the case of scalar-valued forms on `Sp(4,Z)`.  Here are the issues that I am aware of and are still blocking this:

-1. `SiegelModularFormsFunctor` does not completely fit in with the other similar functors in Sage.  For one thing, it seems that the right place to put it is in sage.categories.pushout.  We should have a careful look at this class.
+1. DONE `SiegelModularFormsFunctor` does not completely fit in with the other similar functors in Sage.  For one thing, it seems that the right place to put it is in sage.categories.pushout.  We should have a careful look at this class.
 2. We need top-level documentation in `siegel_modular_form.py` that explains in detail how the code is meant to be used, what the interesting features are, etc.  We also need to explain how precisions work (either in the main file or in `siegel_modular_form_prec.py`
 3. The computation of the generators for `weights='all'` breaks at the fifth generator
 4. The argument `degree` in `_siegel_modular_forms_generators` should be properly documented, and there should be a doctest for it (I don't like the name "degree" BTW, because it already has a meaning for Siegel modular forms)
 5. The argument `default_prec` in `SiegelModularFormsAlgebra` should be documented
 6. There are a few docstrings left that are not valid ReST, and there is one error while building the documentation 
-7. We should have some tests of the form `TestSuite(s).run()`
+7. DONE We should have some tests of the form `TestSuite(s).run()`
 8. We should put copyright headers in all the source files in the directory.

 If you want to add to or modify these, please feel free to do this by editing the description on this ticket.
aghitza commented 14 years ago
comment:5

I am replacing the patch with one that has fixes for a couple of issues on the list (and I'm updating the list to reflect this).

aghitza commented 14 years ago

Attachment: siegel_combined.patch.gz

applies to sage-4.4.3 and sage-4.4.4.alpha0

aghitza commented 14 years ago
comment:6

Since a few more prerequisites went into Sage, I had to rebase the patch so it applies to 4.4.3 and 4.4.4.alpha0.

aghitza commented 14 years ago

Description changed:

--- 
+++ 
@@ -6,19 +6,15 @@

 To clarify: I submitted this just before midnight Seattle time, so one could argue that it was before the deadline :)

-The patch applies cleanly to sage-4.3.5, and passes all but one test.  The doctest coverage is 99%.  The patch should also apply cleanly to earlier versions of Sage, but depending of how far back you go the tests might not pass any more.  I checked with sage-4.3.3 and it was fine.
-
-Since this patch includes the patches at trac #8602 and #8681, it will fail to apply when those tickets get reviewed positively and merged.  In fact, #8602 just got merged into sage-4.4.alpha0, so I will eventually rebase the Siegel patch on top of that.
+The patch applies cleanly to sage-4.4.3 and sage-4.4.4.alpha0, and passes all tests.  The doctest coverage is 98.8% (81 out of 82 functions).  The patch will not work with earlier versions of Sage since it depends on patches at #8602 and #8681 which have now been  merged.

 I believe that the objective of this first submission is to have something that works perfectly in the case of scalar-valued forms on `Sp(4,Z)`.  Here are the issues that I am aware of and are still blocking this:

-1. DONE `SiegelModularFormsFunctor` does not completely fit in with the other similar functors in Sage.  For one thing, it seems that the right place to put it is in sage.categories.pushout.  We should have a careful look at this class.
-2. We need top-level documentation in `siegel_modular_form.py` that explains in detail how the code is meant to be used, what the interesting features are, etc.  We also need to explain how precisions work (either in the main file or in `siegel_modular_form_prec.py`
-3. The computation of the generators for `weights='all'` breaks at the fifth generator
-4. The argument `degree` in `_siegel_modular_forms_generators` should be properly documented, and there should be a doctest for it (I don't like the name "degree" BTW, because it already has a meaning for Siegel modular forms)
-5. The argument `default_prec` in `SiegelModularFormsAlgebra` should be documented
-6. There are a few docstrings left that are not valid ReST, and there is one error while building the documentation 
-7. DONE We should have some tests of the form `TestSuite(s).run()`
-8. We should put copyright headers in all the source files in the directory.
+1. We need top-level documentation in `siegel_modular_form.py` that explains in detail how the code is meant to be used, what the interesting features are, etc.  We also need to explain how precisions work (either in the main file or in `siegel_modular_form_prec.py`
+2. The computation of the generators for `weights='all'` breaks at the fifth generator
+3. The argument `degree` in `_siegel_modular_forms_generators` should be properly documented, and there should be a doctest for it (I don't like the name "degree" BTW, because it already has a meaning for Siegel modular forms)
+4. The argument `default_prec` in `SiegelModularFormsAlgebra` should be documented
+5. There are a few docstrings left that are not valid ReST, and there is one error while building the documentation 
+6. We should put copyright headers in all the source files in the directory.

 If you want to add to or modify these, please feel free to do this by editing the description on this ticket.
93749b3a-c0a4-47a7-b178-004ba08b0b97 commented 14 years ago
comment:8

I am worried that the groups on which the forms are defined are specified by strings ('Gamma0(5)') and not on python objects.

williamstein commented 14 years ago
comment:9

FYI, the patch is now in psage: http://code.google.com/p/purplesage/source/detail?r=508752edecf0b1f41373e5761a74b61c79024c50

11c52825-d599-4c2b-9fb6-c49622ca9b95 commented 13 years ago

Attachment: trac_8701_siegel_modular_form_documentation.patch.gz

Addresses many of the comments from before. I need still need to add copyright information, include more examples at the top of siegel_modular_forms.py, and deal with the functor stuff.

11c52825-d599-4c2b-9fb6-c49622ca9b95 commented 13 years ago

Addresses ncalexander's concern about the way the groups are defined

11c52825-d599-4c2b-9fb6-c49622ca9b95 commented 13 years ago

Attachment: siegel_modular_group.patch.gz

Attachment: hecke_operators_bad_primes_exception.patch.gz

Raises an exception when trying to find the image of a form F under the Hecke operator T(p) when p divides the level of F

tornaria commented 13 years ago

Fix an issue with sage 4.6.2

tornaria commented 13 years ago

Attachment: fix-siegel.gz

Attachment: fix-coeffs-in-ring.gz

Have the constructor coerce the coefficients into the ring they're supposed to be

fchapoton commented 11 years ago

Attachment: trac_8701_siegel_rebased.patch.gz

fchapoton commented 11 years ago
comment:14

For the bot:

apply only trac_8701_siegel_folded_v1.patch

The folded patch trac_8701_siegel_folded_v1.patch can now be used as a new starting point.

fchapoton commented 11 years ago

Description changed:

--- 
+++ 
@@ -18,3 +18,5 @@
 6. We should put copyright headers in all the source files in the directory.

 If you want to add to or modify these, please feel free to do this by editing the description on this ticket.
+
+Apply [attachment: trac_8701_siegel_folded_v1.patch](https://github.com/sagemath/sage-prod/files/10648773/trac_8701_siegel_folded_v1.patch.gz)
fchapoton commented 11 years ago
comment:15

apply only trac_8701_siegel_folded_v1.patch

fchapoton commented 11 years ago
comment:16

Attachment: trac_8701_siegel_folded_v1.patch.gz

apply only trac_8701_siegel_folded_v1.patch

fchapoton commented 10 years ago

Commit: 1adf92a

fchapoton commented 10 years ago

New commits:

1adf92aTrac #8701: scalar siegel-modular forms
fchapoton commented 10 years ago

Branch: u/chapoton/8701

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from 1adf92a to b3940c8

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

620934cMerge branch 'u/chapoton/8701' into 6.9.b2
b3940c8trac #8701 trying to fix some imports and doctestsx
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

785cbe8trac #8701 fixing imports
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from b3940c8 to 785cbe8

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from 785cbe8 to a9f7f95

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

a9f7f95trac #8701 some minor doc improvements
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from a9f7f95 to 36f42d8

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

36f42d8trac #8701 some more details
fchapoton commented 9 years ago

Description changed:

--- 
+++ 
@@ -14,9 +14,6 @@
 2. The computation of the generators for `weights='all'` breaks at the fifth generator
 3. The argument `degree` in `_siegel_modular_forms_generators` should be properly documented, and there should be a doctest for it (I don't like the name "degree" BTW, because it already has a meaning for Siegel modular forms)
 4. The argument `default_prec` in `SiegelModularFormsAlgebra` should be documented
-5. There are a few docstrings left that are not valid ReST, and there is one error while building the documentation 
-6. We should put copyright headers in all the source files in the directory.
+5. We should put copyright headers in all the source files in the directory.

 If you want to add to or modify these, please feel free to do this by editing the description on this ticket.
-
-Apply [attachment: trac_8701_siegel_folded_v1.patch](https://github.com/sagemath/sage-prod/files/10648773/trac_8701_siegel_folded_v1.patch.gz)
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Changed commit from 36f42d8 to 1fe21e8

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 9 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

5c8614bMerge branch 'u/chapoton/8701' into 6.9.b3
1fe21e8trac #8701 correct raise syntax
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Changed commit from 1fe21e8 to 35c9ac9

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

62f074aMerge branch 'u/chapoton/8701' into 7.2
35c9ac9python3 print
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Changed commit from 35c9ac9 to 31b115d

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

31b115dMerge branch 'u/chapoton/8701' in 7.3.b7
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

fe759f5Merge branch 'u/chapoton/8701' into 7.3.rc0
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Changed commit from 31b115d to fe759f5

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 7 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

e7e267aMerge branch 'u/chapoton/8701' in 8.0
765e9f4trac 8701 refresh imports
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 7 years ago

Changed commit from fe759f5 to 765e9f4

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 7 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

44877a2trac 8701 pep8 and pyflakes cleanup
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 7 years ago

Changed commit from 765e9f4 to 44877a2

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 7 years ago

Changed commit from 44877a2 to d46b74c

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 7 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

d46b74ctrac 8701 do not create files during testing
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 7 years ago

Changed commit from d46b74c to 871f6d3

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 7 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

871f6d3trac 8701 details
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 7 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

df1e9ectrac 8701 details