Opened 4 years ago

Closed 3 years ago

# Merge of GSoC modabvar project

Reported by: Owned by: klui major sage-7.6 modular forms modular abelian variety was Kevin Lui Frédéric Chapoton N/A 9500491 (Commits) 950049159ea8676065b5c39152acde0a85c585e9

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/0d310a14-a099-47d9-87c7-df6b63af54a6/files/worksheets/magma_test_examples.sagews

The methods that aren't covered in the worksheet are:

• `is_J0`, `is_J1`: they're really short
• `elliptic_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]])`

### comment:1 Changed 4 years ago by klui

• Branch set to u/klui/merge_of_gsoc_modabvar_project

### comment:2 Changed 4 years ago by klui

• Authors set to Kevin Lui
• Commit set to d431329f0000bf36cdfd6af0f45b93ca99160bf3
• Dependencies #20857 deleted
• Description modified (diff)
• Status changed from new to needs_review

New commits:

 ​d431329 `Copied over files from Github repo. Made small docstring changes.`

### comment:3 Changed 4 years ago by was

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 chapoton

```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/site-packages/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/site-packages/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/site-packages/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/site-packages/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
```
Last edited 4 years ago by chapoton (previous) (diff)

### comment:5 Changed 4 years ago by chapoton

• Branch changed from u/klui/merge_of_gsoc_modabvar_project to public/21496
• Commit changed from d431329f0000bf36cdfd6af0f45b93ca99160bf3 to c760f00ee59f0c7bb146641d67f36a9ccb0f640c

I made a public branch (based on u/klui/merge_of_gsoc_modabvar_project) removing the 3 problematic imports.

New commits:

 ​53865b7 `Merge branch 'u/klui/merge_of_gsoc_modabvar_project' in 7.4.b6` ​c760f00 `removing some bad unused imports`

### comment:6 Changed 4 years ago by chapoton

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 git

• 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 git

• 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 klui

@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 git

• Commit changed from 919e788607acb6d11ba184e360ab917b80f0a086 to b8defb6e30ff3f6b623ef94af90fddc5835513e5

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

 ​fcca7ac `Merge branch 'public/21496' in 7.5.b6` ​b8defb6 `trac 21496 cosmetics of OUTPUT blocks`

### comment:11 Changed 3 years ago by chapoton

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 chapoton

oops, it seems that I broke the doc, let me fix that

### comment:13 Changed 3 years ago by git

• 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 follow-up: ↓ 15 Changed 3 years ago by chapoton

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 klui

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 klui

• Status changed from needs_review to positive_review

### comment:17 Changed 3 years ago by chapoton

• Milestone changed from sage-7.4 to sage-7.6

### comment:18 Changed 3 years ago by chapoton

• Reviewers set to Frédéric Chapoton

### comment:19 Changed 3 years ago by vbraun

• Status changed from positive_review to needs_work

on 32-bit:

```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.33139759782370e-19
Got:
-1.04128413920120e-19
**********************************************************************
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.33139759782370e-19
Got:
-1.04128413920120e-19
^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 git

• 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 klui

Thanks for the catch. It should work now.

### comment:22 Changed 3 years ago by klui

• Status changed from needs_work to needs_review

### comment:23 Changed 3 years ago by vbraun

• Status changed from needs_review to positive_review

### comment:24 Changed 3 years ago by vbraun

• Branch changed from public/21496 to 950049159ea8676065b5c39152acde0a85c585e9
• Resolution set to fixed
• Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.