15 Oct
2009
15 Oct
'09
12:42 p.m.
On Thu, Oct 15, 2009 at 8:17 PM, Antoine Pitrou
(-1)**.5 (6.123031769111886e-17+1j)
Don't we have a precision problem here? 0.5 is supposed to be represented exactly, isn't it?
0.5 is represented exactly, but complex.__pow__ makes no pretence of being correctly rounded (and making it correctly rounded would likely be prohibitively expensive in terms of code size and complexity). It's using something like x**y = exp(y*log(x)) behind the scenes, at least for computing the argument of the result. For square roots, cmath.sqrt produces better results. Mark