#16976: Conjugacy classes and rational period functions for Hecke triangle 
groups
-------------------------------------+-------------------------------------
       Reporter:  jj                 |        Owner:
           Type:  enhancement        |       Status:  needs_work
       Priority:  major              |    Milestone:  sage-6.4
      Component:  modular forms      |   Resolution:
       Keywords:  hecke triangle     |    Merged in:
  group conjugacy class rational     |    Reviewers:
  period function                    |  Work issues:
        Authors:  Jonas Jermann      |       Commit:
Report Upstream:  N/A                |  94dae505a9b10515afb7c0013412e4d92a01626d
         Branch:                     |     Stopgaps:
  u/jj/triangle_conjugacy            |
   Dependencies:  #16936             |
-------------------------------------+-------------------------------------
Changes (by vdelecroix):

 * status:  needs_review => needs_work


Comment:

 Hello Jonas,

 It is always a bad choice to make a lot of modifications in one patch
 (especially because no reviewer will like it). From the description of
 your ticket, it looks like you would better have 2 or 3.

 Some remarks:
 - Why did you choose to put the code for triangle groups in
 `sage.modular.modform_hecketriangle`. As you can see elements of
 arithmetic groups are in `sage.modular.arithgroup` while the code relative
 to modular forms is in `sage.modular.modform`. People interested in Hecke
 groups are not necessarily interested in modular forms.
 - As you might have seen, the `ArithmeticSubgroupElement` class inherits
 directly from `MultiplicativeGroupElement` and not from
 `MatrixGroupElement_generic`. The reason is performance as most methods of
 `2x2` matrices (such as det, traces, ...) are much faster using explicit
 formulas. Moreover, the class for arithmetic group element only have four
 slots for the elements a,b,c,d which is much simpler than a list of
 vectors for storing rows.
 - Is `string_rep` standard ? I thought that `str` would have been better.
 - You must put '''useful''' tests in the class `HeckeTriangleGroupElement`
 and move it from the `__init__` method to the main documentation of the
 class. These examples are here to help the users. In particular, start
 with code that works, not with potential failure.
 - There are too much `cached_method`. In an ideal world there should be
 none. A python objects takes some amount of RAM, and each cached method
 stores python objects. Abusing with the `cached_method` implies that you
 can not deal with huge list of Hecke triangle group element. You should
 basically remove all of them unless you have a '''very''' strong argument
 for having it (e.g. `root_extension_embedding` in `HeckeTriangleGroup`).
 - Why do you use the algebraic field `AA` instead of number fields ? It is
 much slower in all situations. Note that there is a (relatively slow)
 method for checking that a number is positive: `.is_real_positive`.
 - What is the point of the method `m.root_extension_embedding()` ? You may
 use directly `m.parent().XXX`.

 Vincent

--
Ticket URL: <http://trac.sagemath.org/ticket/16976#comment:17>
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to