Ralf Hemmecke <[EMAIL PROTECTED]> writes: > On 03/13/2007 09:48 AM, Martin Rubey wrote: > > Martin Rubey <[EMAIL PROTECTED]> writes:
> > So, I tried the easiest non-trivial example, namely that of Times: > > We'd have > > [x^\sigma] Z_{f*g} = \sum_{\tau <= \sigma} > > [x^\tau] Z_f [x^{\sigma-\tau}] Z_g > > where > > * \sigma is a cycle type > > * x^\sigma = x1^{\sigma_1} x2^{\sigma_2} ... > > * [x^\sigma] Z_f denotes the coefficient in Z_f > > * \tau <= \sigma is to be understood componentwise. > > I believe that this would imply a significant speedup in functorialCompose. > > Ralf, don't you do something like this internally anyway, in order to > > obtain the product of cycle index series? > > It depends on how you see it. You probably know how you multiply univariate > power series. Now think of the coefficient as a (weighted) homogeneous > polynomial in the variables x1,...,xn. Multiplication of two CIS is done > exactly that way. Yes, that's why I wrote: > > (Well, it doesn't seem so. Maybe that's a point for having multivariate > > series...) > If I do as you suggest, I would have to recompute [x^\sigma] Z_{f*g} each > time I need it. No, the result should be cached. Furthermore, I did not suggest to get rid of the cycleIndexSeries as we have it now. Rather, to provide a second function that computes only a certain coefficient fast. I.e., we would have two different versions of coefficient (!): one, which computes the whole cycleIndexSeries and another that computes only the coefficient. Of course, it may make sense to combine the two approaches. 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... > Or perhaps you tell me how you then compute the n-th coefficient of the > isomorphismType series from the CIS. Of course, these monomials have to be grouped by total weight. Thus, when you ask something like coefficient(series, 28) all monomials of total degree 28 are computed, but when you ask for coefficient(series, [0,0,0,1,0,0,0,3]) only one monomial is computed. 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") It would not affect the type generating series, of course. (which is the "stable principal specialisation", by the way...) 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