Ralf Hemmecke <[EMAIL PROTECTED]> writes: > > Modify the datastructure of cycleIndexSeries such that it really is a > > multivariate series: Currently, the smallest structure in the CIS is a > > polynomial, but it seems that it is more efficient to have as smallest > > structure a monomial... > > Fine. What data structure would you suggest? > > Would it be different from (simplyfied things a bit): > > Stream(List(Integer,PowerProduct)) > > (because this is basically what I have now, only that I call > > List(Integer,PowerProduct) = Polynomial(x1,...xn,...)
I am not a datastructure designer. However, what we may need is to distinguish between a monomial which has not yet been computed and a monomial with zero coefficient. Well, maybe it wouldn't really matter, one could store the monomials with zero coefficient just as well. > [...] you certainly see, that we would have to provide the lightweight > coefficient function for all operations (+, *, compose, functorial compose, > integrate, differentiate, exponentiate) in an efficient way. Not quite. Namely, we (well, in fact, you...) could "just" change the datastructure first (if necessary) and provide the new caching mechanism. Then the "old" algorithms for +, *, compose, functorial compose etc. should still work, albeit with the drawback, that they compute many monomials even if only one monomial is needed. In a second step, you could modify Plus and Times to actually use the new datastructure. > > In fact, I think this would be the right approach. This would also make > > specialising to the exponential generating series efficient, and in fact, > > specialising whenever "many" variables are set to zero, which does happen > > very > > often in the symmetric functions world. (One is the so called "principal > > specialisation of order n") > > Be a bit more precise. More precise about what? * the right approach: only those monomials that are actually needed should be computed, whenever possible. * symmetric functions: later in May, not now. I do not know enough about these things yet. Martin ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Aldor-combinat-devel mailing list Aldor-combinat-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/aldor-combinat-devel