#15375: Extended Affine Weyl Groups SD40
-------------------------------------+-------------------------------------
       Reporter:  bump               |        Owner:  bump
           Type:  enhancement        |       Status:  needs_work
       Priority:  major              |    Milestone:  sage-6.8
      Component:  combinatorics      |   Resolution:
       Keywords:  days54, coxeter,   |    Merged in:
  days64, days65                     |    Reviewers:  Dan Bump, Anne
        Authors:  Daniel Bump, Dan   |  Schilling
  Orr, Anne Schilling, Mark          |  Work issues:
  Shimozono, Nicolas Thiery.         |       Commit:
Report Upstream:  N/A                |  b9152e2bc08cd314744b5fd5ef627a467778f25a
         Branch:                     |     Stopgaps:
  public/combinat/extended_affine_weyl_groups-15375|
   Dependencies:  #10963, #14102     |
-------------------------------------+-------------------------------------

Comment (by nthiery):

 Hi Mark,

 I had a look at the fundamental group code. Thanks for the hard work!

 Suggestions:

 - Would it be possible to make the code more type-free, in particular
   the initialization? For example, it seems likely to break the
   current version if one uses a relabeled type BC.


 - The logic for computing the special nodes would fit more naturally
   in Cartan types rather than here. Please implement that as a method
   `cartan_type.special_nodes()`.

   The special nodes form an orbit under the action of the automorphism
   group of the Dynkin diagram, right? If yes, then it would be enough
   to implement a generic method `CartanType_affine.special_nodes`,
   which would start from the special node as specified by
   `cartan_type.special_node()`, and take its orbit under the
   automorphism group of the Dynkin diagram. It's a small graph, so
   that's cheap enough.

 - Maybe add a test that the Cartan type is indeed affine?

 - Is the `_element_constructor_` needed at all?

 - `lambda i: finite_action_dict[i]` -> `finite_action_dict.__getitem__`

 - What about renaming `finite_action_dict`  to `reduced_words`?

 - `om` -> `omega` (I believe that's what we use in the crystal code)

   in general, please avoid abbreviations, unless they correspond to
   standard one-letter mathematical notations.

 - `..., finite = True)` -> `..., finite=True)`

 - The code is currently assuming that the `0` is the "main" special
   node, right?  Please use `cartan_type.special_node()` instead.

 - What about fusing the methods `family` and `group_generators`?
   `group_generators` should return a family anyway (unlike `gens`).

 - If you put the group in `XXX.FinitelyGenerated()`, the list of
   elements will be recovered from the group generators (of course,
   here we have a more straightforward way of doing it, so that may, or
   not, be how we want to do this).

--
Ticket URL: <http://trac.sagemath.org/ticket/15375#comment:76>
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