Zero raised by zero


0^0 yields 1. 0^0 should be equal to cmplx(0,0) because 0 = 0 + i*0, where i = cmplx(0,1). But print cmplx(0,0)^0 yields (Nan,Nan). I think, that is wrong. Is there any setting or pragma, that helps to get the correct result cmplx(0,0)^0 = (0 + i*0)^0 = 1?

Best regards,
In addition, NaN^0 yields 1. I'd have expected NaN as a result. Maybe this is related.

@HJDrescher: If you look into IEEE754-2008 they say on page 44 (9.2.1.)

pown (x, 0) is 1 for any x (even a zero, quiet NaN, or infinity)

where pown(x,y) is x^y for y being an integral number. So this does look correct in Igor.

@joerg.kunze: This does look like a bug indeed. I would contact WM support.
Hello Joerg,

The value of 0^0 is typically argued based on a limit and required continuity. The same argument does not apply in the complex case where the limit depends on the path (and branch) so returning a NaN is, IMO prudent.

WaveMetrics, Inc.