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: sage-7.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 klui)

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]])

Change History (24)

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
  • Cc was added
  • Commit set to d431329f0000bf36cdfd6af0f45b93ca99160bf3
  • Dependencies #20857 deleted
  • Description modified (diff)
  • Status changed from new to needs_review

New commits:

d431329Copied 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:

53865b7Merge branch 'u/klui/merge_of_gsoc_modabvar_project' in 7.4.b6
c760f00removing 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:

cf1aa03trac 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:

919e788changed 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:

fcca7acMerge branch 'public/21496' in 7.5.b6
b8defb6trac 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:

3f92ea1trac 21496 fixing doc, plus little code cleanup of ;

comment:14 follow-up: 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

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 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:

9500491added 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.