Christian Heimes wrote:
duncan smith wrote:
Hello,
I'm trying to find a clean and reliable way of uncovering information about 'extremal' values for floats on versions of Python earlier than 2.6 (just 2.5 actually). I don't want to add a dependence on 3rd party modules just for this purpose. e.g. For the smallest positive float I'm using,


import platform
if platform.architecture()[0].startswith('64'):
     TINY = 2.2250738585072014e-308
else:
     TINY = 1.1754943508222875e-38


where I've extracted the values for TINY from numpy in IDLE,


 >>> float(numpy.finfo(numpy.float32).tiny)
1.1754943508222875e-38
 >>> float(numpy.finfo(numpy.float64).tiny)
2.2250738585072014e-308

You are confusing a 32 / 64bit build with 32 / 64bit floats. Python's
float type is build upon C's double precision float type on both 32 and
64 bit builds. The simple precision 32bit float type isn't used. The
DBL_MIN and DBL_MAX values are equal on all platforms that have full
IEEE 754 float point support. The radix may be different, though.

Christian

OK, this is the sort of confusion I suspected. I wasn't thinking straight. The precise issue is that I'm supplying a default value of 2.2250738585072014e-308 for a parameter (finishing temperature for a simulated annealing algorithm) in an application. I develop on Ubuntu64, but (I am told) it's too small a value when run on a Win32 server. I assume it's being interpreted as zero and raising an exception. Thanks.

Duncan
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to