Thanks for the pointer Jason. I'll have a look. Andrew
On Sep 3, 12:23 am, Jason Bandlow <[email protected]> wrote: > Dear Andrew and Nicolas, > > Nicolas--thanks for you comments! I'm glad to hear that the basic design > I had in mind isn't totally crazy. :) > > Andrew, thanks for agreeing to review! I will try to work on this in > the next few weeks. Please add yourself to the cc of trac ticket #9265, > and I'll post whatever progress I make there. > > > Is there any documentation written > > about how all of this is about to work? > > I don't think there is any completely comprehensive documentation on > categories. Doing sage.categories.primer? will get you started, but all > I know how to do after that is look at examples. (Of which there are > some very good ones!) > > Cheers, > Jason > > On 09/02/2010 09:33 AM, Andrew Mathas wrote: > > > Dear Nicolas and Jason, > > > I am happy to be the reviewer. Is there any documentation written > > about how all of this is about to work? I have looked a little for it > > without success. My impression is that the general structure is very > > well thought out but without having Nicolas or Florent sitting next to > > you it is hard to learn what the intended design is! > > > Andrew > > > On Sep 1, 2:53 am, "Nicolas M. Thiery" <[email protected]> > > wrote: > >> Hi Jason! > > >> For once, I am trying hard to procrastinate on the Sage-Combinat > >> e-mails in order to focus on finishing our paper with Florent and > >> Anne, instead of the converse; hence my slow answer. > > >> Thanks for your long post! It sounds all fine to me. I'll just insert > >> a couple micro comments below. I hope someone goes on and implements > >> this! It would be great if you could do with Andrew as reviewer (or > >> the converse, or with whatever pair programming scheme fits you). > > >> On Thu, Aug 19, 2010 at 12:11:47PM -0400, Jason Bandlow wrote: > >>> The 'metaclass' trick is so that both of these will work, and the > >>> parents will be set appropriately. Anyway, here is what I roughly think > >>> the element classes should look. > > >> And I should mention that the "metaclass trick" is nothing but a > >> syntactic sugar so that one can use the same name Tableau for both: > > >> - the function used to create a tableau > >> - the base class for all tableaux. > > >> Currently in Sage, those two gadgets are usually distinct (think > >> Partition/Partition_class which makes it inconvenient for the user to > >> access Partition_class, say for an isinstance test. > > >>> class Tableaux(UniqueRepresentation, Parent): > >>> ... > >>> class SemistandardTableaux(UR, Parent, Tableaux): # similar > >>> class StandardTableaux(UR, Parent, SemistandardTableaux): # similar > > >> No need to specify again UR and Parent; those are inherited through > >> Tableaux. > > >>> Finally we have the specific parent classes. I think they should look > >>> roughly as follows. > > >>> **** The parent classes **** > > >>> class Tableaux_all(Tableaux): > >>> def __init__(self): > >>> super(Tableaux_all, self).__init__() > >>> # I don't know a good category, since general tableaux (which > >>> # allow, for example, real-number entries) are not enumerable. > > >> I guess Sets() is the best we can do. > > >>> class SemistandardTableaux_all(DisjointUnionEnumeratedSets, > >>> SemistandardTableaux): > > >>> def __init__(self): > >>> DisjointUnionEnumeratedSets.__init__( > >>> self, Family(NonNegativeIntegers(), > >>> SemistandardTableaux_size), > >>> facade=True, keepkey = False) > >>> # Note that I'm not clear on what facade and keepkey do. > >>> # They may not be necessary or advisable. > > >> * With keekkey = True, the elements of the disjoint union would be of > >> the form (5, Partition([3,2])). That's only useful when one wants > >> to construct the disjoint union of a collection of sets which are > >> not originally disjoint (e.g. building n copies of a given set). > > >> * facade = True/False controls whether, for x in > >> SemiStandardTableaux(), x.parent() is SemiStandardTableaux() or > >> SemiStandardTableaux(shape=...) > > >>> class SemistandardTableaux_size(SemistandardTableaux): > > >>> def __init__(self, size): > >>> super(SemistandardTableaux_size, self).__init__( > >>> category = InfiniteFiniteEnumeratedSets()) > > >> Interesting category :-) But yes, the category should be set to one or > >> the other depending on what makes sense. > > >> Nicolas > >> -- > >> Nicolas M. Thi ry "Isil" <[email protected]>http://Nicolas.Thiery.name/ -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
