Hi Niolcas,

On Sun, Jan 31, 2010 at 01:01:44PM -0800, Anne Schilling wrote:
Should
direct_sum_of_crystals
be a method similar to
TensorProductOfCrystals?
Then the input would be a list of crystals (B_1,...,B_n) whose direct sum one 
takes.
I suppose the elements would then be stored as tuple
tuple(b,i)
where b \in B_i.

Yes. And you can inherit from DisjointUnionEnumeratedSets which should
give you the data structure and enumeration for free.

I have implemented the direct sum of crystals in the patch crystal-hw-as.patch.

The good news is that in the case when there are no multiplicities in the B_i,
one can use the options keepkey = False, facade = True
and then I did not even need to implement the crystal operators e and f since 
the
elements in DisjointUnionEnumeratedSets are still interpreted as crystal 
elements.
In the other case, one can set keepkey = True, facade = False.

Could you please have a look whether the code makes sense before I upgrade
HighestWeightCrystals

What is the difference between

DirectSumOfCrystals.Element
DirectSumOfCrystals.element_class

One could allow for options such as
multiplicity_free = True
and then use the approach as currently in CrystalOfTableaux (when specifying
several shapes) or HighestWeightCrystals (when several dominant weights
are specified).

Exactly. Or just detect that automatically by looking at the highest weights.

I now use the same options that Florent used in DisjointUnionEnumeratedSets.

Please have a look at TestSuite?, and let me know if it could use
improvements. In short, you just have to throw a ``_test_whatever``
method anywhere in your class hierarchy (typically in Crystal). For an
example of such method, see:

        sage: S = Semigroups().example()
        sage: S._test_associativity??

I added _test_fast_iter_ in combinat/crystals/crystals.py but now get
a few test failures in spins.py, affine.py, ... . I suppose one needs
to check whether the crystal if of classical Cartan type? But this was not
checked before in check().

Cheers,

Anne

--
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-de...@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