#20445: Iteration through finite Coxeter groups
-------------------------+-------------------------------------------------
       Reporter:         |        Owner:
  stumpc5                |       Status:  new
           Type:         |    Milestone:  sage-7.2
  enhancement            |   Resolution:
       Priority:  major  |    Merged in:
      Component:         |    Reviewers:
  combinatorics          |  Work issues:
       Keywords:         |       Commit:
        Authors:         |  abfff5ffdf5e3d7a90bdaa542ecca3ba2691bffe
Report Upstream:  N/A    |     Stopgaps:
         Branch:         |
  u/stumpc5/20445        |
   Dependencies:         |
-------------------------+-------------------------------------------------

Comment (by tscrim):

 Replying to [comment:25 stumpc5]:
 > I would propose to first work out the implementation here and then see
 if we can use it also in the other places. I only don't see how to
 actually do the implementation in an optimal way, so some support of yours
 and/or Travis is appreciated.

 I'm really starting to consider that what we should do is create our own
 separate project where we write all of this independently (in, say,
 C/C++). At this stage, I'm somewhat concerned with the additional overhead
 that Cython could impose and the lack of complete memory control. Although
 I cannot commit serious time to working on this for then next two weeks (I
 will be in grading and math mode). Over the summer starting in June, I
 should be able to do so.

 > Some concrete questions:
 >
 > 1. It seems that we should use the same data structure as for
 {{{PermutationGroupElement}}}:
 >    {{{
 >        self.perm = <int *>sig_malloc(sizeof(int) * self.N)
 >    }}}
 >    Do you agree? Can we even get anything significantly better than
 sticking to {{{PermutationGroupElement}}} if we do it ourselves?

 I think we can avoid a bit of overhead of maintaining the GAP and category
 information. Although it is hard to tell how much of an impact this will
 have on things.

 >    This also asks whether we can do better when multiplying elements, I
 do not see what
 >    {{{
 >     cdef PermutationGroupElement prod =
 PermutationGroupElement.__new__(PermutationGroupElement)
 >    }}}
 >    does or how long it takes, see the method {{{_new_mul_}}} in
 {{{reflection_group_c.pyx}}}.

 This creates a new element in memory, but it does not call the `__init__`.
 It is essential and done in Python kernel, so we won't get any better.

 > 3. It seems that we are using {{{PermutationGroupElement}}} in a few
 places (when talking to {{{GAP3}}}}), but this might just be that we need
 the cycle string representation for that.

 GAP4 doesn't store things as cycle strings AFAIK, and so I doubt GAP3 does
 either.

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