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.

Reply via email to