Michael> What's the best way to portably generate binary floating point Michael> infinity and NaNs?
I take it this isn't portable even though it works on Mac, Linux and Solaris across a number of different Python versions and a couple GCC versions: % python Python 2.4.2 (#1, Feb 23 2006, 12:48:31) [GCC 3.4.1] on sunos5 Type "help", "copyright", "credits" or "license" for more information. >>> import struct >>> struct.pack("f", float("NaN")) '\xff\xff\xff\x7f' >>> struct.pack("f", float("Inf")) '\x00\x00\x80\x7f' $ python Python 2.5 (release25-maint:53536, Jan 23 2007, 18:15:37) [GCC 3.4.6 20060404 (Red Hat 3.4.6-3)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import struct >>> struct.pack("f", float("NaN")) '\x00\x00\xc0\x7f' >>> struct.pack("f", float("Inf")) '\x00\x00\x80\x7f' % python Python 2.6a0 (trunk:54264M, Mar 10 2007, 15:19:48) [GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import struct >>> struct.pack("f", float("Inf")) '\x7f\x80\x00\x00' >>> struct.pack("f", float("NaN")) '\x7f\xc0\x00\x00' (Note the absence of a demonstration on Windows.) Can't the above be blessed as the One True Way and wormed around in floatmodule.c for those platforms where float'ing "NaN" or "Inf" doesn't currently work? Skip -- http://mail.python.org/mailman/listinfo/python-list