[Python-ideas] math.nextafter

M.-A. Lemburg mal at egenix.com
Mon Feb 6 20:44:31 EST 2017

On 07.02.2017 00:46, Steven D'Aprano wrote:
> On Mon, Feb 06, 2017 at 11:29:17AM +0100, M.-A. Lemburg wrote:
>> I'm not sure how useful this would be in the stdlib,
>> since it's very much tied to whatever float type Python
>> happens to use on a platform.
> With the possible exception of µPy, are there any Python implementations 
> which don't use a C double as float?

(I'm not sure what you mean with "µPy")

By far most implementations will use IEEE 754 64-bit doubles:


MicroPython also supports single precision float configurations
or no floats at all (depends on the availability of an FPU).

What I wanted to say with the above comment is that Python
itself does not make guarantees on how floats are represented
internally (in CPython it's a C double, which only has
minimum requirements).

In theory, it would be possible to have a Python implementation
using e.g. binary128 floats or MPFR (http://www.mpfr.org/).

You are right in saying that this is a rather unlikely
case :-)

However, using the internal representation of floats to
define a "valid" interval for roots doesn't sound like a
good concept. Those intervals will depend on where the
roots are. Close to 0, the intervals will be very small,
near the outer range limits, very large:


I guess there is some use in trying to determine the
error intervals of calculations, though. Perhaps that's
the main intent of those functions.

Marc-Andre Lemburg

Professional Python Services directly from the Experts (#1, Feb 07 2017)
>>> Python Projects, Coaching and Consulting ...  http://www.egenix.com/
>>> Python Database Interfaces ...           http://products.egenix.com/
>>> Plone/Zope Database Interfaces ...           http://zope.egenix.com/

::: We implement business ideas - efficiently in both time and costs :::

   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611

More information about the Python-ideas mailing list