#6925: Fast way of calculating cuspidal subgroup of J0(N)
-----------------------------+----------------------------------------------
Reporter: syazdani | Owner: tbd
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-4.4.2
Component: modular forms | Keywords: cuspidal subgroup, modular abelian
variety
Author: | Upstream: N/A
Reviewer: | Merged:
Work_issues: |
-----------------------------+----------------------------------------------
Changes (by was):
* status: needs_review => needs_work
Comment:
Hi Soroosh,
1. Can you look into the following doctest failures (against sage-4.4.1,
say, where your code applies fine)?
{{{
sage -t devel/sage/sage/modular/abvar/cuspidal_subgroup.py
**********************************************************************
File "/mnt/usb1/scratch/wstein/build/sage-4.4.1/devel/sage-
main/sage/modular/abvar/cuspidal_subgroup.py", line 432:
sage: C._compute_lambda()
Expected nothing
Got:
[15/8 -3/8|-5/8 1/8]
[-3/8 15/8| 1/8 -5/8]
[---------+---------]
[-5/8 1/8|15/8 -3/8]
[ 1/8 -5/8|-3/8 15/8]
**********************************************************************
File "/mnt/usb1/scratch/wstein/build/sage-4.4.1/devel/sage-
main/sage/modular/abvar/cuspidal_subgroup.py", line 442:
sage: C._compute_lambda()
Expected nothing
Got:
[ 1 -1/5 0]
[ -1/4 13/10 -1/4]
[ 0 -1/5 1]
**********************************************************************
File "/mnt/usb1/scratch/wstein/build/sage-4.4.1/devel/sage-
main/sage/modular/abvar/cuspidal_subgroup.py", line 475:
sage: C._compute_P_d_integral()
Expected nothing
Got:
Free module of degree 3 and rank 3 over Integer Ring
Echelon basis matrix:
[1 0 0]
[0 4 0]
[0 0 1]
**********************************************************************
File "/mnt/usb1/scratch/wstein/build/sage-4.4.1/devel/sage-
main/sage/modular/abvar/cuspidal_subgroup.py", line 498:
sage: C._compute_parity_module()
Expected nothing
Got:
Free module of degree 3 and rank 3 over Integer Ring
Echelon basis matrix:
[1 0 0]
[0 2 0]
[0 0 1]
**********************************************************************
File "/mnt/usb1/scratch/wstein/build/sage-4.4.1/devel/sage-
main/sage/modular/abvar/cuspidal_subgroup.py", line 508:
sage: C._compute_parity_module()
Expected nothing
Got:
Free module of degree 4 and rank 4 over Integer Ring
Echelon basis matrix:
[1 0 0 0]
[0 1 1 1]
[0 0 2 0]
[0 0 0 2]
**********************************************************************
File "/mnt/usb1/scratch/wstein/build/sage-4.4.1/devel/sage-
main/sage/modular/abvar/cuspidal_subgroup.py", line 547:
sage: C.V0()
Expected nothing
Got:
Free module of degree 4 and rank 3 over Integer Ring
Echelon basis matrix:
[ 1 0 0 -1]
[ 0 1 0 -1]
[ 0 0 1 -1]
**********************************************************************
File "/mnt/usb1/scratch/wstein/build/sage-4.4.1/devel/sage-
main/sage/modular/abvar/cuspidal_subgroup.py", line 557:
sage: C.V0()
Expected nothing
Got:
Free module of degree 3 and rank 2 over Integer Ring
Echelon basis matrix:
[ 1 0 -1]
[ 0 4 -4]
**********************************************************************
File "/mnt/usb1/scratch/wstein/build/sage-4.4.1/devel/sage-
main/sage/modular/abvar/cuspidal_subgroup.py", line 590:
sage: C.Vprincipal()
Expected nothing
Got:
Free module of degree 3 and rank 2 over Integer Ring
Echelon basis matrix:
[ 1 0 -1]
[ 0 4 -4]
**********************************************************************
File "/mnt/usb1/scratch/wstein/build/sage-4.4.1/devel/sage-
main/sage/modular/abvar/cuspidal_subgroup.py", line 599:
sage: C.Vprincipal()
Expected nothing
Got:
Free module of degree 4 and rank 3 over Integer Ring
Echelon basis matrix:
[ 1 1 3 -5]
[ 0 2 0 -2]
[ 0 0 4 -4]
**********************************************************************
File "/mnt/usb1/scratch/wstein/build/sage-4.4.1/devel/sage-
main/sage/modular/abvar/cuspidal_subgroup.py", line 654:
sage: C.gens()
Expected:
[-P15+P5, -P15+P3]
Got:
[-P15 + P5, -P15 + P3]
**********************************************************************
File "/mnt/usb1/scratch/wstein/build/sage-4.4.1/devel/sage-
main/sage/modular/abvar/cuspidal_subgroup.py", line 703:
sage: C.0
Expected:
[-P15 + P5, -P15 + P3]
sgae: (C.0).additive_order()
2
Got:
-P15 + P5
**********************************************************************
7 items had failures:
2 of 8 in __main__.example_13
1 of 5 in __main__.example_14
2 of 8 in __main__.example_15
2 of 8 in __main__.example_16
2 of 8 in __main__.example_17
1 of 5 in __main__.example_19
1 of 5 in __main__.example_22
***Test Failed*** 11 failures.
For whitespace errors, see the file
/scratch/wstein/sage//tmp/.doctest_cuspidal_subgroup.py
[6.4 s]
}}}
2. Everwhere that you have
{{{
Examples::
sage:
}}}
change it to
{{{
EXAMPLES::
sage:
}}}
(note the newline)
3. Everywhere you have -'d lists, e.g.,
{{{
691 - `` parent`` - a subgroup of the cuspidal
subgroup of
692 J0(N)
693
694 - ``element`` - an element in the quotient module
of degree zero divisors of cusps
695 modulo principal divisors.
696
697 - ``check`` - bool (default: False) whether to
check
698 that element is in the appropriate module
}}}
change them so the second line (etc.) starts exactly two spaces in from
the dash so it lines up with the previous line's text, e.g.,
{{{
691 - `` parent`` - a subgroup of the cuspidal
subgroup of
692 J0(N)
693
694 - ``element`` - an element in the quotient module
of degree zero divisors of cusps
695 modulo principal divisors.
}}}
4. Can you be more careful that the docstrings match what they are
documenting, e.g.,
{{{
764 def _sub_(self, other):
765 r"""
766 Adds two elements in the cuspidal subgroup.
}}}
It should be "Subtract" not add.
5.
{{{
827 def __cmp__(self, other):
828 r"""
829 Checks if two elements are the same. Right now
this is not called, and I'm not sure why.
}}}
You probably need to use/call __richmp__ instead... there is some funny
rule that if you define __cmp__ you have to also define __hash__ or
something. Search sage-devel about this.
7. Change this
{{{
495 TESTS:
496 sage: J=J0(25)
}}}
to
{{{
495 TESTS::
496
497 sage: J=J0(25)
}}}
8. I'm not sure about the name "RationalDirectCuspidalSubgroup". Maybe
"RationalCuspidalSubgroupLigozat" or something, i.e., use "Ligozat"
instead of direct?
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6925#comment:6>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.