Changes between Version 1 and Version 15 of Ticket #16926


Ignore:
Timestamp:
02/07/15 23:18:17 (7 years ago)
Author:
tscrim
Comment:

Okay, done. So some notes for the reviewer:

  • Currently descents behavior differs from that given by the category, so as to avoid backwards incompatible change, we leave warning messages and leave the behavior alone.
  • reduced_word() does not respect the order of multiplication and needs to be fixed so that TestSuite passes.
  • I've added as much common functionality between SymmetricGroup and Permutations since the former is a gap version of the latter. I'm leaving WeylGroup alone because it is a matrix group, but if someone wants to add better support for conjugacy classes, then go ahead.
  • I made a bunch of other optimizations for iterating over elements and micro-optimizations.
  • I abstracted StandardPermutations_n to better reflect the mathematics.
  • Better and more careful handling of parents during multiplication.
  • The from_* now can take a parent as input to better control their output (this was needed).

Some todo's for later:

  1. Improve the speed of multiplying Sage permutations:
    sage: S = SymmetricGroup(5)
    sage: R = S.simple_reflections()
    sage: %timeit prod(R)
    10000 loops, best of 3: 36.6 µs per loop
    sage: P = Permutations(5)
    sage: R = P.simple_reflections()
    sage: %timeit prod(R)
    1000 loops, best of 3: 413 µs per loop
    
  1. Refactor the Permutation class to better be an element class, especially parsing of input (hard and tedious).
  1. Fix the issues noted above (also hard).

However, IMO the current version should be reviewed and included into Sage (as it is needed for #11111).

This is the other option, which I am keeping here for the official record:

  • Create a category SymmetricGroups. Put the relevant groups in this category.
  • Generalize the features (Yucis-Murphy elements, ...) from SymmetricGroupAlgebra to the category SymmetricGroups.Algebras.
  • Put SymmetricGroupAlgebra in this category, and strip away all the code that is not needed anymore.
  • Cross ref the different implementations in the documentation.

New commits:

8144d47Added optional argument for indexing set of SGA.
a2d9dcdInitial setting of StandardPermutations_n to be in FiniteWeylGroups.
765cbdbFixes and tweaks and speedups.
a63dfd3Added support for conjugacy classes for permutation groups.
f15f40cSome additional fixes and cleanup.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #16926

    • Property Status changed from new to needs_review
    • Property Authors changed from to Travis Scrimshaw
    • Property Cc virmaux added
    • Property Branch changed from to public/combinat/fix_sga-16926
    • Property Commit changed from to f15f40cd95cd94cd3e4a3b843fd0b257746d43f0
  • Ticket #16926 – Description

    v1 v15  
    66- ...
    77
    8 They mostly differ in how the elements of the symmetric group are represented, and each representation can have its advantage depending on the application in mind. So it's fine to keep them all. On the other hand, currently only the first one makes use of the special features of the symmetric group. Here is a plan to share those features across all implementations:
     8They mostly differ in how the elements of the symmetric group are represented, and each representation can have its advantage depending on the application in mind. So it's fine to keep them all. On the other hand, currently only the first one makes use of the special features of the symmetric group. After a discussion, we came up with a plan to share those features across all implementations:
    99
    10 Create a category `SymmetricGroups`. Put the relevant groups in this category.
    11 
    12 Generalize the features (Yucis-Murphy elements, ...) from `SymmetricGroupAlgebra` to the category `SymmetricGroups.Algebras`.
    13 
    14 Put `SymmetricGroupAlgebra` in this category, and strip away all the code that is not needed anymore.
    15 
    16 Cross ref the different implementations in the documentation.
    17 
    18 Volunteers?
     10- Make the categories and functionality as coherent as possible.
     11- Have `SymmetricGroupAlgebra` take an optional input for the index set.