Question: Fast multiplication of Two-variable Puiseux series

Hi,

I'm coming from Mathematica since Mathematica uses single-core to compute multiplications of puiseux series, so I'm looking for any software that might do this faster. I don't know Maple -- I hope it can use multiple cores and runs faster.

 

My calculation is basically multplying out thousands of terms of the following type:

5/y + 10 + y + (((8/y^2 - 13/y + 108) - 64/y) + 10*y^2)*q + (3/y^3 + 2/y^2 - 240/y + 808 - 513*y + 108*y^2 + y^3)*q^2

How should I do this? Maple doesn't seem to have multivariate puiseux series data structure. But observe my series is simple -- I have a power series in q and a Laurent series in y.

I could

1. Multiply using 'expand' . My worry is, if I expand product of two series in q^10000 then this is probably slower than Mathematica since 'expand' would compute far more terms than necessary instead of throwing away the extra terms beyond q^10000 in some O(q^10000) notation like Mathematica does.

2. I could use 'series' in q. 

series((1/y + 10 + y + (((10/y^2 - 64/y + 108) - 64/y) + 10*y^2)*q + (1/y^3 + 108/y^2 - 513/y + 808 - 513*y + 108*y^2 + y^3)*q^2)*(1/y + 10 + y + (((10/y^2 - 64/y + 108) - 64/y) + 10*y^2)*q + (1/y^3 + 108/y^2 - 513/y + 808 - 513*y + 108*y^2 + y^3)*q^2), q = 0, 2)

This has the undesirable feature of not expanding out in y, returning 

series((1/y + 10 + y + (((10/y^2 - 64/y + 108) - 64/y) + 10*y^2)*q + (1/y^3 + 108/y^2 - 513/y + 808 - 513*y + 108*y^2 + y^3)*q^2)*(1/y + 10 + y + (((10/y^2 - 64/y + 108) - 64/y) + 10*y^2)*q + (1/y^3 + 108/y^2 - 513/y + 808 - 513*y + 108*y^2 + y^3)*q^2), q = 0, 2).

 

I could then call expand on this, but using both series and then expand makes me worry about runtime.

 

Any advice?

Please Wait...