On 2024-09-05 6:12 p.m., Leo Mada wrote:
Dear Duncan,

Here is also the missing information:
R version 4.4.1 (2024-06-14 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 10 x64 (build 19045)

Regarding the results:
atan(1i)
# 0+Infi
Re(atan(1i))
# 0
Im(atan(1i))
#  Inf

0 + Inf i is a valid complex number:
tan(atan(1i))
# 0+1i

Inf / 5
# Inf

Note: atan(1i) / 5 should have generated 0 + Inf * 1i; even the explicit complex number fails:
complex(re=0, im = Inf) / 5
# NaN+Infi
complex(re=Inf, im = Inf) / 5
# Inf+Infi

I presume that R tries to do the complex division, although the real division is well defined.

I imagine that what happens is that when one operand is complex, both are coerced to complex and the operation is carried out. I had assumed this was documented in ?complex, but I don't see it there. Maybe it should be.

If you want z/5 to be carried out using the correct mathematical approach, you'll probably have to define it yourself. For example,

  CxByReal <- function(num, denom) {
    if (is.complex(denom)) stop("this is for a real denominator!")
    complex(real = Re(num)/denom, imaginary = Im(num)/denom)
  }

  CxByReal(complex(real=0, imaginary=Inf), 5)
  # [1] 0+Infi

Duncan Murdoch


Sincerely,

Leonard

------------------------------------------------------------------------
*From:* Duncan Murdoch <murdoch.dun...@gmail.com>
*Sent:* Friday, September 6, 2024 12:40 AM
*To:* Leo Mada <leo.m...@syonic.eu>; r-help@r-project.org <r-help@r-project.org>
*Subject:* Re: [R] BUG: atan(1i) / 5 = NaN+Infi ?
On 2024-09-05 4:23 p.m., Leo Mada via R-help wrote:
Dear R Users,

Is this desired behaviour?
I presume it's a bug.

atan(1i)
# 0+Infi

tan(atan(1i))
# 0+1i

atan(1i) / 5
# NaN+Infi

There's no need to involve atan() and tan() in this:

  > (0+Inf*1i)/5
[1] NaN+Infi

Why do you think this is a bug?

Duncan Murdoch


______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to