On 1/22/11 5:59 AM, Nicolas M. Thiery wrote:
Hi Anne,
On Wed, Jan 19, 2011 at 03:10:17AM -0800, Anne Schilling wrote:
I have some questions about the details of this implementation.
Currently, there is a class
class CrystalOfTableaux(CrystalOfWords):
...
Is your suggestion to define a function
def CrystalOfTableaux(cartan_types, shapes):
and to rename the current class CrystalOfTableaux to
class CrystalOfTableauxGeneric(CrystalOfWords):
or something like this.
CrystalOfTableaux would then dispense to CrystalOfTableauxGeneric
or CrystalOfTableauxWithSpin depending on the variables `shapes'.
Is this what you meant?
Precisely.
A close variant, a bit more advanced but nicer for the user, is to
keep the current CrystalOfTableaux under its name, with
CrystalOfTableauxWithSpin as subclass, and to extend
CrystalOfTableaux.__classcall__ to do the dispension work. For
technical details, see:
- ClasscallMetaclass?
- ClasscallMetaclass.__call__?
Well, since there was no answer, I already implemented it the first way.
See crystal-spin-as.patch in the sage-combinat queue.
One problem is that currently all shapes in `shapes` need to be of the
same type for this to work, so one cannot mix nonspin shapes with
spin shapes in the same list. Would this be resolved using
ClasscalMetaclass? I do not currently need this for the applications
I have in mind, but to have the code in most generality it would be
good to upgrade it to such.
Best,
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-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.