Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Oscillating Tableaux #25557

Open
BruceWestbury opened this issue Jun 11, 2018 · 44 comments
Open

Oscillating Tableaux #25557

BruceWestbury opened this issue Jun 11, 2018 · 44 comments

Comments

@BruceWestbury
Copy link

This implements oscillating tableaux (aka up down tableaux). These are represented as a sequence of partitions. They can also be constructed from
appropriate words or perfect matchings. I have implemented the action of
the cactus group.

Depends on #25434

CC: @kevindilks @mantepse @sagetrac-pfannerer

Component: combinatorics

Keywords: oscillating tableau, cactus group

Author: Bruce Westbury

Branch/Commit: u/Bruce/oscillating_tableaux @ 247e3d2

Reviewer: Travis Scrimshaw, Frédéric Chapoton

Issue created by migration from https://trac.sagemath.org/ticket/25557

@BruceWestbury BruceWestbury added this to the sage-8.3 milestone Jun 11, 2018
@BruceWestbury
Copy link
Author

Changed keywords from none to oscillating tableau, cactus group

@BruceWestbury
Copy link
Author

Dependencies: #25434

@BruceWestbury
Copy link
Author

Author: Bruce Westbury

@BruceWestbury

This comment has been minimized.

@BruceWestbury
Copy link
Author

Branch: u/Bruce/oscillating_tableaux

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 1, 2018

Commit: 53c8d04

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 1, 2018

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

e25e2aaMerge branch 'develop' into t/25434/pathtableaux
6518f21Dealt with Travis' objection to my `__getattr__` hack and most of his other comments.
ec63927Made minor changes to catalan.py
12b27c4Changed directory name
653f8a5Changed import to new file names
136660eMerge branch 't/25434/pathtableaux' into t/25557/oscillating_tableaux
6bab3e6Made fixes so it works with new version of path_tableaux
6eb764eWorked on getting doctests to pass
3168307Working on doctests
53c8d04More doctests

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 1, 2018

Changed commit from 53c8d04 to e596a6a

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 1, 2018

Branch pushed to git repo; I updated commit sha1. New commits:

e596a6aEdited documentation

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 24, 2018

Branch pushed to git repo; I updated commit sha1. New commits:

03152b8Moved ClonableArray from ABC class to implementation
2c77948Merge branch 't/25434/pathtableaux' into t/25557/oscillating_tableaux
dd7f9d6Moved ClonableArray to implementation

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 24, 2018

Changed commit from e596a6a to dd7f9d6

@kevindilks
Copy link
Mannequin

kevindilks mannequin commented Jan 25, 2019

Changed branch from u/Bruce/oscillating_tableaux to u/kdilks/oscillating_tableaux

@kevindilks
Copy link
Mannequin

kevindilks mannequin commented Jan 25, 2019

Changed commit from dd7f9d6 to bf7e8b7

@kevindilks
Copy link
Mannequin

kevindilks mannequin commented Jan 25, 2019

comment:9

There were some minor typos in the module.rst file causing documentation build to fail.


New commits:

8e014c3Merge branch 'u/Bruce/oscillating_tableaux' of git://trac.sagemath.org/sage into 25557OscTab
bf7e8b7fixed module.rst links

@kevindilks
Copy link
Mannequin

kevindilks mannequin commented Jan 25, 2019

comment:10

There definitely needs to be some kind of documentation string with examples for the classes themselves. Right now if I try to do OscillatingTableau? or OscillatingTableaux? in command line, instead of getting information about what inputs I should be giving, what the objects look like, what rules there are for the objects, what are some sample objects I could create to use tab completion to see what methods are available etc., I just getting information about lazy_import.

@BruceWestbury
Copy link
Author

Changed branch from u/kdilks/oscillating_tableaux to u/Bruce/oscillating_tableaux

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 26, 2019

Changed commit from bf7e8b7 to 90673a6

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 26, 2019

Branch pushed to git repo; I updated commit sha1. New commits:

90673a6Added more documentation

@sagetrac-pfannerer
Copy link
Mannequin

sagetrac-pfannerer mannequin commented Feb 11, 2019

comment:13

There is a minor error in OscillatingTableau.to_word:
A minimal example is

sage: OscillatingTableau([[2,1],[2,2]]).to_word()
[1]

instead of

[2]

Here is a fix:

diff --git a/src/sage/combinat/path_tableaux/oscillating.py b/src/sage/combinat/path_tableaux/oscillating.py
index b88bfb8..931553c 100644
--- a/src/sage/combinat/path_tableaux/oscillating.py
+++ b/src/sage/combinat/path_tableaux/oscillating.py
@@ -334,7 +334,7 @@ class OscillatingTableau(ClonableArray,PathTableau):
         """
         n = len(self)
         result = [0]*(n-1)
-        l = map(len,self)
+        l = map(len, self)
 
         for i in range(n-1):
             if l[i] > l[i+1]:
@@ -342,9 +342,11 @@ class OscillatingTableau(ClonableArray,PathTableau):
             elif l[i] < l[i+1]:
                 result[i] = l[i+1]
             else:
-                for u, v in zip(self[i],self[i+1]):
-                    if u != v:
-                        result[i] = v-u
+                for j in range(l[i]):
+                    d = self[i+1][j]-self[i][j]
+                    if d:
+                        result[i] = (j+1)*d
+                        break

@kevindilks
Copy link
Mannequin

kevindilks mannequin commented Feb 11, 2019

comment:14

Next round of comments:

  • documentation, Example: are things that are tested and shown to the user. Test: are things that are checked during doctests, but aren't shown to the user in documentation. So you want the code for promotion being the inverse of rotation to be in the example environment, and the various testsuites to be under a test environment.

  • The convention for docstring phrasing is "Return a " instead of "Returns a ".

  • Phrasing of "This has vertices words of length r in this alphabet" is a little awkward. Maybe make it "The vertices are words of length r in this alphabet".

  • Would it make sense to have a possible type of input be a partition shape, along with a word indicating which rows boxes are added/removed from? It seems a little asymmetric that most forms of input allow you to start from an arbitrary shape, but word input forces you to start from the empty shape.

  • Docstring for is_skew should have the fancy quotes around True and False.

  • crossing_number is missing a an empty line and EXAMPLE: between the docstring text and examples.

  • crossing_number and nesting number should explain that it's coming from the associated matching. It's only mentioned under the to_perfect_matching() method that there's a bijection between the oscillating tableau that start/end at the empty shape and perfect matchings, and no mention of a relationship between arbitrary oscillating tableau and matchings.

  • There should be some kind of definition for descents. Even though it's called 'references', as much as possible you really only want to use them as citations for accreditation, or as an additional reference for finer details/technicalities. Somebody reasonably familiar with the broader subject area should be able to read the docstring and understand what it does without needing to consult outside references.

  • In sundaram, I don't know that 'straight oscillating tableau' is standard terminology, and it's never explicitly mentioned that 'straight oscillating tableau' means 'oscillating tableau that starts with the empty shape'. Also, the definition needs to be a little more precise, since 'complement' is ambiguous unless you specify a superset. I would also add an extra line of docstring as an extra paragraph mentioning how if you require the final shape to be empty, you get a bijection to perfect matchings (and include a link to to_perfect_matching).

  • to_perfect_matching needs a little more in the docstring (and potentially link to sundaram), and should check that the final shape is empty, and return an error otherwise.

@sagetrac-pfannerer
Copy link
Mannequin

sagetrac-pfannerer mannequin commented Jul 11, 2019

Changed branch from u/Bruce/oscillating_tableaux to u/pfannerer/oscillating_tableaux

@sagetrac-pfannerer
Copy link
Mannequin

sagetrac-pfannerer mannequin commented Jul 11, 2019

Changed commit from 90673a6 to 376f3ec

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 18, 2020

Changed commit from 547c117 to 1e1528a

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 18, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

6f4be3cImproved documentation and testing thanks to Kevin's comments
453d0ceMore testing
1e1528aMore testing

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 18, 2020

Changed commit from 1e1528a to 74b0939

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 18, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

74b0939Remove import of StandardTableau

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 19, 2020

Changed commit from 74b0939 to 8edd839

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 19, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

1511a94Added more tests
8edd839More testing

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 19, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

387c0bdMinor changes in doc strings
0c5bee9Merge branch 't/25434/pathtableaux' into t/25557/oscillating_tableaux
d714012Worked on doc strings

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 19, 2020

Changed commit from 8edd839 to d714012

@BruceWestbury
Copy link
Author

Reviewer: tscrim, chapoton

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 30, 2020

Changed commit from d714012 to 396095f

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 30, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

4747bd6Added catalog.py and changed name
8567a47Changed _local_rule to local_rule
767405cTried to write catalog.py
0942d3bEdited combinat/all.py all.py etc. to import from catalog
62e7e63Minor edits
ab20331Merge branch 't/25434/pathtableaux' into t/25557/oscillating_tableaux
c10f041Edited all.py catalog.py etc.
396095fRemoved an underscore

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 31, 2020

Changed commit from 396095f to 247e3d2

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 31, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

b248c6aChanged to one line if
29d166fMerge branch 't/25434/pathtableaux' into t/25557/oscillating_tableaux
247e3d2Removed .format in Error messages

@mkoeppe mkoeppe modified the milestones: sage-9.2, sage-9.3 Oct 24, 2020
@mkoeppe
Copy link
Member

mkoeppe commented Mar 15, 2021

comment:30

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

@mkoeppe mkoeppe modified the milestones: sage-9.3, sage-9.4 Mar 15, 2021
@mkoeppe
Copy link
Member

mkoeppe commented Jul 19, 2021

comment:31

Setting a new milestone for this ticket based on a cursory review.

@mkoeppe mkoeppe modified the milestones: sage-9.4, sage-9.5 Jul 19, 2021
@mkoeppe
Copy link
Member

mkoeppe commented Dec 18, 2021

comment:32

Stalled in needs_review or needs_info; likely won't make it into Sage 9.5.

@mkoeppe mkoeppe modified the milestones: sage-9.5, sage-9.6 Dec 18, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.6, sage-9.7 Apr 2, 2022
@mkoeppe mkoeppe modified the milestones: sage-9.7, sage-9.8 Sep 19, 2022
@fchapoton
Copy link
Contributor

Changed reviewer from tscrim, chapoton to Travis Scrimshaw, Frédéric Chapoton

@mkoeppe mkoeppe removed this from the sage-9.8 milestone Jan 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants