#13074 closed enhancement (fixed)
Implementation of TableauTuples
Reported by: | andrew.mathas | Owned by: | Andrew Mathas |
---|---|---|---|
Priority: | major | Milestone: | sage-5.6 |
Component: | combinatorics | Keywords: | Tableaux, PartitionTuple |
Cc: | sage-combinat | Merged in: | sage-5.6.beta2 |
Authors: | Andrew Mathas | Reviewers: | Travis Scrimshaw |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | #9265, #13072 | Stopgaps: |
Description (last modified by )
Implements (standard) tableaux of shape a PartitionTuple. That is, tableau with shape a tuple of partitions, together with standard functions for these objects. These objects arise naturally in algebraic combinatorics, such as in the representation theory of the cyclotomic Hecke algebras of type G(r,1,n) and (hence) in the categorification of the irreducible highest weight representations (and their canonical bases) of the (quantum) affine special linear groups.
This patch implements TableauTuples and StandardTableauTuples and basic methods for them. The idea is that these classes should naturally extend the corresponding Tableaux classes, which are in bijection with 1-tuples of tableaux. As with PartitionTuples, the TableauTuple classes return honest Tableaux whilst still recognising them as being TableauTuples. Both Tableaux and TableauTuples classes have a component() method which returns the list of components which allows loops such as
for s in t.components(): do X
where t is a TableauTuple (or Tableau). With this modification is it possible to write code which will behave the same for both classes. Whenever they were meaningful, I have implemented existing functions for tableaux for the tableau tuples. For example, there are iterators for StandardTableauTuples, you can conjugate TableauTuples, take their shape and size, compute words, act on them, ...
The patch implements the following classes:
- TableauTuples
- !TableauTuples_all
- !TableauTuples_level
- !TableauTuples_size
- !TableauTuples_level_size
- StandardTableauTuples
- !StandardTableauTuples_all
- !StandardTableauTuples_level
- !StandardTableauTuples_size
- !StandardTableauTuples_level_size
- !StandardTableauTuples_shape
Attachments (1)
Change History (33)
comment:1 Changed 8 years ago by
- Cc sage-combinat added
- Description modified (diff)
- Milestone changed from sage-wishlist to sage-pending
- Status changed from new to needs_review
comment:2 Changed 8 years ago by
- Dependencies changed from 13072 to #13072
comment:3 Changed 8 years ago by
- Description modified (diff)
comment:4 Changed 8 years ago by
- Dependencies changed from #13072 to #13072 #9265
comment:5 Changed 8 years ago by
- Milestone changed from sage-pending to sage-5.3
comment:6 Changed 8 years ago by
- Dependencies changed from #13072 #9265 to #9265 #13072
- Description modified (diff)
- Priority changed from minor to major
comment:7 Changed 8 years ago by
New version of patch which has tuple code in partition_tuple.py and tableau_tuple.py
comment:8 Changed 8 years ago by
- Description modified (diff)
comment:9 follow-up: ↓ 10 Changed 8 years ago by
Hi Andrews,
First of all, many thanks form implementing tuple of tableaux. This is definitely a useful addition to Sage.
I didn't try to review your patch, but, when compiling the doc on Sage-Combinat queue, I noticed a bunch of warning from your file. Looking shortly at the patch, there is indeed many problems. You should to try to compile the doc with
sage -docbuild reference html
and then look into you browser to the compiled files. A few years ago, I wrote a page on the wiki to help writing the doc. It is at
http://wiki.sagemath.org/combinat/HelpOnTheDoc
Maybe it could help you. Also, be warned that it may be outdated.
Cheers,
Florent
comment:10 in reply to: ↑ 9 Changed 8 years ago by
Hi Florent,
I accept that there are warnings when you build the documentation but I don't see any errors in either the python source or in the html output. As you said that you can see many errors in the doc strings in the patch, could you please point out a few of them so that I know what to look for? Otherwise I will waste a lot of time on this.
There doesn't seem to be any documentation on trouble shooting the documentation and, unfortunately, the warnings produced when compiling the documentation do not seem to be that helpful. For example, my patch produces the following warnings in partition.py
/usr/local/src/sage/sage-5.3/local/lib/python2.7/site-packages/sage/combinat/partition.py:docstring of sage.combinat.partition:13: WARNING: Block quote ends without a blank line; unexpected unindent. /usr/local/src/sage/sage-5.3/local/lib/python2.7/site-packages/sage/combinat/partition.py:docstring of sage.combinat.partition:18: WARNING: Block quote ends without a blank line; unexpected unindent. /usr/local/src/sage/sage-5.3/local/lib/python2.7/site-packages/sage/combinat/partition.py:docstring of sage.combinat.partition:23: WARNING: Block quote ends without a blank line; unexpected unindent. /usr/local/src/sage/sage-5.3/local/lib/python2.7/site-packages/sage/combinat/partition.py:docstring of sage.combinat.partition:28: WARNING: Block quote ends without a blank line; unexpected unindent.
However, when I look at lines 13, 18, 23 and 28 of partition.py I don't see anything wrong -- and indeed, my patch does not appear to touch these lines (but these warning do not appear before my patch is applied...).
Presumably the line numbers above are not literal line numbers inside the file, and instead they are just relative line numbers in particular doc-strings, but I do not see how to find which doc strings the warnings refer to. Any hints that you can give would be much appreciated!
Andrew
comment:11 Changed 8 years ago by
- Reviewers set to Travis Scrimshaw
Hey Andrew,
Yes, those line numbers are not literal, I think they are some sort of offset from the start of methods which cause the problem. In short, the warnings are generally useless.
There's a fair amount of documentation that I feel needs to be tweaked, so I'll write a review patch with my proposed changes.
Best,
Travis
comment:12 Changed 8 years ago by
Thanks for doing this Travis. I think that I am now very much in your debt! I feel that you are again going over my documentation and fixing it up for me. Would it be better for me to have a first bash at improving it now that I understand a little better what it should like?
Andrew
comment:13 Changed 8 years ago by
Sure, go ahead. Thanks.
Travis
comment:14 Changed 8 years ago by
- Dependencies changed from #9265 #13072 to #9265 #13072 #11476
comment:15 Changed 8 years ago by
- Status changed from needs_review to positive_review
Looks good to me now. I believe the startup failure is acceptable since we are creating a new module so I'm setting this to a positive review. If anyone disagrees and has a way around this, please let me know.
comment:16 Changed 8 years ago by
- Dependencies changed from #9265 #13072 #11476 to #9265 #13072
comment:17 follow-up: ↓ 18 Changed 7 years ago by
- Status changed from positive_review to needs_work
There are some problems with the documentation formatting:
/release/merger/sage-5.6.beta0/local/lib/python2.7/site-packages/sage/combinat/partition.py:docstring of sage.combinat.partition.Partition_class.top_garnir_tableau:4: WARNING: Inline interpreted text or phrase reference start-string without end-string. /release/merger/sage-5.6.beta0/local/lib/python2.7/site-packages/sage/combinat/partition_tuple.py:docstring of sage.combinat.partition_tuple.PartitionTuple.top_garnir_tableau:5: WARNING: Inline interpreted text or phrase reference start-string without end-string.
comment:18 in reply to: ↑ 17 Changed 7 years ago by
Replying to jdemeyer:
There are some problems with the documentation formatting:
/release/merger/sage-5.6.beta0/local/lib/python2.7/site-packages/sage/combinat/partition.py:docstring of sage.combinat.partition.Partition_class.top_garnir_tableau:4: WARNING: Inline interpreted text or phrase reference start-string without end-string. /release/merger/sage-5.6.beta0/local/lib/python2.7/site-packages/sage/combinat/partition_tuple.py:docstring of sage.combinat.partition_tuple.PartitionTuple.top_garnir_tableau:5: WARNING: Inline interpreted text or phrase reference start-string without end-string.
I believe the problem is `top Garnir tableaux'
which should be 'top Garnir tableaux'
(unfortunately we can't strictly copy and paste our latex XP).
comment:19 Changed 7 years ago by
Thanks Travis (and Jeronen). I'll upload the easy fix shortly.
comment:21 Changed 7 years ago by
- Status changed from positive_review to needs_work
On sage.math
(Linux x86_64):
sage -t --long -force_lib devel/sage/sage/combinat/tableau_tuple.py *** *** Error: TIMED OUT! PROCESS KILLED! *** *** [1800.3 s]
Also, the header of the patch file is messed up.
comment:22 Changed 7 years ago by
This was caused by the test (on line 2193):
all(correct_number(mu) for mu in PartitionTuples (4,12)) # long time
which does pass but which takes a really long time. I have changed the 12 to an 8 which completes fast enough to make the automatic test happy.
I have also fixed up the header. As the doctest now passes I'll change it back to positive review. Hope that's OK as the patchbot will be able to verify this.
comment:23 Changed 7 years ago by
- Status changed from needs_work to positive_review
comment:24 follow-up: ↓ 27 Changed 7 years ago by
Preferably, doctests should take 30 seconds at most with 60 seconds as absolute maximum (measured on sage.math).
comment:25 Changed 7 years ago by
So this is still way too much:
sage: correct_number=lambda mu : StandardTableauTuples(mu).cardinality()==len(StandardTableauTuples(mu).list()) sage: time all(correct_number(mu) for mu in PartitionTuples(4,8)) True Time: CPU 457.57 s, Wall: 457.57 s
comment:26 Changed 7 years ago by
- Status changed from positive_review to needs_work
comment:27 in reply to: ↑ 24 Changed 7 years ago by
Replying to jdemeyer:
Preferably, doctests should take 30 seconds at most with 60 seconds as absolute maximum (measured on sage.math).
I thought that the whole point of the #long time tag is to allow for longer tests? If you like I can take it out but as it is marked with #long time my first preference would be to leave it in place.
Please advise.
Andrew
comment:28 Changed 7 years ago by
- Status changed from needs_work to positive_review
I found the relevant section of the development guide and see that your comments actually refer to the #long time tests, so I have removed the long test.
Cheers,
Andrew
comment:29 Changed 7 years ago by
Fixed patch header properly (re-exported by Mercurial).
comment:30 follow-up: ↓ 32 Changed 7 years ago by
- Dependencies changed from #9265 #13072 to #9265, #13072
Also, stuff like
#Relies on patch trac_13072-tuples-of-partitions_am.patch which implements a PartitionTuple class.
doesn't need to be mentioned in the commit message, since it's not useful information after the patch has been merged into Sage.
comment:31 Changed 7 years ago by
- Merged in set to sage-5.6.beta2
- Resolution set to fixed
- Status changed from positive_review to closed
comment:32 in reply to: ↑ 30 Changed 7 years ago by
Thanks for fixing these two things for me.
A.
Should now apply cleanly to 5.2 (on top of #9265 and #13072)
Apply: trac_13074-tuples-of-tableaux-am.patch