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" <nicolas.thi...@u-psud.fr> > 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" <nthi...@users.sf.net>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 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.