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

Reply via email to