#18013: Implement abstract tableau refactoring
-------------------------------------+-------------------------------------
       Reporter:  jpswanson          |        Owner:
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.6
      Component:  combinatorics      |   Resolution:
       Keywords:  days64, sage-      |    Merged in:
  combinat, tableaux, refactoring,   |    Reviewers:
  days64.25, days68                  |  Work issues:
        Authors:  Josh Swanson       |       Commit:
Report Upstream:  N/A                |  fff8dbfe4e579b801ee5f9a2faabec40a144242b
         Branch:  public/18013       |     Stopgaps:
   Dependencies:                     |
-------------------------------------+-------------------------------------
Changes (by jpswanson):

 * keywords:  days64, sage-combinat, tableaux, refactoring, days64.25 =>
     days64, sage-combinat, tableaux, refactoring, days64.25, days68
 * status:  new => needs_review


Comment:

 I worked on this quite a bit more at days68 and it's now in a usable
 state, ready for others' comments and improvements. Some optimization
 should probably still be done, especially for the iterators. I'd also like
 to move tableaux stuff into their own namespace in the interpreter
 namespace, like graphs currently doest, but that's for another ticket.

 The next targets for tableaux cleanup should probably be ribbon tableaux
 (short but horrible) and straight shape tableaux (less short, less
 horrible).

 Oh, a couple of potentially controversial things I did:

 * Removed `__classcall_private__` (and the corresponding metaclass) in
 favor of factory functions for both parents and elements. The main benefit
 of the change is that people no longer have to have any idea about
 `(InheritComparison)ClasscallMetaclass`, `__classcall_private__`, etc. to
 work with this code, and it was just simpler; Element classes also don't
 have to know about their Parents in any way, so the abstraction seems
 cleaner. The main drawback is that import statements need to be updated
 depending on if they want the class or the factory. The vast majority of
 uses want the factory functions, which is what the deprecation warnings in
 the old `skew_tableau.py` point to. Syntax in the interpreter is
 unchanged.

 * Moved several methods from `SkewTableau` to `SemistandardSkewTableau` or
 `StandardSkewTabeau`, namely `bender_knuth_involution`, `rectify`,
 `slide`, and `to_permutation`. Perhaps deprecation warnings should be
 added.

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