Complex arg-trig functions

Bruce Evans brde at optusnet.com.au
Sun Sep 23 01:18:14 UTC 2012


On Sat, 22 Sep 2012, Stephen Montgomery-Smith wrote:

> On 09/22/2012 05:25 PM, Stephen Montgomery-Smith wrote:
>> On 09/22/2012 04:47 PM, Bruce Evans wrote:
>>> On Sat, 22 Sep 2012, Stephen Montgomery-Smith wrote:
>>> 
>>>> 2.  In my accuracy tests for casin(h), I have never seen the double or
>>>> long double have an error greater than 4 ULP.  But for the float case
>>>> I have seen 4.15 ULP.
>>> 
>>> I haven't seen any larger than 3.4.  What is the worst case you found?
> ...
> Here is an error of about 4.15 ULP
>
> 171886645 acosh 0.504775 4.15104 1.0684067010879516602 
> -0.049668960273265838623 0.389377 -0.124716 0.389377 -0.124716

Even y+1 is inaccurate for this arg.  (do_hard_work() has several of
these.)

On i386, the error is only 2.15 ulps.  But changing all 1's to 1.0's and
all sqrtf()'s to sqrt()s in do_hard_work() made no difference, so it
must be other extra calculations that help on i386.

Bruce


More information about the freebsd-numerics mailing list