Opened 4 years ago
Closed 3 years ago
#21496 closed enhancement (fixed)
Merge of GSoC modabvar project
Reported by:  klui  Owned by:  

Priority:  major  Milestone:  sage7.6 
Component:  modular forms  Keywords:  modular abelian variety 
Cc:  was  Merged in:  
Authors:  Kevin Lui  Reviewers:  Frédéric Chapoton 
Report Upstream:  N/A  Work issues:  
Branch:  9500491 (Commits)  Commit:  950049159ea8676065b5c39152acde0a85c585e9 
Dependencies:  Stopgaps: 
Description (last modified by )
This is a merge of this project: https://github.com/williamstein/sage_modabvar
Most of the code is checked against Magma. Here's a SMC worksheet checking most of the doctest examples: https://cloud.sagemath.com/projects/0d310a14a09947d987c7df6b63af54a6/files/worksheets/magma_test_examples.sagews
The methods that aren't covered in the worksheet are:
is_J0
,is_J1
: they're really shortelliptic_curve
: this checks that the newforms agree for conductor up to 50:all([S.newform(names='a') == S.elliptic_curve().newform() for N in [1..50] for S in J0(N) if S.dimension() == 1])
 An algorithm for computing the divisor of order of the rational torsion subgroup is known in the J1(p) case. It is also conjecturally the order of the rational torsion subgroup. This is cover in this paper: http://math.stanford.edu/~conrad/papers/j1p.pdf and the code has been checked against the table in pg. 393.
newform_decomposition
: This checks it against another way of computing it:
all([J0(N).newform_decomposition('a') == [S.newform('a') for S in J0(N)] for N in [1..50]])
all([J1(N).newform_decomposition('a') == [S.newform('a') for S in J1(N)] for N in [1..30]])
Change History (24)
comment:1 Changed 4 years ago by
 Branch set to u/klui/merge_of_gsoc_modabvar_project
comment:2 Changed 4 years ago by
 Cc was added
 Commit set to d431329f0000bf36cdfd6af0f45b93ca99160bf3
 Dependencies #20857 deleted
 Description modified (diff)
 Status changed from new to needs_review
comment:3 Changed 4 years ago by
Quick comment: i pretty carefully refereed all the original code as it was being written, and had many (many!) comments on it, which Kevin addressed. So this is likely to be in pretty good shape.
comment:4 Changed 4 years ago by
File "src/sage/modular/abvar/torsion_subgroup.py", line 421, in sage.modular.abvar.torsion_subgroup.RationalTorsionSubgroup.multiple_of_order Failed example: from sage_modabvar import J0, J1 Exception raised: Traceback (most recent call last): File "/home/u1/chapoton/sage/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 498, in _run self.compile_and_execute(example, compiler, test.globs) File "/home/u1/chapoton/sage/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 861, in compile_and_execute exec(compiled, globs) File "<doctest sage.modular.abvar.torsion_subgroup.RationalTorsionSubgroup.multiple_of_order[0]>", line 1, in <module> from sage_modabvar import J0, J1 ImportError: No module named sage_modabvar ********************************************************************** File "src/sage/modular/abvar/torsion_subgroup.py", line 559, in sage.modular.abvar.torsion_subgroup.RationalTorsionSubgroup.multiple_of_order_using_frobp Failed example: from sage_modabvar import JH Exception raised: Traceback (most recent call last): File "/home/u1/chapoton/sage/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 498, in _run self.compile_and_execute(example, compiler, test.globs) File "/home/u1/chapoton/sage/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 861, in compile_and_execute exec(compiled, globs) File "<doctest sage.modular.abvar.torsion_subgroup.RationalTorsionSubgroup.multiple_of_order_using_frobp[20]>", line 1, in <module> from sage_modabvar import JH ImportError: No module named sage_modabvar
comment:5 Changed 4 years ago by
 Branch changed from u/klui/merge_of_gsoc_modabvar_project to public/21496
 Commit changed from d431329f0000bf36cdfd6af0f45b93ca99160bf3 to c760f00ee59f0c7bb146641d67f36a9ccb0f640c
comment:6 Changed 4 years ago by
one failing doctest:
File "src/sage/modular/abvar/abvar.py", line 4363, in sage.modular.abvar.abvar.ModularAbelianVariety_modsym_abstract.new_subvariety Failed example: J0(33).new_subvariety() Expected: Abelian subvariety of dimension 1 of J0(33) Got: Simple abelian subvariety 33a(1,33) of dimension 1 of J0(33)
comment:7 Changed 4 years ago by
 Commit changed from c760f00ee59f0c7bb146641d67f36a9ccb0f640c to cf1aa0369cba985788d9b2bd555fd38c8784a36f
Branch pushed to git repo; I updated commit sha1. New commits:
cf1aa03  trac 21496 fixing failing doctest

comment:8 Changed 4 years ago by
 Commit changed from cf1aa0369cba985788d9b2bd555fd38c8784a36f to 919e788607acb6d11ba184e360ab917b80f0a086
Branch pushed to git repo; I updated commit sha1. New commits:
919e788  changed fix to failing doctest

comment:9 Changed 4 years ago by
@chapoton Thanks for the fixes. I should have caught the bad imports earlier.
I think the doctest in new_subvariety fails because J0(33).is_simple() is called elsewhere in the file. There's a warning about this situation in L3203 in abvar.py . So I changed it to J0(34) since that isn't used anywhere in the file.
comment:10 Changed 3 years ago by
 Commit changed from 919e788607acb6d11ba184e360ab917b80f0a086 to b8defb6e30ff3f6b623ef94af90fddc5835513e5
comment:11 Changed 3 years ago by
I have made a cosmetic commit, mainly about formatting the OUTPUT blocks.
If you do not object to these tiny changes, you can set a positive review on my behalf.
comment:12 Changed 3 years ago by
oops, it seems that I broke the doc, let me fix that
comment:13 Changed 3 years ago by
 Commit changed from b8defb6e30ff3f6b623ef94af90fddc5835513e5 to 3f92ea12fd6c6eb2eb3c1cf47f4d768cc3d3d201
Branch pushed to git repo; I updated commit sha1. New commits:
3f92ea1  trac 21496 fixing doc, plus little code cleanup of ;

comment:14 followup: ↓ 15 Changed 3 years ago by
ok, doc is good again.
Once again, if you agree with my small schanges, this can be set to positive.
comment:15 in reply to: ↑ 14 Changed 3 years ago by
Replying to chapoton:
ok, doc is good again.
Once again, if you agree with my small schanges, this can be set to positive.
Looks good to me. Thanks. I'll set it on your behalf.
comment:16 Changed 3 years ago by
 Status changed from needs_review to positive_review
comment:17 Changed 3 years ago by
 Milestone changed from sage7.4 to sage7.6
comment:18 Changed 3 years ago by
 Reviewers set to Frédéric Chapoton
comment:19 Changed 3 years ago by
 Status changed from positive_review to needs_work
on 32bit:
sage t long src/sage/modular/abvar/lseries.py ********************************************************************** File "src/sage/modular/abvar/lseries.py", line 102, in sage.modular.abvar.lseries.Lseries_complex.__call__ Failed example: L(1) # long time (2s) Expected: 1.33139759782370e19 Got: 1.04128413920120e19 ********************************************************************** File "src/sage/modular/abvar/lseries.py", line 201, in sage.modular.abvar.lseries.Lseries_complex.vanishes_at_1 Failed example: L(1) # long time (2s) Expected: 1.33139759782370e19 Got: 1.04128413920120e19 ^CKilling test src/sage/modular/abvar/lseries.py  Doctests interrupted: 0/1 files tested  Total time for all tests: 6.6 seconds cpu time: 0.0 seconds cumulative wall time: 0.0 seconds
Needs some # abs tol apparently
comment:20 Changed 3 years ago by
 Commit changed from 3f92ea12fd6c6eb2eb3c1cf47f4d768cc3d3d201 to 950049159ea8676065b5c39152acde0a85c585e9
Branch pushed to git repo; I updated commit sha1. New commits:
9500491  added abs tol to fix some failing test on 32bit

comment:21 Changed 3 years ago by
Thanks for the catch. It should work now.
comment:22 Changed 3 years ago by
 Status changed from needs_work to needs_review
comment:23 Changed 3 years ago by
 Status changed from needs_review to positive_review
comment:24 Changed 3 years ago by
 Branch changed from public/21496 to 950049159ea8676065b5c39152acde0a85c585e9
 Resolution set to fixed
 Status changed from positive_review to closed
New commits:
Copied over files from Github repo. Made small docstring changes.