Bill Allombert on Sun, 10 Sep 2023 23:07:18 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Power (^) function speed depending on argument types


On Sun, Sep 10, 2023 at 11:40:22PM +0300, Дмитрий Рыбас wrote:
> Hi All,
> 
> I observe the following
> 
> ? s=0.0;n=2000;for(i=1,n,s=(s+i)^(1/5));
> *cpu time = 4,148 ms,* real time = 4,148 ms.
> ? s=0.0;n=2000;for(i=1,n,s=(s+i+0.0)^(1/5));
> *cpu time = 51 ms,* real time = 51 ms.
> ? s=0.0;n=2000;for(i=1,n,s=(s+i)^(0.2));
> *cpu time = 70 ms,* real time = 73 ms.
> ? s=0.0;n=2000;for(i=1.0,n,s=(s+i)^(1/5));
> *cpu time = 50 ms,* real time = 49 ms.
> ?
> 
> Please advise why the difference in computation time is so drastic?

You are not computing s with the same accuracy!

? s=0.0;n=2000;for(i=1,n,s=(s+i)^(1/5));precision(s)
%10 = 38281
? s=0.0;n=2000;for(i=1,n,s=(s+i+0.0)^(1/5));precision(s)
%11 = 57

Cheers,
Bill.