Hi Jason! On Wed, Sep 09, 2009 at 08:42:17AM -0400, Jason Bandlow wrote: > > If you notice parts which feel clumsy (you will!), or have suggestions > > for improvements, please take good notes of them. But don't implement > > them right away, or only in a separate experiment. Instead, we should > > discuss them and update systematically all the algebras according to > > the outcome of the discussion. > > I'll admit that I have only sat down once to really think about this > since Sage days. (Since classes start today, it will be at least a few > weeks before I get to do this again.)
Ok. Classes just started for me as wel ... > But I will say what I got stuck on--that was the technical details > of using Singular rings when we can. In other words the 'usual' > basis for multivariate polynomials in n variables is indexed by > compositions of length n, with (a1, a2, ..., an) corresponding to > x1^a1 ... xn^an. This should be relatively straightforward to > implement in a slow way, but I think we want to take advantage of > Singular. That is, multiplication should convert to Sage's > polynomial ring, multiply there, and then convert back. I can't > remember the details, but I remember I found this tricky. > Anyway, the point is that this is an implementation detail which does > not show up in NCSF, so any advice from the master (Nicolas) will be > appreciated, I'm sure, even if it is Adrien and not I who ends up using it. If at all possible I would recommend using directly Sage's polynomial ring (whose elements are indeed implemented in Singular), rather than creating a new one. So now, we need to list the obstacles: (1) All the following should return True (they currently don't) sage: QQ['x,y,z'] in Algebras(QQ) sage: QQ['x,y,z'] in ModulesWithBasis(QQ) sage: QQ['x,y,z'] in GradedHopfAlgebrasWithWithBasis(QQ) (2) The implementation of QQ['x,y,z'] should fulfill the corresponding promises. In particular, the parent should know that the basis is indexed by integer vectors, and have all the methods like term, monomial, ...; the elements should have all the appropriate accessors. I hope there won't be conflicts with preexisting methods! (3) The parent should inherit from the category code. sage: QQ['x,y,z'](1).__class__.mro() ... <class 'sage.categories.algebras.Algebras.parent_class'>, ... For the elements, this will require another category feature: the inheritance from category for Cython class. There is not theoretical problem (there is a proof of concept in the examples), but this has not yet been streamlined. Hopefuly, we won't need this right away. Please create a ticket, and add anything else you may stumble upon. Btw: the same thing should be done to make FreeModule an object of FiniteDimensionalModulesWithBasis(). Volunteers? Cheers, 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-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 -~----------~----~----~----~------~----~------~--~---