Marco Sulla wrote: > First, C and assembly has no boolean type. Not to focus on this because it's not particularly relevant to the original topic, but this isn't true: C99 added the boolean type "_Bool", which can be aliased as "bool" with the <stdbool.h> header.
On Thu, Dec 26, 2019 at 8:53 PM Marco Sulla via Python-ideas < python-ideas@python.org> wrote: > Andrew Barnert wrote: > > if you’re going to be a pedant, the floats in > > whatever Python you’re using right now are probably 854/754-1985 > doubles, not 754-2019 > > binary64s. > > Mr. Andrew Barnet, > if pedant means adhere to the standard, yes, I'm a pedant. > > > > This is because NaN, IMHO, it's not the right name > > > for the entity. A number can't be Not a Number. It's an Undefined > Number. > > OK, so you really are arguing against IEEE float here. > > So now I'm no more a pedant. No, I'm an heretic, because I don't like the > Not A Number name but I prefer Undefined Number? > A rose with any another name has the same smell. > > > > But IEEE 754-2019 is written mainly for C and > > > Assembly. And you can't return nothing in a comparison between two > floats. So they take > > > the most practical solution: return false. > > > They defined a whole complicated system of signaling vs. quiet nan > values and > > signaling (on sNaN) vs. non-signaling operations and multiple forms of > exception handling > > from traps to checkable flags to substitution of default values. You can > use much of that > > in C (and all of it in assembly) if you want to, even if people usually > don’t. > > Yes, I perfectly know, I read the specs. You forgot the payload. Thank you > for confirming what I said. > > > Also, who says you can’t return nothing in a comparison between two > floats? You can > > write a named function that has any API you want (say, it returns -1, 0, > 1, or NaN, or > > even an enum of less, greater, equal, left nan, right nan, both nan, > other incomparable) > > instead of a Boolean function that has to return true or false. > > First, C and assembly has no boolean type. And I can write whatever I > want, but IEEE 754-2019 clearly says that every comparison with NaN must > return false, that is zero in C. > > > But the fact that C (and countless other languages, including Python) > also provides the > > operators and people use them extensively implies that many people don’t > think the > > operators are useless, even if you do. > > I never said the operators are useless. Can you quote please? > > > > This obviously does not apply to total ordering. Even > > > if I think mathematically has no sense, IEEE 754 clearly defined a > total ordering, also > > > for NaNs. So a total_ordering() key function, passed to sort > functions, should order as > > > IEEE 754 declares, without raising exceptions. There's a bug opened > somewhere about this > > > key function. > > > This is what I've done. Unluckily, the API now works this way. It's > not a big problem > > > anyway. You have only to pass as key to the sort function: > > > def sortNans(x): > > > try: > > > if math.isnan(x): > > > return float("+inf") > > > except TypeError > > > pass > > > > > > return x > > > > > But this isn’t the same thing that IEEE totalOrder defines. > > I clearly stated that the key function total_order() is being developed, > that there's a bug opened by Tim Peters and that what I wrote has nothing > to do with total ordering. Can you please read my post with more attention? > It's a bit frustrating to explain the things two times, and it's not > respectful for who writes. > _______________________________________________ > 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/NJOTBTLR3JIJBATTF56J3ZCY2DSIFL5J/ > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ 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/NIWHN7LBYUITZYFNYUVB3S5S4S5BFDSW/ Code of Conduct: http://python.org/psf/codeofconduct/