#20402: Make subword complexes compatible with  real reflection groups
-------------------------------------+-------------------------------------
       Reporter:  stumpc5            |        Owner:
           Type:  enhancement        |       Status:  needs_work
       Priority:  major              |    Milestone:  sage-7.2
      Component:  combinatorics      |   Resolution:
       Keywords:  reflection group,  |    Merged in:
  coxeter group, subword complex,    |    Reviewers:
  days80                             |  Work issues:
        Authors:  Christian Stump    |       Commit:
Report Upstream:  N/A                |  295d784db0ae24bed97ed7b4d3777df9dbd652c2
         Branch:  u/stumpc5/20402    |     Stopgaps:
   Dependencies:  #11187             |
-------------------------------------+-------------------------------------

Comment (by tscrim):

 Replying to [comment:27 stumpc5]:
 > Replying to [comment:25 tscrim]:
 >
 > > For the speed issues, how much of this is making a difference?
 >
 > The complete implementation depends on {{{has_descents}}} and
 multiplication of elements to be fast (and this will get another boost for
 {{{ReflectionGroup}}} in #20484), when you {{{%prun}}} the code for
 {{{CoxeterGroup}}} you don't see a single bottleneck but that it is too
 slow in many parts (I am not complaining about this speed issue in
 general, this implementation is uniform for all Coxeter systems, finite or
 infinite, so that's great and the speed is what one gets there!)

 That is not answering the question I asked. I asked about having one
 additional level of indirection to have a specialized function for when
 the input is an instance of `RealReflectionGroup`.

 > > If it does, you can separate out the important functionality into a
 separate method, and then subclass the general class which special cases
 the methods when you use `ReflectionGroup`.
 >
 > This implementation of subword complexes is **not** a general
 implementation that could be moved up the hierarchy, and then a few
 methods could be replaced for concrete implementations. All the internal
 core methods are written so that internally it only plays with numbers and
 permutations of numbers, you only see roots popping out when using the
 API.

 I'm sure there are only some key parts of it which are written that
 strongly depend on the input format. These could be abstracted to work in
 general with a special subclass which has the specialized method or into
 the implementations of the Coxeter group. This is a standard design
 pattern for code that I've seen many times over (we even have the former
 in Sage's matrix code).

 > Is is indeed possible to write a toy (in terms of speed) implementation
 for the category of {{{CoxeterGroups}}}, but I am not the one doing that
 at the moment -- what I provide is a research level implementation for
 {{{ReflectionGroup}}}.

 In many ways, we are beating a dead horse as you have basically done what
 I am asking for already (with the specializing being done in the different
 implementations of a Coxeter group).

 > > However, let me be a bit more stern, I will not set this ticket to a
 positive review when you essentially remove doctest coverage because
 `gap3` is not an optional package yet (although this argument weakens once
 it is). Moreover, you can test all of the functionality with standard
 Sage, which such tests should be localized to each method, not (only) in a
 class-level test which does the "core" functionality.
 >
 > Hm -- you see my complaints about that above. On the other hand, I also
 see your point of getting rotten untested code after a while, and I don't
 really care if we pollute the documentation with more tests.

 Then let's leave those tests in. That is the only thing I am asking for
 here.

 > > By renaming `action_on_root_indices`, you need to deprecate it.
 >
 > It was only there for a few months, see #11010, and this method is
 almost surely not used by anyone so far. You still think it should be
 deprecated ?

 I am pretty sure it appears in a stable release (i.e., 7.1), so yes.

--
Ticket URL: <http://trac.sagemath.org/ticket/20402#comment:37>
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 https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to