[SciPy-dev] Question about 64-bit integers being cast to double precision
Travis Oliphant
oliphant at ee.byu.edu
Mon Oct 10 00:27:14 EDT 2005
What is the opinion of people here regarding the casting of 64-bit
integers to double precision.
In scipy (as in Numeric), there is the concept of "Casting safely" to a
type. This concept is used when choosing a ufunc, for example.
My understanding is that a 64-bit integer cannot be cast safely to a
double-precision floating point number, because precision is lost in the
conversion. However, at least a signed 64-bit integer can usually be
cast safely to a long double precision floating point number.
This is not too big a deal on 32-bit systems where people rarely request
64-bit integers.
However, on some 64-bit systems (where the C long is 64-bit), Python's
default integer is 64-bit. Therefore, simple expressions like sqrt(2)
which require conversion to floating point will look for the first
floating point number that it can convert a 64-bit integer to safely.
This can only be a long double.
The result is that on 64-bit systems, the long double type gets used a
lot more. Is this acceptable? expected? What do those of you on
64-bit systems think?
-Travis
More information about the SciPy-Dev
mailing list