This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author JBernardo
Recipients JBernardo
Date 2011-03-24.02:30:52
SpamBayes Score 4.246703e-11
Marked as misclassified No
Message-id <1300933852.92.0.68969844622.issue11658@psf.upfronthosting.co.za>
In-reply-to
Content
With Python 3, the ** operator is supposed to do math with complex numbers, but look what is happening:

Python 3.2 (r32:88445, Feb 20 2011, 21:30:00) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> (-1)**.5
(6.123233995736766e-17+1j)
>>> import cmath
>>> cmath.sqrt(-1)
1j
>>> pow(-1, .5)
(6.123233995736766e-17+1j)
>>> (-4)**.5
(1.2246467991473532e-16+2j)
>>> 

I also tried with Python 3.1.2 in my 32-bit Ubuntu 10.10 installation and got the same results.

The error seems to be in the floating point (double) representation limit of 16 decimal places.
History
Date User Action Args
2011-03-24 02:30:52JBernardosetrecipients: + JBernardo
2011-03-24 02:30:52JBernardosetmessageid: <1300933852.92.0.68969844622.issue11658@psf.upfronthosting.co.za>
2011-03-24 02:30:52JBernardolinkissue11658 messages
2011-03-24 02:30:52JBernardocreate