Bill Allombert on Tue, 17 Nov 2009 18:12:36 +0100


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

Re: usqrtsafe isn't


On Mon, Nov 16, 2009 at 07:50:27PM +0100, Bill Allombert wrote:
> On Mon, Nov 16, 2009 at 12:28:19AM -0500, Charles Greathouse wrote:
> > In writing a program using the Pari library today I was able to trace
> > a problem to usqrtsafe.  In particular,
> > usqrtsafe(18446744073709551615) = 4294967296
> > but 4294967296^2 = 18446744073709551616 > 18446744073709551615.
> 
> Thanks a lot for reporting this problem!
> 
> The code suppose the error is always by default by actually it is always
> by excess, because the conversion to 'double' round to the nearest and
> usqrtsafe should round to the lowest.
> 
> The patch below should fix that.

I commited this patch as SVN revision 12026.

Cheers,
Bill.