I also get the same value (4705360871073570227520) that you quoted when using 
Int128; I guess that
the difference is due to some round-off error from using Float64...


On Jun 29, 2014, at 11:29 AM, gentlebeldin <[email protected]> wrote:

> You're right, my code seems to be fast, because it didn't calculate (almost) 
> anything, yet. When you calculate s2[10][10][10][10], it calculates only what 
> it needs for that, meaning the coefficients with i,j,k,l<=10. That's not 
> nearly half of them, it's about 1/256, so my code is in reality much less 
> performant than yours.
> Speaking of all coefficients: since it's a polynomial of 4 variables, and 
> maximum degree 40 in every one of them, the total would be 41^4=2825761. 
> True, those with i+j+k+l>40 are 0, but so are all with i+j+k+l not in {0, 20, 
> 40}.
> I don't know why your code gave the result 4.7053608710735743e21. Since the 
> exact result is 40!/10!^4=4705360871073570227520, obviously, 
> 4.70536087107357e21 is a bit more precise.
> Well, I've explained already why I think multivariate Taylor series of higher 
> degree are not a good idea, and the performance of my code seems to be 
> especially bad in this case. I've mentioned that already in the bivariate 
> case, 
> evaluate(c,70,0.2,0.3)
> takes minutes, and I was speaking of almost 10 minutes! So I'll use that only 
> in the univariate case, or limit it to really small degrees.

Reply via email to