[Cfp-interest 3085] Re: casinh(x + iNaN) - Annex G.6.3.2

Jim Thomas jaswthomas at sbcglobal.net
Sun Apr 7 10:23:12 PDT 2024



> On Apr 6, 2024, at 10:10 PM, Damian McGuckin <damianm at esi.com.au> wrote:
> 
> On Fri, 5 Apr 2024, Damian McGuckin wrote:
> 
>> On Thu, 4 Apr 2024, Jim Thomas wrote:
>> 
>>>  casinh(iy) = i asin(y)
>>>> 
>>>> is only valid for |y| <= 1. After that, the G.7 formula will return a NaN
>>>> because no asin() function will ever accept a value outside that range.
>>>> On the other hand, a complex function can expand into complex space.
>>> 
>>> The formula is defining a function on imaginary numbers, not complex ones.
> 
> Yes. But nowhere does it say that a function or macro which takes an imaginary argumnt must return an imaginary result. In fact, at the end of clause 1, G.7 refers to other macros which return complex results. It does not define them. I assume they are acos, acosh, log and sqrt,
> 
> The only functions in that table which cause a problem are
> 
> 	asinh(iy)
> and
> 	atan(iy)

No. See G.6.1 #8. A function f(iy) on imaginaries can't exactly match a function F(x + iy) for x = 0 unless F(+0, y) and F(-0, y) are identical for all y. Similarly for a function f(x) on reals.

- Jim Thomas

> 
> If you define either in terms of a real function, there are problems when
> 
> 	|y} > 1
> 
> because those real functions return NaN for that case. I think I have captured all the problem cases.
> 
> If they got moved into the last batch of undefined macros which can return a complex number, then for any of those macros in that table (or the missing ones) say 'name', then
> 
> 	name(iy) = cname(0 + iy)
> 
> There are no outliers and all the previous special cases still hold.
> 
> What do you think - Damian




More information about the Cfp-interest mailing list