#14141: Implementation of Knutson-Tao puzzles
----------------------------------------------------------------------+-----
       Reporter:  aschilling                                          |         
Owner:  sage-combinat                          
           Type:  enhancement                                         |        
Status:  needs_review                           
       Priority:  major                                               |     
Milestone:  sage-5.10                              
      Component:  combinatorics                                       |    
Resolution:                                         
       Keywords:  puzzles, Littlewood-Richardson coefficiens, days45  |   Work 
issues:                                         
Report Upstream:  N/A                                                 |     
Reviewers:  Allen Knutson, Liz Beazley, Ed Richmond
        Authors:  Franco Saliola, Avinash Dalal, Anne Schilling       |     
Merged in:                                         
   Dependencies:  #14299                                              |      
Stopgaps:                                         
----------------------------------------------------------------------+-----

Comment (by aschilling):

 Replying to [comment:10 saliola]:
 > General comments on the patch:
 > - This patch has not been rebased: it fails to apply on 5.9.beta5 (and
 on 5.9.rc0 according to the patchbot).

 I think it depends trivially on #14299 which was merged in
 sage-5.10.beta0.

 > Comments on the interface:
 > - I don't think that {{{PuzzlePiece, PuzzlePieces, PuzzleSolver}}}
 should be imported into the global namespace. These names are too generic
 to apply to only KT puzzles.

 How would the user then find information about puzzles? If we do not
 import anything in the namespace, then there is no entry point via tab
 completion.

 > - Is it expected that the average user will create new puzzle pieces? or
 is it that {{{PuzzleSolver}}} will be the most used command?

 I think {{{PuzzleSolver}}} will be the most common command. And currently
 the user does not have to create his/her own puzzle pieces since
 {{{PuzzleSolver("H")}}} is an option. That's also why I think
 {{{PuzzleSolver}}} should be in the global namespace.

 > - I think it would be preferable to have one entry point to the module,
 from which users import what they need.
 > - And this entry point should have appropriate documentation describing
 all the features (kind of like the current documentation to the module,
 but with some enhancements).
 > - Perhaps {{{KnutsonTaoPuzzleSolver}}}?

 Sure, we could rename it this way.

 > Comments on documentation to the module (top of the file):
 > - If I do {{{import knutson_tao_puzzles}}} followed by
 {{{knutson_tao_puzzles?}}}, I see {{{1/0  0/1}}} as a puzzle piece. I
 don't know what this piece is. Is this a problem with the documentation
 rendering system?

 I do not seem to see this!?

 > - The string representations should be explained: most people won't know
 what {{{1/0 0\1}}} means.
 > - The {{{TODO}}} section describes a possible speed up. Isn't this what
 {{{_fill_strip}}} and {{{_fill_puzzle_by_strips}}} does?

 Ok, then please remove this comment!

 > Comments on {{{PartialPuzzle}}}:
 > - {{{LR_tab_from_puzzle}}} is not a good name. Perhaps just call it
 {{{skew_lr_tableau}}}.
 > - {{{plot_thru_puzzle}}} is not a good name. {{{thru}}} is not an
 English word.

 Ok, feel free to change the names.

 > - the error from comment 7 above should be included as a doctest.
 > - {{{assert}}} should be avoided.
 > - {{{partition_from_string}}}: I don't know what this method does. The
 documentation is not descriptive. What is the "string data" of a
 partition? If this is a standard partition constructor, then should it be
 in {{{Partition}}} instead?

 Yes, in fact you can do

 {{{
         sage: Partitions().from_zero_one([1, 1, 1, 1, 0, 1, 0])
         [5, 4]
 }}}

 But I think the only problem is that one needs the partition to be padded
 by 0s.

 > Comments on {{{PuzzleSolver}}}:
 > - "Initialize the puzzle solver" is not a sufficient 1-line description
 since it doesn't mention the kind of puzzles dealt with.
 > - there is an option called 'maxLetter' in the INPUT section, but the
 init doesn't take maxLetter as an argument ... oh wait, it's in
 {{{__classcall_private__}}}. Why is {{{__classcall_private__}}} needed
 here?

 To mend the input, so that UniqueRepresentation works!

 > - there should be doctests that show how to use "maxLetter"
 > - The output is not a function (but instances of the class happen to be
 callable).
 > - several methods are missing the mandatory 1-line string documentation
 and instead just include examples / tests.

 I think private methods are not required to have the one line description.

 > Comments on {{{SchubertCalculusAlgebra}}}:
 > - should this really be in this module? it seems to experimental (there
 is also some commented out code that shouldn't be included)

 Ed and Liz really liked this feature, to be able to compute structure
 coefficients in an easy way.

 > - it was implemented as a proof of concept and has no special features;
 perhaps it should be deleted and further developed in a separate patch?
 > - in the doctest for {{{product_on_basis}}}, the base ring of the
 algebra is {{{QQ}}}, but the coefficients belong to a different ring:
 > {{{
 > sage: from sage.combinat.knutson_tao_puzzles import
 SchubertCalculusAlgebra
 > sage: Sc = SchubertCalculusAlgebra(QQ, (3,3)).basis()
 > sage: x = Sc[Word('001011')] * Sc[Word('010101')]
 > sage: x.parent().base_ring()
 > Rational Field
 > sage: x.coefficients()[0].parent()
 > Multivariate Polynomial Ring in y0, y1, y2, y3, y4, y5, y6 over Integer
 Ring
 > }}}

 That is indeed a problem!

 >I don't have the time to address my comments myself this week with a
 proper review patch, but I can at some point over the next week. There are
 a few things to decide beforehand, so we can at least discuss these here
 in the meantime.

 I am looking forward to your review patch next week! I am moving back to
 Davis tomorrow, so won't have time either to work on this before your
 review patch.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/14141#comment:16>
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to