[Jack Jansen] > The answers to my math questions never seem to stick, so I'm afraid > I'm gonna have to ask this question again (even though I think I did > the same a couple of years ago, but google doesn't find it). > > It turns out that on MacOS math.sqrt(-1) returns "nan", as does > math.log(-1), and I didn't try any other ones. > > This is true for all possible combinations of MacPython 2.3, 2.4a0 or > apple-Python 2.3, MacPython-OS9 or MacPython-OSX, and Mac OS 9 or Mac > OS X. > > When I tried the same on a linux box (Python 2.4a0) it raised > ValueError: math domain error, which is what I would have expected. Take this to heart (it's from the current math module docs): Note: The math module consists mostly of thin wrappers around the platform C math library functions. Behavior in exceptional cases is loosely specified by the C standards, and Python inherits much of its math-function error-reporting behavior from the platform C implementation. As a result, the specific exceptions raised in error cases (and even whether some arguments are considered to be exceptional at all) are not defined in any useful cross-platform or cross-release way. For example, whether math.log(0) returns -Inf or raises ValueError or OverflowError isn't defined, and in cases where math.log(0) raises OverflowError, math.log(0L) may raise ValueError instead. > Why this difference? Platform C. > Is it something I should fix? Good luck <wink>. > How? You'll understand the "<wink>" above after you give up. > Or document it? I think the above already does. Else you're trying to document a maze of moving targets (including, on some platforms, the specific compiler options, link options, and environment variables the user indulges).
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4