Actually, where in the docs is it clarified which parts of IEEE-754 are
obeyed by Python?
Or where should this be clarified?

To my understanding (according to Wikipedia), IEEE-754 returns +- infinity
for DivideByZeroError and for FloatOverflow.

...

It's a rare use case; but one use case where this matters could be code
that is mutating and selecting (evolutionary algorithms) to evolve a
**symbolic** function. It could be documented that Python code could be so
permuted for infinity and never find the best fitting function due to this
limit.

A vectorizable CAS (with support for variable axioms in order to support
things like e.g. transfinite and surreal numbers) would be a better fit.

But that's way OT for (though likely an eventual tangential implication of)
this discussion of a **float, IEEE-754*** infinity constant; so I'll stop
talking now.

On Sun, Oct 18, 2020 at 12:28 PM Wes Turner <[email protected]> wrote:

> Thank you for the explanation. I have nothing more to add to this
> discussion
>
> On Sun, Oct 18, 2020, 4:47 AM Steven D'Aprano <[email protected]> wrote:
>
>> On Sun, Oct 18, 2020 at 03:26:11AM -0400, Wes Turner wrote:
>>
>> > assert math.inf**0 == 1
>> > assert math.inf**math.inf == math.inf
>>
>> Wes, I don't understand what point you are trying to make here. Are you
>> agreeing with that behaviour? Disagreeing? Thought it was so surprising
>> that you can't imagine why it happens? Something else?
>>
>> If you find a behaviour which is forbidden or contradicted by the
>> documentation, then you should report it as a bug, but just
>> demonstrating what the behaviour is with no context isn't helpful.
>>
>> Please remember that the things which are blindingly obvious to you
>> because you just thought them are not necessarily obvious to those of us
>> who aren't inside your head :-)
>>
>> Python's float INFs and NANs (mostly?) obey the rules of IEEE-754
>> arithmetic. Those rules are close to the rules for the extended Real
>> number line, with a point at both positive and negative infinity.
>>
>> These rules are not necessarily the same as the rules for transfinite
>> arithmetic, or the projective number line with a single infinity, or
>> arithmetic on cardinal numbers, or surreal numbers.
>>
>> Each of these number systems have related, but slightly different,
>> rules. For example, IEEE-754 has a single signed infinity and 2**INF is
>> exactly equal to INF. But in transfinite arithmetic, 2**INF is strictly
>> greater than INF (for every infinity):
>>
>>     2**aleph_0 < aleph_1
>>     2**aleph_1 < aleph_2
>>     2**aleph_2 < aleph_3
>>
>> and so on, with no limit. There is no greatest aleph, there is always a
>> larger one.
>>
>> Do you have a concrete suggestion you would like to make for a change or
>> new feature for Python? If not, I suggest that this thread is going
>> nowhere.
>>
>>
>> --
>> Steve
>> _______________________________________________
>> Python-ideas mailing list -- [email protected]
>> To unsubscribe send an email to [email protected]
>> https://mail.python.org/mailman3/lists/python-ideas.python.org/
>> Message archived at
>> https://mail.python.org/archives/list/[email protected]/message/U5WXW3WTNRNWV5PEADF6CDZC6FFBBUJG/
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
>
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/[email protected]/message/ODANBEU6GW5A5SPEXPDL2ZLTY2QIFRLE/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to