How do I type a floating point infinity literal in python?
I have heard
inf = float('inf')
is non portable. Thus, I have had the following recommended:
inf = 1e400
Is either of these standard, or portable? What is best practice?
In python 2.6 it is portable if the CPU supports it
The float() function will now turn the
string nan into an IEEE 754 Not A
Number value, and +inf and -inf into
positive or negative infinity. This
works on any platform with IEEE 754
float('inf') is non portable as in not portable back to Python 2.5 when the string output varies between platforms. From 2.6 and onwards
float('inf') is guaranteed to work on IEEE-754-compliance platforms (ref: http://www.python.org/dev/peps/pep-0754/).
(And the recommendation seems to be in the range 1e30000, not just 1e400.)
Perhaps you could do something like this
try: inf = float('inf') except: # check for a particular exception here? inf = 1e30000