On Fri, Sep 11, 2020 at 11:19:05AM -1000, David Mertz wrote:
> On Fri, Sep 11, 2020 at 10:19 AM Guido van Rossum <gu...@python.org> wrote:
> 
> > While one may argue that writing `1e1000` is not an "arithmetic
> > operation", certainly it's certainly not "casting strings to floats", and
> > it's the simeplest way of producing `inf` in a pinch (in theory it's not
> > portable, but I think "in a pinch" means you don't care about that).

I think that the only reason that could fail to produce inf is if your C 
doubles aren't IEEE-754 binary64.

Are there any such platforms that are capable of building CPython but 
don't support IEEE-754? Or has anyone tried building CPython using, for 
example, posits instead?


> For 128-bit versions of Python you'd need 1e4933.  For 256-bit, 1e78914.
> But those work fine on 32-bit or 64-bit also.

Are there any Pythons with 128-bit or 256-bit floats?

I've just tried Jython and IronPython, and got:


    >>> sys.float_info.max_10_exp
    308L


for both of them, which matches CPython.

Micropython doesn't seem to support sys.float_info, but testing suggests 
that the floats are 64 bit too:


    # Micropython 1.9, Python version 3.4
    >>> 1e309
    inf


If anyone is seriously worried about their Python supporting more than 
64 bit floats, you can use 1e80000 which should give inf on any system 
supporting IEEE-754 no matter what size floats you have. What it will do 
on a posit or other non-IEEE-754 machine, I have no idea :-)


-- 
Steve
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/O5X5GEE3NMIHTGV46ES2MNXPRGUTOH6C/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to