Opened 9 years ago
Closed 9 years ago
#15444 closed defect (fixed)
Two algorithms for k-charge do not give same answer
Reported by: | aschilling | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-6.1 |
Component: | combinatorics | Keywords: | tableaux, charge |
Cc: | sage-combinat, zabrocki | Merged in: | |
Authors: | Anne Schilling | Reviewers: | Mike Zabrocki |
Report Upstream: | N/A | Work issues: | |
Branch: | public/combinat/k-charge-15444 (Commits, GitHub, GitLab) | Commit: | 8df647454982f5799a4267712551a78989f08992 |
Dependencies: | Stopgaps: |
Description (last modified by )
Currently, the two implementations of k-charge do not give the same answer:
sage: T = WeakTableaux(4,[4,3,2,1],[2,2,2,2,1,1],representation='bounded') sage: for t in T: print t.k_charge(), t.k_charge(algorithm='J') ....: 9 10 10 10 8 8 9 9 10 10 8 9 11 11
Comparing against the expansion of Hall-Littlewood symmetric functions in terms of k-Schur functions, it seems that the I-implementation is correct
sage: Sym = SymmetricFunctions(QQ['t']) sage: Qp = Sym.hall_littlewood().Qp() sage: ks = Sym.kschur(4) sage: ks(Qp[2,2,2,2,1,1])[Partition([4,3,2,1])] t^11 + 2*t^10 + 2*t^9 + 2*t^8
Compared to the book http://arxiv.org/abs/1301.3569 pg. 84 the bug seems to be in the method _height_of_restricted_subword in k_tableau.py.
Change History (11)
comment:1 follow-up: 2 Changed 9 years ago by
comment:2 Changed 9 years ago by
Yes, I think the implementation that Avi and Nate did is not quite correct. If you look at the second standard subword of your example above, then the program computes the height of the restricted subword incorrectly for the letter r=3.
comment:3 Changed 9 years ago by
Authors: | → Anne Schilling |
---|---|
Branch: | → public/combinat/k-charge-15444 |
Commit: | → 8df647454982f5799a4267712551a78989f08992 |
Status: | new → needs_review |
New commits:
8df6474 | Fixed bug in k-charge implementation for J-algorithm |
comment:4 follow-up: 5 Changed 9 years ago by
Description: | modified (diff) |
---|
comment:5 Changed 9 years ago by
I ran the following code for k=3 and 4 and now the two implementations seem to agree:
sage: for n in range(10): for la in Partitions(n,max_part=k): for mu in Partitions(n,max_part=k): T = WeakTableaux(k,la,mu,representation='bounded') if not all(t.k_charge() == t.k_charge(algorithm="J") for t in T): print la,mu ....:
comment:6 follow-up: 7 Changed 9 years ago by
Status: | needs_review → positive_review |
---|
Looks good to me. I tested it on much larger examples and everything seems to be correct now.
Thanks for fixing it.
comment:8 Changed 9 years ago by
Milestone: | sage-5.13 → sage-6.0 |
---|
comment:9 Changed 9 years ago by
Reviewers: | → Mike Zabrocki |
---|
comment:10 Changed 9 years ago by
Milestone: | sage-6.0 → sage-6.1 |
---|
comment:11 Changed 9 years ago by
Resolution: | → fixed |
---|---|
Status: | positive_review → closed |
Proposition 3.15 on p. 84 of our book states that the k-charge with the two algorithms are equal. Am I correct to assume that since you opened a ticket that the error is in the algorithm and not in that proposition?
To clarify