[PYTHON MATRIX-SIG] floating point equalities
Guido van Rossum
Tue, 23 Jan 1996 14:37:35 -0500
> I'd like to have a method approxEqual (or some similar name) so that
> a.approxEqual(b) will "do the right thing". I had believed that there
> was some sort of consensus in the numerical programming community on
> what the right thing is for floating point numbers, if I'm wrong on
> this, I'd like to know that too.
> Note: part of why this came up is the fact that on my development
> system (1j)**2 == (-1+1.22460635382e-16j). I'd really like to be able
> to have some way to say approxEqual((1j)**2, -1) and have it come out
> true (OK, I have an ad hoc solution that works, what I want is the
> "right" solution if there is one out there).
I bet this is because in x**y, Python currently coerces y, meaning you
were really calculating 1.0j ** 2.0j...
(Note that the (by now pathetically incomplete) Python test suite has
a similar problem and solution when testing the pow() function.)
--Guido van Rossum <guido@CNRI.Reston.VA.US>
MATRIX-SIG - SIG on Matrix Math for Python
send messages to: firstname.lastname@example.org
administrivia to: email@example.com