#11709: FareySymbol
-------------------------------+--------------------------------------------
Reporter: hmonien | Owner: craigcitro
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-5.0
Component: modular forms | Resolution:
Keywords: Farey symbol | Work_issues:
Upstream: N/A | Reviewer: Martin Raum, Leif Leonhardy
Author: Hartmut Monien | Merged:
Dependencies: |
-------------------------------+--------------------------------------------
Changes (by davidloeffler):
* status: needs_review => needs_work
Old description:
> !FareySymbol is a '''fast''' implementation of the '''KFarey''' package
> for Sage.
>
> The major changes done by me:
>
> * created an object oriented coherent class interface
>
> * implemented a C++ module with pyx interface
>
> !FareySymbol allows the calculation of properties of a general arithmetic
> subgroup. The use with the congruence subgroups Gamma0, Gamma1, GammaH
> is trivial. For a group not implemented in Sage, the "user" has to define
> a class with a `__contains__(self, M)` attribute which returns `True` or
> `False` depending on `M` being in the group or not.
>
> The calculation of the generators, coset representation and genus of
> Gamma(32) takes 62.5 seconds on my laptop. Try this with Magma ... .
>
> {{{
> sage: time FareySymbol(Gamma(32))
> FareySymbol(Congruence Subgroup Gamma(32))
> Time: CPU 62.50 s, Wall: 62.52 s
> }}}
>
> ----
>
> Apply
> 1. [attachment:trac-11709_farey_symbol-v6.patch]
> 1. [attachment:trac_11709-tag_file_containing_non-
> ascii_chars.reviewer.patch]
> 1. [attachment:trac_11709-add_hpp_files_to_manifest.reviewer.patch]
> to the Sage library.
New description:
!FareySymbol is a '''fast''' implementation of the '''KFarey''' package
for Sage.
The major changes done by me:
* created an object oriented coherent class interface
* implemented a C++ module with pyx interface
!FareySymbol allows the calculation of properties of a general arithmetic
subgroup. The use with the congruence subgroups Gamma0, Gamma1, GammaH is
trivial. For a group not implemented in Sage, the "user" has to define a
class with a `__contains__(self, M)` attribute which returns `True` or
`False` depending on `M` being in the group or not.
The calculation of the generators, coset representation and genus of
Gamma(32) takes 62.5 seconds on my laptop. Try this with Magma ... .
{{{
sage: time FareySymbol(Gamma(32))
FareySymbol(Congruence Subgroup Gamma(32))
Time: CPU 62.50 s, Wall: 62.52 s
}}}
----
Apply
1. [attachment:trac-11709_farey_symbol-sage-4.8.patch]
--
Comment:
This bothers me a bit:
{{{
sage: all([x in Gamma1(4) for x in FareySymbol(Gamma1(4)).generators()])
False
}}}
If G is odd, the generators that get returned are arbitrary liftings of
generators of the projective image of G, so they won't generally be in G.
Also, I don't like this:
{{{
sage: FareySymbol(Gamma0(4)).generators()
[[1 1]
[0 1], [ 3 -1]
[ 4 -1]]
}}}
These elements do *not* generate Gamma0(4); they generate an index 2 odd
subgroup of Gamma0(4) (which one can check is congruence of level 8, using
the functions added by ticket #11601).
I'd like to request the following changes:
- Make sure the "generators" are really in G when G is odd.
- If G is even and has no torsion, pad the list of generators with -1.
Otherwise, make sure representatives of the torsion generators are chosen
so the subgroup they generate contains -1.
- I'd also suggest we rewire the "generators" method of the top-level
arithmetic subgroup class to use Hartmut's new code by default, with the
old code as an optional fall-back.
- While we're at it, it would be nice to have a "farey_symbol" method of
arithmetic subgroups as an alternative to the constructor function.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11709#comment:26>
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.