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.

Reply via email to