Here is the status of #7922. As I noted earlier, the timing issue is apparently fixed by making _weight_multiplicities a cached method, and the caching can be removed from product_on_basis.
Nicolas has a patch called trac_7922-review-nt.patch. Some of his comments can be implemented, others not very conveniently, and there is one that I am having trouble with. I will mostly pass over the ones that are easy. The text at the top of weyl_characters.py is supposed to appear in the reference manual. I don't think it does. I think fixing this requires some hand editing in doc/en/reference. Is that correct? One of Nicolas' comments is that the end of the mentioned text there should be a link to the tutorial. I could therefore add a link to this web page: http://www.sagemath.org/doc/thematic_tutorials/lie.html Is there anything else I should do to create an internal link within the references? The following comment is problematic: # TODO: implement this explicitly by converting to the weight # ring, computing the product there, and converting back. # # A more fancy approach would be to declare that the # WeylCharacterRing is a subalgebra of the WeightRing with the # conversion/coercions as lift and retract methods. Then the # product would be given for free by Algebras(QQ).SubObjects(). The problem here is that the weight ring is not constructed by default. As it stands the WeylCharacterRing is capable of functioning by itself without passing things back and forth to the weight ring, and it seems to me that this is a good thing. Similarly about Nicolas' comments about char_from_weights method and its helper: the weight ring is not constructed by default. I now come to a comment that I tried to implement but wasn't able to. # NT: Use _element_constructor_ instead, so as not to get in the # way of Sage's coercions; the coercion from the base ring will be # given for free; the coercion from the Weyl character ring to the # weight ring should be constructed as a module_morphism f, and # then registered using f.register_as_coercion. Reciprocally, the # partial map from the weight ring to the weyl character ring # should be registered as a conversion. Does this mean that a __call__ method should not be implemented for the weight ring? The code in question is somewhat fragile, and it took a lot of tinkering to get it working right. It would be good to remove it if there is a better way, but I wonder if Nicolas could expand on this comment a little. I note that the WeightRing inherits from CombinatorialFreeModule which has its own _element_constructor_ method. What I most don't understand about this comment is the statement about f.register_as_coercion. There are *no* examples in the code base except in the comments to the definition of register_as_coercion in morphism.pyx. Dan -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.